GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo consultar y modificar los parámetros del kernel usando sysctl (inmediata y persistentemente) en CentOS / RHEL

El propósito de esta publicación es explicar cómo configurar los parámetros del kernel en los sistemas Red Hat (RHEL/CentOS) y Oracle Linux (OL) usando la utilidad sysctl. La utilidad sysctl (/sbin/sysctl) permite a los usuarios (privilegiados) consultar y modificar los parámetros del núcleo durante el tiempo de ejecución. La utilidad es común a la mayoría de las distribuciones de Linux; sin embargo, pueden existir diferencias sutiles entre las distribuciones, p. RHEL/OL y SuSE. Los parámetros que se pueden ver/modificar son los expuestos a través del sistema de archivos procfs /proc/sys. La notación de punto (".") se utiliza cuando se establece en un archivo de configuración.

Consulta de un parámetro de kernel específico

Para consultar un valor de parámetro de kernel con nombre, ejecute la utilidad sysctl con el comando '-n ' o ningún argumento en absoluto, por ejemplo:

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

En el ejemplo anterior, el parámetro kernel.shmmax se relaciona con /proc/sys/kernel/shmmax, por ejemplo:

# cat /proc/sys/kernel/shmmax
68719476736

Consultando todos los parámetros del núcleo

Para consultar todos los valores de los parámetros del núcleo, ejecute la utilidad systctl con el '-a ' argumento por ejemplo:

# 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

Puede buscar un parámetro de kernel específico en el resultado anterior. Use expresiones regulares para filtrar un grupo de parámetros del kernel. Por ejemplo,

# 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

Configurar los parámetros del kernel inmediatamente (no de forma persistente)

Para establecer un valor de parámetro sysctl inmediatamente (no persistente), use sysctl -w dominio. Por ejemplo:

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

Los parámetros que toman múltiples valores deben tener los valores entre comillas. Por ejemplo, para establecer net.ipv4.ip_local_port_range en 1025-65535:

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

Alternativamente, es posible hacer eco de los valores directamente en el archivo procfs que representa un parámetro sysctl. Por ejemplo:

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

Configurar los parámetros del kernel de forma persistente

Los valores de los parámetros del núcleo modificados con el método 'systctl -w' son volátiles, es decir, se pierden al reiniciar el servidor. El archivo de configuración de la utilidad sysctl, /etc/sysctl.conf , debe usarse para almacenar permanentemente valores de parámetros del kernel no predeterminados. El archivo se analiza en el arranque del servidor y los valores que contiene se utilizan para configurar el kernel. La sintaxis requerida para configurar los parámetros del núcleo utilizando el archivo /etc/sysctl.conf sigue la notación componente.parámetro=valor, p. kernel.shmmax =33554432.
Sintaxis

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

El siguiente es un archivo de muestra /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
....

Además de usar el método 'systctl -w' para modificar los parámetros del núcleo, también se pueden modificar los parámetros agregándolos al archivo /etc/sysctl.conf y luego analizando el archivo usando la utilidad sysctl con '-p ' argumento por ejemplo:

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

Modificar los parámetros del kernel agregándolos al archivo /etc/sysctl.conf no solo los establece (sysctl -p), sino que también garantiza que los valores modificados persistan después de reiniciar el servidor.

Configuración persistente de los parámetros del kernel en CentOS/RHEL 7

El enfoque para establecer el parámetro del kernel en CentOS/RHEL 7 es un poco diferente al de la versión anterior. Cree un nuevo archivo conf en /etc/sysctl.d/ directorio. Los nombres de los archivos tienen el formato /etc/sysctl.d/[nombre].conf. Los archivos en el directorio /etc/sysctl.d/ se analizan en orden, por lo que se recomienda anteponer al nombre del archivo un número que indique el orden en el que desea que se analicen los archivos. Por ejemplo, /etc/sysctl.d/ 01-personalizado.conf:

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

Para que el sistema aplique inmediatamente los valores en un archivo /etc/sysctl.d nuevo/actualizado, ejecute sysctl -p [nombre de archivo]:

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


Cent OS
  1. Cómo instalar Python 3.5 en CentOS/RHEL y Fedora

  2. CentOS/RHEL 7:Cómo modificar la línea de comandos del kernel

  3. Cómo configurar postifx smtp relay en CentOS/RHEL 5 y 6

  4. Cómo comprobar los valores actuales de los parámetros de ajuste del kernel en CentOS/RHEL

  5. Cómo crear una interfaz de puente usando nmcli en CentOS/RHEL 7 y 8

Cómo instalar Samba en RHEL y CentOS Stream

Cómo instalar y configurar Jenkins en CentOS 8 / RHEL 8

Cómo instalar Flameshot en RHEL/CentOS usando Snapcraft

Cómo instalar Wine 5.0 en CentOS, RHEL y Fedora

Centos 7.1 sigue usando el Kernel 3.10 obsoleto ¿Cómo actualizar a Kernel 4.0?

CentOS / RHEL 7:Cómo configurar kdump usando GUI