Use Proc Sys And Sysctl To Modify And Set Kernel Runtime Parameters

General Information

Modifying runtime or persistent kernel parameters.

Lab Setup

The following virtual machines will be used:

  • ( → Configure the kernel parameters here


Finding help in this section.

  • Sysctl man page
    man sysctl

Runtime Kernel Settings

Everything in this section are runtime ONLY changes; the values will go back to their original setting upon reboot.

View all tunable kernel parameters

sysctl -a

View the configuration of a specific setting

sysctl vm.swappiness

Write a runtime only configuration change and verify

sysctl -w vm.swappiness=10
sysctl vm.swappiness
# Or
sysctl -a | grep swappiness
  • -w → write

Alternative: Echo the value into the correct location in /proc

echo "15" > /proc/sys/vm/swappiness

Persistent Kernel Settings

To make changes that are persistent across reboots…

  • Default system values: /usr/lib/sysctl.d/
  • Persistent configuration over rides: /etc/sysctl.d/filename.conf

Create entries in /etc/sysctl.d/mychanges.conf

vim /etc/sysctl.conf
net.ipv4.ip_forward = 1

Load settings from a file

sysctl -p /etc/sysctl.d/mychanges.conf
  • If no file name is specified, defaults to: /etc/sysctl.conf

Load all settings

sysctl --system

Tuned is a “dynamic adaptive system tuning daemon”.

  • Notes
    • Starting in EL 7.2, some parameters (such as vm.swappiness) are set AFTER systemd-sysctl.service by the tuned service.
    • In EL 7.4, it appears that tuned defaults to honor sysctl (/etc/tuned/tuned-main.conf)
      # Whether to reapply sysctl from the e.g /etc/sysctl.conf, /etc/sysctl.d, ...
      # If enabled these sysctls will be re-appliead after Tuned sysctls are
      # applied, i.e. Tuned sysctls will not override system sysctls.
      reapply_sysctl = 1
  • Either way; be aware of tuned and its potential to conflict with sysctl.

View the active tuned profile

tuned-adm active

  • Location of built in system tuned profiles: /usr/lib/tuned/
  • Location of user defined profiles: /etc/tuned
  • Example: Create a virtual-guest override file
    mkdir /etc/tuned/virtual-guest
    cp /usr/lib/tuned/virtual-guest/tuned.conf /etc/tuned/virtual-guest/
    • Edit the over ride file (/etc/tuned/virtual-guest/tuned.conf), make any changes.
    • Restart the tuned service
      systemctl restart tuned

  • linux_wiki/use_proc_sys_and_sysctl_to_modify_and_set_kernel_runtime_parameters.txt
  • Last modified: 2019/05/25 23:50
  • (external edit)