GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment interroger et modifier les paramètres du noyau à l'aide de sysctl (immédiatement et de manière persistante) dans CentOS / RHEL

Le but de cet article est d'expliquer comment configurer les paramètres du noyau sur les systèmes Red Hat (RHEL/CentOS) et Oracle Linux (OL) à l'aide de l'utilitaire sysctl. L'utilitaire sysctl (/sbin/sysctl) permet aux utilisateurs (privilégiés) d'interroger et de modifier les paramètres du noyau pendant l'exécution. L'utilitaire est commun à la plupart des distributions Linux, cependant, des différences subtiles peuvent exister entre les distributions, par ex. RHEL/OL et SuSE. Les paramètres qui peuvent être visualisés/modifiés sont ceux exposés via le système de fichiers procfs /proc/sys. La notation point (".") est utilisée lors de la configuration dans un fichier de configuration.

Interroger un paramètre de noyau spécifique

Pour interroger une valeur de paramètre de noyau nommé, exécutez l'utilitaire sysctl avec soit le '-n ' ou pas d'arguments du tout, par exemple :

# sysctl kernel.shmmax
kernel.shmmax = 68719476736
# sysctl -n kernel.shmmax
68719476736

Dans l'exemple ci-dessus, le paramètre kernel.shmmax se rapporte à /proc/sys/kernel/shmmax par exemple :

# cat /proc/sys/kernel/shmmax
68719476736

Interrogation de tous les paramètres du noyau

Pour interroger toutes les valeurs des paramètres du noyau, exécutez l'utilitaire systctl avec le '-a ' argument par exemple :

# sysctl -a | more
kernel.sched_child_runs_first = 0
kernel.sched_min_granularity_ns = 4000000
kernel.sched_latency_ns = 20000000
kernel.sched_wakeup_granularity_ns = 4000000
kernel.sched_tunable_scaling = 1

Vous pouvez grep pour un paramètre de noyau spécifique dans la sortie ci-dessus. Utilisez des expressions régulières pour filtrer un groupe de paramètres du noyau. Par exemple,

# sysctl -a | grep ^kernel.s[h,e]m
kernel.shmmax = 68719476736
kernel.shmall = 4294967296
kernel.shmmni = 4096
kernel.shm_rmid_forced = 0
kernel.sem = 250	32000	100	128

Définir les paramètres du noyau immédiatement (et non de manière persistante)

Pour définir une valeur de paramètre sysctl immédiatement (non persistante), utilisez le sysctl -w commande. Par exemple :

# sysctl -w kernel.sysrq=0
kernel.sysrq = 0

Les paramètres qui prennent plusieurs valeurs doivent avoir les valeurs entre guillemets. Par exemple, pour définir net.ipv4.ip_local_port_range sur 1025-65535 :

# sysctl -w net.ipv4.ip_local_port_range="1025 65535"

Alternativement, il est possible de renvoyer des valeurs directement dans le fichier procfs qui représente un paramètre sysctl. Par exemple :

# echo 1 > /proc/sys/net/ipv4/ip_forward
# echo "1025 65535" > /proc/sys/net/ipv4/ip_local_port_range

Définir les paramètres du noyau de manière persistante

Les valeurs des paramètres du noyau modifiées à l'aide de la méthode "systctl -w" sont volatiles, c'est-à-dire perdues au redémarrage du serveur. Le fichier de configuration de l'utilitaire sysctl, /etc/sysctl.conf , doit être utilisé pour stocker de manière permanente les valeurs des paramètres du noyau autres que ceux par défaut. Le fichier est analysé au démarrage du serveur et les valeurs qu'il contient sont utilisées pour configurer le noyau. La syntaxe requise pour configurer les paramètres du noyau à l'aide du fichier /etc/sysctl.conf suit la notation component.parameter=value, par ex. kernel.shmmax =33554432.
Syntaxe

# vi /etc/sysctl.conf
[component].[parameter]=[value]

Voici un exemple de fichier /etc/sysctl.conf :

# grep -v ^# /etc/sysctl.conf
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
....

En plus d'utiliser la méthode 'systctl -w' pour modifier les paramètres du noyau, on peut également modifier les paramètres en les ajoutant au fichier /etc/sysctl.conf, puis en analysant le fichier à l'aide de l'utilitaire sysctl avec le '-p ' argument par exemple :

# sysctl -n kernel.ctrl-alt-del
0
# echo "kernel.ctrl-alt-del=1" >> /etc/sysctl.conf
# sysctl -p
kernel.ctrl-alt-del = 1

La modification des paramètres du noyau en les ajoutant au fichier /etc/sysctl.conf les définit non seulement (sysctl -p), mais garantit également que les valeurs modifiées persistent après un redémarrage du serveur.

Configuration permanente des paramètres du noyau sous CentOS/RHEL 7

L'approche pour définir les paramètres du noyau sous CentOS/RHEL 7 est un peu différente de l'ancienne version. Créez un nouveau fichier de configuration sous /etc/sysctl.d/ annuaire. Les noms de fichiers prennent le format /etc/sysctl.d/[nom].conf. Les fichiers du répertoire /etc/sysctl.d/ sont analysés dans l'ordre, il est donc recommandé de faire précéder le nom du fichier d'un nombre indiquant l'ordre dans lequel vous souhaitez que les fichiers soient analysés. Par exemple, /etc/sysctl.d/ 01-custom.conf :

# cat /etc/sysctl.d/01-custom.conf
net.ipv4.ip_forward=1
net.ipv4.ip_local_port_range="1025 65535"

Pour que le système applique immédiatement les valeurs dans un fichier /etc/sysctl.d nouveau/mis à jour, exécutez sysctl -p [filename] :

# sysctl -p /etc/sysctl.d/01-custom.conf


Cent OS
  1. Comment installer Python 3.5 sur CentOS/RHEL et Fedora

  2. CentOS / RHEL 7 :Comment définir la date, l'heure / NTP et le fuseau horaire à l'aide de timedatectl

  3. CentOS / RHEL 7 :Comment modifier la ligne de commande du noyau

  4. Comment configurer le relais smtp postifx dans CentOS/RHEL 5 et 6

  5. Comment créer un conteneur LXC à l'aide de lxcbr0 et virbr0 dans CentOS/RHEL

Comment installer Samba sur RHEL et CentOS Stream

Comment installer et configurer Jenkins sur CentOS 8 / RHEL 8

Comment installer Flameshot sur RHEL/CentOS à l'aide de Snapcraft

Comment installer Wine 5.0 sur CentOS, RHEL et Fedora

Centos 7.1 utilise toujours le noyau obsolète 3.10 Comment mettre à niveau vers le noyau 4.0 ?

CentOS / RHEL 7 :Comment configurer kdump à l'aide de l'interface graphique