System Settings

The System Settings category includes core system configurations and optimizations for Proxmox VE, focusing on performance, stability, and resource management.

Available Optimizations

1
Enable Fast Reboots

This optimization enables kexec, allowing the system to boot directly into a new kernel without going through the BIOS/firmware and bootloader.

Why it's beneficial:Fast reboots reduce system downtime during updates and maintenance. This is particularly useful in virtualization environments where minimizing host downtime helps maintain service availability.

This adjustment automates the following commands:


sudo apt-get install -y kexec-tools
sudo systemctl enable kexec-pve.service
echo "alias reboot-quick='systemctl kexec'" >> ~/.bash_profile
      

2
Configure Kernel Panic Behavior

This setting configures the system to automatically reboot after a kernel panic instead of remaining unresponsive.

Why it's beneficial:Automatic recovery reduces downtime and prevents the need for manual intervention, which is critical in remote or unattended environments where physical access is limited.

This adjustment automates the following commands:


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
sudo sysctl -p /etc/sysctl.d/99-kernelpanic.conf
      

3
Increase System Limits

This optimization increases system resource limits, including the maximum number of file watches and open file descriptors.

Why it's beneficial:Higher limits enhance resource utilization, improving performance for applications that monitor large numbers of files or handle high concurrent connections. This is essential for servers running multiple VMs or containers.

This adjustment automates the following commands:


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
sudo sysctl -p
      

4
Optimize Journald

This setting configures systemd-journald to limit disk usage and optimize logging performance.

Why it's beneficial:Restricting log size prevents excessive disk consumption, reducing the risk of system partitions filling up. Optimized logging also decreases I/O operations, improving system performance, especially in disk-constrained environments.

This adjustment automates the following commands:


echo "SystemMaxUse=64M" | sudo tee -a /etc/systemd/journald.conf
sudo systemctl restart systemd-journald
      

5
Optimize Memory Management

This memory optimization configures low-level kernel parameters to improve system responsiveness and RAM availability, especially on hosts with limited memory.

Why it's beneficial:By tuning how Linux handles dirty memory pages, swap usage, and virtual memory mappings, this adjustment helps the system free memory more proactively and avoid sudden out-of-memory (OOM) errors — particularly valuable on Proxmox nodes with 1–4 GB of RAM.

It also enables safe overcommit behavior and, if supported, proactive memory compaction to make memory use more efficient across multiple processes and containers.

This optimization applies the following configuration:


    cat <<EOF | sudo tee /etc/sysctl.d/99-memory.conf
    # Balanced Memory Optimization
    vm.swappiness = 10
    vm.dirty_ratio = 15
    vm.dirty_background_ratio = 5
    vm.overcommit_memory = 1
    vm.max_map_count = 65530
    EOF

    # Enable memory compaction if supported by the system
    if [ -f /proc/sys/vm/compaction_proactiveness ]; then
      echo "vm.compaction_proactiveness = 20" | sudo tee -a /etc/sysctl.d/99-memory.conf
    fi

    # Apply settings
    sudo sysctl -p /etc/sysctl.d/99-memory.conf
      

6
Improve Entropy Generation with Haveged

What is entropy? In computing, entropy is a measure of randomness used by the system for cryptographic operations, secure connections, and random number generation.

On Proxmox VE and other virtualized or headless environments, entropy can become insufficient—causing delays or even freezes during operations like generating SSH keys or starting services that rely on encryption.

This optimization installs and configures haveged, a daemon that generates high-quality entropy using CPU timing variations to ensure the system always has enough randomness available.

Why it's beneficial:

  • Prevents system slowdowns during cryptographic operations
  • Improves reliability of secure services and key generation
  • Essential for virtual machines and servers without input peripherals

This adjustment automates the following steps:


      # Install haveged
      apt-get install -y haveged

      # Configure daemon with low-entropy threshold
      cat <<EOF > /etc/default/haveged
      DAEMON_ARGS="-w 1024"
      EOF

      # Enable haveged to run at startup
      systemctl daemon-reload
      systemctl enable haveged
        

Once applied, your system will maintain sufficient entropy levels at all times—leading to better performance, stability, and responsiveness.

7
Install Kernel Headers

What are kernel headers? Kernel headers are essential files that allow software and modules to interface directly with the Linux kernel. They are required when compiling or installing drivers, DKMS modules, or virtualization tools that integrate at a low system level.

This optimization automatically detects the current kernel version and installs the appropriate linux-headers package.

Why it's beneficial:

  • Enables the installation of kernel modules such as GPU or ZFS drivers
  • Essential for software that compiles components at runtime (e.g., DKMS)
  • Improves compatibility with hardware acceleration and advanced features

This adjustment automates the following logic:


      # Detect current kernel version
      KERNEL_VERSION=$(uname -r)
      PACKAGE="linux-headers-${KERNEL_VERSION}"

      # Install headers if not present
      if ! dpkg -s "$PACKAGE" >/dev/null 2>&1; then
        apt-get install -y "$PACKAGE"
      fi
        

After installation, some modules may require a system reboot to activate properly. ProxMenux will notify you if a reboot is recommended.

8
Optimize Logrotate Configuration

What is logrotate? Logrotate is a utility that manages the automatic rotation and compression of log files to prevent them from consuming excessive disk space.

This optimization replaces the default configuration with a cleaner and more efficient policy that rotates logs daily, compresses them, and limits their size.

Why it's beneficial:

  • Prevents system logs from consuming disk space over time
  • Improves system performance by reducing log clutter
  • Ensures clean, consistent log management across reboots and services

This adjustment automates the following logic:


      # Backup current config
      cp /etc/logrotate.conf /etc/logrotate.conf.bak

      # Apply optimized configuration
      cat <<EOF > /etc/logrotate.conf
      # ProxMenux optimized configuration
      daily
      su root adm
      rotate 7
      create
      compress
      size=10M
      delaycompress
      copytruncate

      include /etc/logrotate.d
      EOF

      # Restart service
      systemctl restart logrotate
        

After applying this optimization, your system will automatically rotate and compress logs based on usage and file size, keeping your disk clean and performance stable.

Automatic Application

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.