This is an old revision of the document!
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