GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come eseguire query e modificare i parametri del kernel utilizzando sysctl (immediatamente e persistentemente) in CentOS / RHEL

Lo scopo di questo post è spiegare come configurare i parametri del kernel sui sistemi Red Hat (RHEL/CentOS) e Oracle Linux (OL) utilizzando l'utilità sysctl. L'utilità sysctl (/sbin/sysctl) consente agli utenti (con privilegi) di interrogare e modificare i parametri del kernel durante il runtime. L'utilità è comune alla maggior parte delle distribuzioni Linux, tuttavia possono esistere sottili differenze tra le distribuzioni, ad es. RHEL/OL e SuSE. I parametri che possono essere visualizzati/modificati sono quelli esposti tramite il filesystem procfs /proc/sys. La notazione punto(“.”) viene utilizzata durante l'impostazione in un file di configurazione.

Interrogazione di un parametro del kernel specifico

Per eseguire una query su un valore di parametro del kernel denominato, eseguire l'utilità sysctl con '-n ' o nessun argomento, ad es.:

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

Nell'esempio sopra, il parametro kernel.shmmax si riferisce a /proc/sys/kernel/shmmax es.:

# cat /proc/sys/kernel/shmmax
68719476736

Interrogazione di tutti i parametri del kernel

Per interrogare tutti i valori dei parametri del kernel, esegui l'utilità systctl con '-a ‘ argomento es.:

# 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

Puoi grep per un parametro del kernel specifico nell'output sopra. Usa le espressioni regolari per filtrare un gruppo di parametri del kernel. Ad esempio,

# 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

Impostazione immediata (non persistente) dei parametri del kernel

Per impostare un valore di parametro sysctl immediatamente (non persistente) utilizzare sysctl -w comando. Ad esempio:

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

Il parametro che accetta più valori dovrebbe avere i valori racchiusi tra virgolette. Ad esempio, per impostare net.ipv4.ip_local_port_range su 1025-65535:

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

In alternativa, è possibile eseguire l'eco dei valori direttamente nel file procfs che rappresenta un parametro sysctl. Ad esempio:

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

Impostazione dei parametri del kernel in modo persistente

I valori dei parametri del kernel modificati utilizzando il metodo "systctl -w" sono volatili, ovvero persi al riavvio del server. Il file di configurazione dell'utilità sysctl, /etc/sysctl.conf , deve essere utilizzato per archiviare in modo permanente i valori dei parametri del kernel non predefiniti. Il file viene analizzato all'avvio del server e i valori all'interno vengono utilizzati per configurare il kernel. La sintassi richiesta per configurare i parametri del kernel usando il file /etc/sysctl.conf segue la notazione component.parameter=value ad es. kernel.shmmax =33554432.
Sintassi

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

Di seguito è riportato un file di esempio /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
....

Oltre a utilizzare il metodo 'systctl -w' per modificare i parametri del kernel, è anche possibile modificare i parametri aggiungendoli al file /etc/sysctl.conf, quindi analizzando il file utilizzando l'utilità sysctl con '-p ‘ argomento es.:

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

La modifica dei parametri del kernel aggiungendoli al file /etc/sysctl.conf non solo li imposta (sysctl -p), ma garantisce anche la persistenza dei valori modificati dopo il riavvio del server.

Impostazione dei parametri del kernel in modo persistente in CentOS/RHEL 7

L'approccio per impostare i parametri del kernel in CentOS/RHEL 7 è leggermente diverso rispetto alla versione precedente. Crea un nuovo file conf in /etc/sysctl.d/ directory. I nomi dei file assumono il formato /etc/sysctl.d/[nome].conf. I file nella directory /etc/sysctl.d/ vengono analizzati in ordine, quindi si consiglia di anteporre al nome del file un numero che indica l'ordine in cui si desidera che i file vengano analizzati. Ad esempio, /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"

Per fare in modo che il sistema applichi immediatamente i valori in un file /etc/sysctl.d nuovo/aggiornato, eseguire sysctl -p [nomefile]:

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


Cent OS
  1. Come installare Python 3.5 su CentOS/RHEL e Fedora

  2. CentOS / RHEL 7 :Come impostare data, ora / NTP e fuso orario usando timedatectl

  3. CentOS / RHEL 7:come modificare la riga di comando del kernel

  4. Come creare un contenitore LXC usando lxcbr0 e virbr0 in CentOS/RHEL

  5. Come controllare i valori correnti per i parametri di ottimizzazione del kernel in CentOS/RHEL

Come installare Samba su RHEL e CentOS Stream

Come installare e configurare Jenkins su CentOS 8 / RHEL 8

Come installare flameshot su RHEL/CentOS usando Snapcraft

Come installare Wine 5.0 su CentOS, RHEL e Fedora

Centos 7.1 utilizza ancora il kernel 3.10 obsoleto Come eseguire l'aggiornamento al kernel 4.0?

CentOS / RHEL 7:come configurare kdump usando la GUI