GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Abfragen und Ändern von Kernelparametern mit sysctl (sofort und dauerhaft) in CentOS / RHEL

Der Zweck dieses Beitrags besteht darin, zu erklären, wie Kernelparameter auf Red Hat (RHEL/CentOS)- und Oracle Linux (OL)-Systemen mit dem Dienstprogramm sysctl konfiguriert werden. Das Dienstprogramm sysctl (/sbin/sysctl) ermöglicht (privilegierten) Benutzern, Kernelparameter während der Laufzeit abzufragen und zu ändern. Das Dienstprogramm ist den meisten Linux-Distributionen gemeinsam, es können jedoch geringfügige Unterschiede zwischen den Distributionen bestehen, z. RHEL/OL und SuSE. Parameter, die angezeigt/geändert werden können, sind diejenigen, die über das procfs-Dateisystem /proc/sys bereitgestellt werden. Die Punkt(.)-Notation wird beim Setzen in einer Konfigurationsdatei verwendet.

Abfrage eines bestimmten Kernel-Parameters

Um einen benannten Kernel-Parameterwert abzufragen, führen Sie das Dienstprogramm sysctl entweder mit dem Befehl „-n ‘ oder gar keine Argumente, z. B.:

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

Im obigen Beispiel bezieht sich der Parameter kernel.shmmax auf /proc/sys/kernel/shmmax, z. B.:

# cat /proc/sys/kernel/shmmax
68719476736

Alle Kernelparameter abfragen

Um alle Kernelparameterwerte abzufragen, führen Sie das Dienstprogramm systctl mit dem Befehl „-a aus ‘ Argument z.B.:

# 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

Sie können in der obigen Ausgabe nach einem bestimmten Kernel-Parameter suchen. Verwenden Sie reguläre Ausdrücke, um eine Gruppe von Kernelparametern herauszufiltern. Zum Beispiel

# 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

Kernel-Parameter sofort (nicht dauerhaft) setzen

Um einen sysctl-Parameterwert sofort (nicht dauerhaft) festzulegen, verwenden Sie sysctl -w Befehl. Zum Beispiel:

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

Parameter, die mehrere Werte annehmen, sollten die Werte in Anführungszeichen eingeschlossen haben. Zum Beispiel, um net.ipv4.ip_local_port_range auf 1025-65535 zu setzen:

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

Alternativ ist es möglich, Werte direkt in die procfs-Datei zu echoen, die einen sysctl-Parameter darstellt. Zum Beispiel:

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

Kernel-Parameter dauerhaft setzen

Kernel-Parameterwerte, die mit der Methode „systctl -w“ geändert wurden, sind flüchtig, d. h. gehen beim Neustart des Servers verloren. Die Konfigurationsdatei des Dienstprogramms sysctl, /etc/sysctl.conf , sollte verwendet werden, um nicht standardmäßige Kernelparameterwerte dauerhaft zu speichern. Die Datei wird beim Serverstart geparst und die darin enthaltenen Werte werden verwendet, um den Kernel zu konfigurieren. Die zum Konfigurieren von Kernelparametern mit der Datei /etc/sysctl.conf erforderliche Syntax folgt der Notation „component.parameter=value“, z. kernel.shmmax =33554432.
Syntax

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

Es folgt eine Beispieldatei /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
....

Neben der Verwendung der Methode „systctl -w“ zum Ändern von Kernelparametern können Sie auch Parameter ändern, indem Sie sie zur Datei /etc/sysctl.conf hinzufügen und dann die Datei mit dem Dienstprogramm sysctl mit dem Befehl „-p ‘ Argument z.B.:

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

Das Ändern von Kernelparametern durch Hinzufügen zur Datei /etc/sysctl.conf setzt sie nicht nur (sysctl -p), sondern stellt auch sicher, dass die geänderten Werte nach einem Serverneustart bestehen bleiben.

Kernelparameter dauerhaft unter CentOS / RHEL 7 setzen

Der Ansatz zum Setzen von Kernelparametern unter CentOS/RHEL 7 unterscheidet sich etwas von der älteren Version. Erstellen Sie eine neue conf-Datei unter /etc/sysctl.d/ Verzeichnis. Dateinamen haben das Format /etc/sysctl.d/[name].conf. Dateien im Verzeichnis /etc/sysctl.d/ werden der Reihe nach geparst, daher wird empfohlen, dem Dateinamen eine Zahl voranzustellen, die die Reihenfolge angibt, in der die Dateien geparst werden sollen. Beispiel:/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"

Damit das System die Werte sofort in einer neuen/aktualisierten /etc/sysctl.d-Datei anwendet, führen Sie sysctl -p [Dateiname]:

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


Cent OS
  1. So installieren Sie Python 3.5 unter CentOS/RHEL und Fedora

  2. CentOS / RHEL 7 :So stellen Sie Datum, Uhrzeit / NTP und Zeitzone mit timedatectl ein

  3. CentOS / RHEL 7 :So ändern Sie die Kernel-Befehlszeile

  4. So konfigurieren Sie das postifx-smtp-Relay in CentOS/RHEL 5 und 6

  5. So erstellen Sie einen LXC-Container mit lxcbr0 und virbr0 in CentOS/RHEL

So installieren Sie Samba auf RHEL und CentOS Stream

So installieren und konfigurieren Sie Jenkins unter CentOS 8 / RHEL 8

So installieren Sie Flameshot auf RHEL/CentOS mit Snapcraft

So installieren Sie Wine 5.0 auf CentOS, RHEL und Fedora

Centos 7.1 verwendet immer noch veralteten Kernel 3.10 Wie aktualisiere ich auf Kernel 4.0?

CentOS / RHEL 7 :So konfigurieren Sie kdump mit der GUI