180 lines
8.1 KiB
TypeScript
Raw Normal View History

2025-02-25 20:40:47 +01:00
import type { Metadata } from "next"
2025-03-02 00:31:15 +01:00
import { Server } from "lucide-react"
2025-03-01 19:29:41 +01:00
import CopyableCode from "@/components/CopyableCode"
2025-02-25 20:40:47 +01:00
export const metadata: Metadata = {
title: "ProxMenux Post-Install: System Settings",
description:
"Detailed guide to the System Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
2025-03-01 19:29:41 +01:00
openGraph: {
title: "ProxMenux Post-Install: System Settings",
description:
"Detailed guide to the System Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
type: "article",
url: "https://macrimi.github.io/ProxMenux/docs/post-install/system",
images: [
{
url: "https://macrimi.github.io/ProxMenux/system-settings-image.png",
width: 1200,
height: 630,
alt: "ProxMenux Post-Install System Settings",
},
],
},
twitter: {
card: "summary_large_image",
title: "ProxMenux Post-Install: System Settings",
description:
"Detailed guide to the System Settings category in the ProxMenux post-install script for Proxmox VE optimization.",
images: ["https://macrimi.github.io/ProxMenux/system-settings-image.png"],
},
2025-02-25 20:40:47 +01:00
}
2025-03-02 00:31:15 +01:00
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>
)
}
2025-02-25 20:40:47 +01:00
export default function SystemSettingsPage() {
return (
<div className="container mx-auto px-4 py-8">
2025-02-25 20:55:48 +01:00
<div className="flex items-center mb-6">
<Server className="h-8 w-8 mr-2 text-blue-500" />
<h1 className="text-3xl font-bold">System Settings</h1>
</div>
2025-02-25 20:40:47 +01:00
<p className="mb-4">
2025-03-02 00:31:15 +01:00
The <strong>System Settings</strong> category focuses on core system configurations and optimizations for your
Proxmox VE installation. These settings are crucial for improving system performance, stability, and resource
management, ensuring your virtualization environment operates at peak efficiency.
2025-02-25 20:40:47 +01:00
</p>
2025-03-01 19:29:41 +01:00
<h2 className="text-2xl font-semibold mt-8 mb-4">Available Optimizations</h2>
2025-03-02 00:31:15 +01:00
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={1} />
Enable Fast Reboots
</h3>
<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.
</p>
<p className="mb-4">
<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>
2025-03-02 00:44:16 +01:00
<p className="text-lg font-semibold mb-2">This adjustment automates the following commands:</p>
2025-03-02 00:31:15 +01:00
<CopyableCode
code={`
sudo apt-get install -y kexec-tools
2025-03-01 19:55:22 +01:00
sudo systemctl enable kexec-pve.service
2025-03-02 00:31:15 +01:00
echo "alias reboot-quick='systemctl kexec'" >> ~/.bash_profile
`}
/>
2025-03-01 19:29:41 +01:00
2025-03-02 00:31:15 +01:00
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={2} />
Configure Kernel Panic Behavior
</h3>
<p className="mb-4">
This setting configures the system to automatically reboot after a kernel panic occurs, rather than hanging
indefinitely.
</p>
<p className="mb-4">
<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>
2025-03-02 00:44:16 +01:00
<p className="text-lg font-semibold mb-2">This adjustment automates the following commands:</p>
2025-03-02 00:31:15 +01:00
<CopyableCode
code={`
echo "kernel.panic = 10" | sudo tee /etc/sysctl.d/99-kernelpanic.conf
2025-03-01 19:55:22 +01:00
echo "kernel.panic_on_oops = 1" | sudo tee -a /etc/sysctl.d/99-kernelpanic.conf
2025-03-02 00:31:15 +01:00
sudo sysctl -p /etc/sysctl.d/99-kernelpanic.conf
`}
/>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={3} />
Increase System Limits
</h3>
<p className="mb-4">
This optimization increases various system limits, including the maximum number of file watches and open file
descriptors.
</p>
<p className="mb-4">
<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>
2025-03-02 00:44:16 +01:00
<p className="text-lg font-semibold mb-2">This adjustment automates the following commands:</p>
2025-03-02 00:31:15 +01:00
<CopyableCode
code={`
echo "fs.inotify.max_user_watches = 1048576" | sudo tee /etc/sysctl.d/99-maxwatches.conf
2025-03-01 19:55:22 +01:00
echo "* soft nofile 1048576" | sudo tee /etc/security/limits.d/99-limits.conf
2025-03-02 00:31:15 +01:00
sudo sysctl -p
`}
/>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={4} />
Optimize Journald
</h3>
<p className="mb-4">
This setting configures systemd's journald logging service to limit its disk usage and optimize performance.
</p>
<p className="mb-4">
<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>
2025-03-02 00:44:16 +01:00
<p className="text-lg font-semibold mb-2">This adjustment automates the following commands:</p>
2025-03-02 00:31:15 +01:00
<CopyableCode
code={`
echo "SystemMaxUse=64M" | sudo tee -a /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
`}
/>
<h3 className="text-xl font-semibold mt-16 mb-4 flex items-center">
<StepNumber number={5} />
Optimize Memory Management
</h3>
<p className="mb-4">
This optimization adjusts various memory-related kernel parameters to improve system performance and stability.
</p>
<p className="mb-4">
<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>
2025-03-02 00:44:16 +01:00
<p className="text-lg font-semibold mb-2">This adjustment automates the following commands:</p>
2025-03-02 00:31:15 +01:00
<CopyableCode
code={`
echo "vm.swappiness = 10" | sudo tee /etc/sysctl.d/99-memory.conf
2025-03-01 19:55:22 +01:00
echo "vm.vfs_cache_pressure = 50" | sudo tee -a /etc/sysctl.d/99-memory.conf
2025-03-02 00:31:15 +01:00
sudo sysctl -p /etc/sysctl.d/99-memory.conf
`}
/>
2025-03-01 19:29:41 +01:00
<section className="mt-12 p-4 bg-blue-100 rounded-md">
<h2 className="text-xl font-semibold mb-2">Automatic Application</h2>
<p>
2025-03-02 00:31:15 +01:00
All of these optimizations are automatically applied when selected in the System section. This automation
ensures that these beneficial settings are applied consistently and correctly, saving time and reducing the
potential for human error during manual configuration.
2025-03-01 19:29:41 +01:00
</p>
</section>
2025-02-25 20:40:47 +01:00
</div>
2025-03-02 00:31:15 +01:00
)
}