Kiến Thức Linux

sysctl Command in Linux with Examples

Introduction

Linux administrators use the sysctl command to read or modify kernel parameters at runtime. The option to control and modify networking, I/O operations, and memory management settings in real-time, without performing a reboot, is essential for high-availability systems.

Find out how to use the sysctl command and its options to tweak system performance on the fly.

Linux admin using the sysctl command to manage kernel parameters.

Prerequisites

  • A user account with root or sudo privileges.
  • Access to a command line/terminal window.

Note: Modifying kernel parameters affects system behavior, performance, and security. Always test parameter changes in a controlled environment, like a virtual machine, before applying them to production systems.

sysctl Command Syntax

Linux kernel parameters are in the proc/sys/ directory. The sysctl command allows admins to make structured changes to these parameters and retain the changes on reboots without interacting with /proc/sys/ files directly.

The sysctl command in Linux has the following syntax:

sysctl [options] [variable[=value] ...]

Note: In command-line syntax, square brackets [] typically indicate that a parameter is optional.

  • sysctl – The command name.
  • [options] – The command accepts optional flags to customize the behavior.
  • [variable] – The name of the kernel parameter you want sysctl to read or modify. Enter a variable without a value to read the current value of the variable only.
  • [=value] – If the command contains a variable, you can assign a value to the variable. Entering a value will set the new value for the variable.
  • – The three full stops mean it’s possible to specify multiple variable=value pairs in a single sysctl command.

The sysctl syntax is flexible and allows users to enter the command with or without options, read existing values, or define new values for specific kernel parameters.

sysctl Command Options

The following table provides a breakdown of the standard sysctl options:

OPTION DESCRIPTION
-a Display all variables and values.
-n Display only values for specified variables.
-e Do not display errors for non-existent variables.
-w [parameter]=[value] Change the value for the specified variable.
-p [file] Load values from the specified configuration file. The system loads values from the /etc/sysctl.conf file by default if no file is provided.
-q Error messages for stdout kernel parameter values are suppressed.
-f Load settings from all system configuration files.
-r [pattern] Only list variables that match the defined pattern.
-V Display the sysctl version.

sysctl Command Examples

Note: Only a sudo or root user can modify parameter values. Read actions usually do not require sudo or root privileges.

The following commands showcase some of the basic sysctl command functionalities:

1. Show All Kernel Parameters

Review all kernel parameters and their current values using the -a option:

sysctl -a
List all kernel parameters using the sysctl command.

2. Display Parameter Names without Values

Use the following command to display parameter names without their values:

sysctl -a -N
Only display kernel parameter names using sysctl.

3. Search for Specific Parameters

Combine the -a option and the grep utility to search for a specific kernel parameter. The following command searches for all parameters related to IPv6 routing:

sudo sysctl -a | grep net.ipv6.route
Search kernel parameters by name using sysctl.

4. Display a Specific Parameter Value

Use the sysctl command and the kernel parameter name to display its value. The following command displays the swappiness value of the system:

sysctl vm.swappiness
Display swappiness in Linux using sysctl command.

5. Display Value Without Parameter Name

If you need to retrieve the parameter value without its name, for example, for scripting purposes, utilize the -n option:

sysctl -n vm.swappiness
Retrieve only the kernel parameter value using sysctl.

6. Modify a Parameter Value

The -w option enables users to modify an existing kernel parameter value. The following command sets the swappiness value to 30:

sudo sysctl -w vm.swappiness=30
Modify Linux kernel parameter value using the sysctl command.

The system’s swappiness level influences the kernel’s behavior toward swapping.

7. Load Configuration from Default File

Use the -p option to reload default values from the /etc/sysctl.conf and /etc/sysctl.d/ files:

sysctl -p

There is no output, and the values are reloaded without a reboot.

8. Load Configuration from Custom File

Enter the following command to load settings from a custom config file:

sysctl -p [/path/to/custom-sysctl.conf]

Replace [/path/to/custom-sysctl.conf/] with the actual path to your configuration file.

9. Load All System Configuration Files

The -f option is used to load values from all system configuration locations:

sysctl -f

The system loads settings from the following configuration files: /run/sysctl.d/*.conf, /etc/sysctl.d/*.conf, /usr/local/lib/sysctl.d/*.conf, /usr/lib/sysctl.d/*.conf, /lib/sysctl.d/*.conf, and /etc/sysctl.conf.

10. Suppress Error Messages for Non-Existent Parameters

Omitting errors for non-existent parameters results in a cleaner output and reduces unnecessary noise in logs. Use the -q option to suppress error messages for a specified parameter:

sysctl -q [non_existent_parameter]

Replace [non_existent_parameter] with the actual name of the variable.

Conclusion

You know how the sysctl command works, its syntax, and options, and you have tested several rudimentary commands.

Sysctl is not the only command you can use to manage kernel parameters in Linux. Read our article on using the modprobe command to add or remove kernel modules.

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !