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:
- server1.example.com (192.168.1.150) → Configure the kernel parameters here
Help
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
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)
....SNIP.... # 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 ....SNIP....
- 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