This commit is contained in:
MacRimi 2025-03-02 00:31:15 +01:00
parent bf981efcec
commit ce460e6b45
2 changed files with 136 additions and 83 deletions

View File

@ -52,7 +52,7 @@ export default function BasicSettingsPage() {
</p> </p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center"> <h3 className="text-xl font-semibold mt-16 mb-16 flex items-center">
<StepNumber number={1} /> <StepNumber number={1} />
Install Common System Utilities Install Common System Utilities
</h3> </h3>
@ -155,7 +155,7 @@ export default function BasicSettingsPage() {
<strong>libguestfs-tools</strong>: A set of tools for accessing and modifying virtual machine disk images <strong>libguestfs-tools</strong>: A set of tools for accessing and modifying virtual machine disk images
</li> </li>
</ul> </ul>
<h4 className="text-lg font-semibold mb-2">This adjustment automates the following command:</h4> <p className="text-lg mb-2">This adjustment automates the following command:</p>
<CopyableCode <CopyableCode
code={` code={`
# Update package lists # Update package lists
@ -169,7 +169,7 @@ sudo apt-get install -y libguestfs-tools
`} `}
/> />
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center"> <h3 className="text-xl font-semibold mt-16 mb-16 flex items-center">
<StepNumber number={2} /> <StepNumber number={2} />
Skip Downloading Additional Languages Skip Downloading Additional Languages
</h3> </h3>
@ -183,7 +183,7 @@ sudo apt-get install -y libguestfs-tools
improve the speed of package management operations. This is particularly useful in server environments where improve the speed of package management operations. This is particularly useful in server environments where
multiple language support is often not required. multiple language support is often not required.
</p> </p>
<h4 className="text-lg font-semibold mb-2">This adjustment automates the following command:</h4> <p className="text-lg mb-2">This adjustment automates the following command:</p>
<CopyableCode <CopyableCode
code={` code={`
# Configure APT to skip downloading additional languages # Configure APT to skip downloading additional languages
@ -191,7 +191,7 @@ echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-tran
`} `}
/> />
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center"> <h3 className="text-xl font-semibold mt-16 mb-16 flex items-center">
<StepNumber number={3} /> <StepNumber number={3} />
Synchronize Time Automatically Synchronize Time Automatically
</h3> </h3>
@ -204,7 +204,7 @@ echo 'Acquire::Languages "none";' | sudo tee /etc/apt/apt.conf.d/99-disable-tran
consistency, and proper functioning of time-sensitive applications. Automatic synchronization ensures your consistency, and proper functioning of time-sensitive applications. Automatic synchronization ensures your
Proxmox VE system maintains the correct time without manual intervention. Proxmox VE system maintains the correct time without manual intervention.
</p> </p>
<h4 className="text-lg font-semibold mb-2">This adjustment automates the following command:</h4> <p className="text-lg mb-2">This adjustment automates the following command:</p>
<CopyableCode <CopyableCode
code={` code={`
# Note: To set timezone automatically based on IP, you can use: # Note: To set timezone automatically based on IP, you can use:
@ -214,7 +214,7 @@ sudo timedatectl set-timezone "$TIMEZONE"
`} `}
/> />
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center"> <h3 className="text-xl font-semibold mt-16 mb-16 flex items-center">
<StepNumber number={4} /> <StepNumber number={4} />
Update and Upgrade System Update and Upgrade System
</h3> </h3>
@ -229,7 +229,7 @@ sudo timedatectl set-timezone "$TIMEZONE"
performance. This optimization ensures you have the latest patches and features, while also configuring the performance. This optimization ensures you have the latest patches and features, while also configuring the
correct repositories for Proxmox VE, enabling access to necessary updates and tools. correct repositories for Proxmox VE, enabling access to necessary updates and tools.
</p> </p>
<h4 className="text-lg font-semibold mb-2">This adjustment automates the following command:</h4> <p className="text-lg mb-2">This adjustment automates the following command:</p>
<CopyableCode <CopyableCode
code={` code={`
# Disable enterprise Proxmox repository # Disable enterprise Proxmox repository

View File

@ -1,5 +1,5 @@
import type { Metadata } from "next" import type { Metadata } from "next"
import { Server } from 'lucide-react' import { Server } from "lucide-react"
import CopyableCode from "@/components/CopyableCode" import CopyableCode from "@/components/CopyableCode"
export const metadata: Metadata = { export const metadata: Metadata = {
@ -30,6 +30,14 @@ export const metadata: Metadata = {
}, },
} }
function StepNumber({ number }: { number: number }) {
return (
<div className="inline-flex items-center justify-center w-8 h-8 mr-3 text-white bg-blue-500 rounded-full">
<span className="text-sm font-bold">{number}</span>
</div>
)
}
export default function SystemSettingsPage() { export default function SystemSettingsPage() {
return ( return (
<div className="container mx-auto px-4 py-8"> <div className="container mx-auto px-4 py-8">
@ -38,89 +46,134 @@ export default function SystemSettingsPage() {
<h1 className="text-3xl font-bold">System Settings</h1> <h1 className="text-3xl font-bold">System Settings</h1>
</div> </div>
<p className="mb-4"> <p className="mb-4">
The <strong>System Settings</strong> category focuses on core system configurations The <strong>System Settings</strong> category focuses on core system configurations and optimizations for your
and optimizations for your Proxmox VE installation. These settings are crucial for improving system performance, Proxmox VE installation. These settings are crucial for improving system performance, stability, and resource
stability, and resource management, ensuring your virtualization environment operates at peak efficiency. management, ensuring your virtualization environment operates at peak efficiency.
</p> </p>
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2> <h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
<section className="mb-8"> <h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<h3 className="text-xl font-semibold mb-2">Enable Fast Reboots</h3> <StepNumber number={1} />
Enable Fast Reboots
</h3>
<p className="mb-4"> <p className="mb-4">
This optimization enables <code>kexec</code>, a mechanism that allows the system to boot directly into a new kernel from an existing running kernel, bypassing the BIOS/firmware and bootloader stages. This optimization enables <code>kexec</code>, a mechanism that allows the system to boot directly into a new
kernel from an existing running kernel, bypassing the BIOS/firmware and bootloader stages.
</p> </p>
<p className="mb-4"> <p className="mb-4">
<strong>Why it's important:</strong> Fast reboots significantly reduce system downtime during maintenance or updates. In a virtualization environment where multiple VMs might be running, minimizing host downtime is crucial for maintaining high availability and reducing disruption to services. <strong>Why it's beneficial:</strong> Fast reboots significantly reduce system downtime during maintenance or
updates. In a virtualization environment where multiple VMs might be running, minimizing host downtime is
crucial for maintaining high availability and reducing disruption to services.
</p> </p>
<h4 className="text-lg font-semibold mb-2">To apply this setting manually, run:</h4> <p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode code={`sudo apt-get install -y kexec-tools <CopyableCode
code={`
sudo apt-get install -y kexec-tools
sudo systemctl enable kexec-pve.service sudo systemctl enable kexec-pve.service
echo "alias reboot-quick='systemctl kexec'" >> ~/.bash_profile`} /> echo "alias reboot-quick='systemctl kexec'" >> ~/.bash_profile
</section> `}
/>
<section className="mb-8"> <h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<h3 className="text-xl font-semibold mb-2">Configure Kernel Panic Behavior</h3> <StepNumber number={2} />
Configure Kernel Panic Behavior
</h3>
<p className="mb-4"> <p className="mb-4">
This setting configures the system to automatically reboot after a kernel panic occurs, rather than hanging indefinitely. This setting configures the system to automatically reboot after a kernel panic occurs, rather than hanging
indefinitely.
</p> </p>
<p className="mb-4"> <p className="mb-4">
<strong>Why it's important:</strong> Automatic reboots after kernel panics help maintain system availability. Instead of requiring manual intervention, which could lead to extended downtime, the system attempts to recover on its own. This is particularly crucial in remote or lights-out data center environments where immediate physical access might not be possible. <strong>Why it's beneficial:</strong> Automatic reboots after kernel panics help maintain system availability.
Instead of requiring manual intervention, which could lead to extended downtime, the system attempts to recover
on its own. This is particularly crucial in remote or lights-out data center environments where immediate
physical access might not be possible.
</p> </p>
<h4 className="text-lg font-semibold mb-2">To apply this setting manually, run:</h4> <p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode code={`echo "kernel.panic = 10" | sudo tee /etc/sysctl.d/99-kernelpanic.conf <CopyableCode
code={`
echo "kernel.panic = 10" | sudo tee /etc/sysctl.d/99-kernelpanic.conf
echo "kernel.panic_on_oops = 1" | sudo tee -a /etc/sysctl.d/99-kernelpanic.conf echo "kernel.panic_on_oops = 1" | sudo tee -a /etc/sysctl.d/99-kernelpanic.conf
sudo sysctl -p /etc/sysctl.d/99-kernelpanic.conf`} /> sudo sysctl -p /etc/sysctl.d/99-kernelpanic.conf
</section> `}
/>
<section className="mb-8"> <h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<h3 className="text-xl font-semibold mb-2">Increase System Limits</h3> <StepNumber number={3} />
Increase System Limits
</h3>
<p className="mb-4"> <p className="mb-4">
This optimization increases various system limits, including the maximum number of file watches and open file descriptors. This optimization increases various system limits, including the maximum number of file watches and open file
descriptors.
</p> </p>
<p className="mb-4"> <p className="mb-4">
<strong>Why it's important:</strong> Higher system limits allow for better resource utilization, especially in high-density virtualization environments. Increased file watch limits improve performance for applications that monitor many files (like backup systems or development environments). Higher open file limits allow more concurrent connections and file operations, which is crucial for busy servers hosting multiple VMs or containers. <strong>Why it's beneficial:</strong> Higher system limits allow for better resource utilization, especially in
high-density virtualization environments. Increased file watch limits improve performance for applications that
monitor many files (like backup systems or development environments). Higher open file limits allow more
concurrent connections and file operations, which is crucial for busy servers hosting multiple VMs or
containers.
</p> </p>
<h4 className="text-lg font-semibold mb-2">To apply this setting manually, run:</h4> <p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode code={`echo "fs.inotify.max_user_watches = 1048576" | sudo tee /etc/sysctl.d/99-maxwatches.conf <CopyableCode
code={`
echo "fs.inotify.max_user_watches = 1048576" | sudo tee /etc/sysctl.d/99-maxwatches.conf
echo "* soft nofile 1048576" | sudo tee /etc/security/limits.d/99-limits.conf echo "* soft nofile 1048576" | sudo tee /etc/security/limits.d/99-limits.conf
sudo sysctl -p`} /> sudo sysctl -p
</section> `}
/>
<section className="mb-8"> <h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<h3 className="text-xl font-semibold mb-2">Optimize Journald</h3> <StepNumber number={4} />
Optimize Journald
</h3>
<p className="mb-4"> <p className="mb-4">
This setting configures systemd's journald logging service to limit its disk usage and optimize performance. This setting configures systemd's journald logging service to limit its disk usage and optimize performance.
</p> </p>
<p className="mb-4"> <p className="mb-4">
<strong>Why it's important:</strong> Proper log management is crucial for system health and troubleshooting. By limiting the maximum size of the journal, you prevent logs from consuming excessive disk space, which could potentially fill up the system partition. This is especially important in virtualization environments where disk space is often at a premium. Additionally, optimized logging reduces I/O operations, potentially improving overall system performance. <strong>Why it's beneficial:</strong> Proper log management is crucial for system health and troubleshooting. By
limiting the maximum size of the journal, you prevent logs from consuming excessive disk space, which could
potentially fill up the system partition. This is especially important in virtualization environments where disk
space is often at a premium. Additionally, optimized logging reduces I/O operations, potentially improving
overall system performance.
</p> </p>
<h4 className="text-lg font-semibold mb-2">To apply this setting manually, run:</h4> <p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode code={`echo "SystemMaxUse=64M" | sudo tee -a /etc/systemd/journald.conf <CopyableCode
sudo systemctl restart systemd-journald`} /> code={`
</section> echo "SystemMaxUse=64M" | sudo tee -a /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
`}
/>
<section className="mb-8"> <h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<h3 className="text-xl font-semibold mb-2">Optimize Memory Management</h3> <StepNumber number={5} />
Optimize Memory Management
</h3>
<p className="mb-4"> <p className="mb-4">
This optimization adjusts various memory-related kernel parameters to improve system performance and stability. This optimization adjusts various memory-related kernel parameters to improve system performance and stability.
</p> </p>
<p className="mb-4"> <p className="mb-4">
<strong>Why it's important:</strong> Proper memory management is critical in virtualization environments where multiple VMs compete for resources. These optimizations can help prevent out-of-memory situations, improve memory allocation efficiency, and enhance overall system responsiveness. This is particularly beneficial for hosts running memory-intensive workloads or a high number of VMs. <strong>Why it's beneficial:</strong> Proper memory management is critical in virtualization environments where
multiple VMs compete for resources. These optimizations can help prevent out-of-memory situations, improve
memory allocation efficiency, and enhance overall system responsiveness. This is particularly beneficial for
hosts running memory-intensive workloads or a high number of VMs.
</p> </p>
<h4 className="text-lg font-semibold mb-2">To apply this setting manually, run:</h4> <p className="text-lg mb-2">This adjustment automates the following commands:</p>
<CopyableCode code={`echo "vm.swappiness = 10" | sudo tee /etc/sysctl.d/99-memory.conf <CopyableCode
code={`
echo "vm.swappiness = 10" | sudo tee /etc/sysctl.d/99-memory.conf
echo "vm.vfs_cache_pressure = 50" | sudo tee -a /etc/sysctl.d/99-memory.conf echo "vm.vfs_cache_pressure = 50" | sudo tee -a /etc/sysctl.d/99-memory.conf
sudo sysctl -p /etc/sysctl.d/99-memory.conf`} /> sudo sysctl -p /etc/sysctl.d/99-memory.conf
</section> `}
/>
<section className="mt-12 p-4 bg-blue-100 rounded-md"> <section className="mt-12 p-4 bg-blue-100 rounded-md">
<h2 className="text-xl font-semibold mb-2">Automatic Application</h2> <h2 className="text-xl font-semibold mb-2">Automatic Application</h2>
<p> <p>
All of these optimizations are automatically applied when selected in the System section. This automation ensures that these beneficial settings are applied All of these optimizations are automatically applied when selected in the System section. This automation
consistently and correctly, saving time and reducing the potential for human error during manual ensures that these beneficial settings are applied consistently and correctly, saving time and reducing the
configuration. potential for human error during manual configuration.
</p> </p>
</section> </section>
</div> </div>
); )
} }