Como administrador del sistema Linux, a veces puede necesitar modificar el comportamiento del kernel predeterminado. Por ejemplo, es posible que deba habilitar la tecla mágica SysRq o aumentar la cantidad de conexiones que aceptará Kernel. Los parámetros del kernel se pueden configurar al construir el kernel, en el arranque del sistema o en tiempo de ejecución.

Este artículo explica cómo usar el sysctlcomando para ver y modificar los parámetros del kernel en tiempo de ejecución.

Uso sysctlpara ver los parámetros del kernel

Para ver todos los parámetros actuales del núcleo, invoque el sysctlcomando con la -aopción:

sysctl -a

Esto generará una lista grande que se parece a la siguiente, donde cada línea incluye el nombre del parámetro y su valor:

abi.vsyscall32 = 1
debug.exception-trace = 1
debug.kprobes-optimization = 1
...

Todos los usuarios pueden ver los parámetros actuales del kernel; solo el usuario root puede modificar sus valores.

Puede comprobar el valor de un único parámetro pasando su nombre como argumento a sysctlPor ejemplo, para verificar el valor de swappiness actual, escribiría:

sysctl vm.swappiness
vm.swappiness = 60

Swappiness es una propiedad del kernel de Linux que define la frecuencia con la que el sistema utilizará el espacio de intercambio .

El sysctlcomando lee la información del /proc/sysdirectorio. /proc/syses un directorio virtual que contiene objetos de archivo que se pueden usar para ver y configurar los parámetros actuales del núcleo.

También puede ver el valor de un parámetro mostrando el contenido del archivo correspondiente. La única diferencia es cómo se representa el archivo. Por ejemplo, ambos sysctl vm.swappinesscat /proc/sys/vm/swappinessdarán el mismo resultado. Cuando se usa sysctlel directorio, las barras se reemplazan con puntos y proc.sysse asume la parte.

Uso sysctlpara modificar los parámetros del kernel

Para establecer un parámetro del kernel en tiempo de ejecución, ejecute el sysctlcomando seguido del nombre y el valor del parámetro en el siguiente formato:

sysctl -w parameter=value

Si el valor contiene espacios vacíos o caracteres especiales, encierre el valor entre comillas dobles. También puede pasar varios parameter=valuepares en el mismo comando.

Tenga mucho cuidado al cambiar la configuración del kernel en un sistema de producción, ya que puede hacer que el kernel sea inestable y deberá reiniciar el sistema .

Por ejemplo, para habilitar el reenvío de paquetes IPv4, ejecutaría:

sysctl -w net.ipv4.ip_forward=1

El cambio surte efecto inmediatamente, pero no es persistente. Después de reiniciar el sistema, se carga el valor predeterminado.

Para establecer un parámetro de forma permanente, deberá escribir la configuración en /etc/sysctl.confu otro archivo de configuración en el /etc/sysctl.ddirectorio:

sysctl -w net.ipv4.ip_forward=1 >> /etc/sysctl.conf

Otra forma de cambiar los parámetros es usar el echo comando para escribir la configuración en los archivos del /proc/sysdirectorio. Por ejemplo, en lugar de ejecutar el comando anterior, puede usar:

echo 1 > /proc/sys/net/ipv4/ip_forward

La -popción le permite cargar la configuración desde un archivo de configuración:

sysctl -p /etc/sysctl.d/file_name.conf

Cuando no se proporciona ningún archivo, sysctllee el /etc/sysctl.confarchivo.

Conclusión

El sysctlcomando le permite ver y cambiar los parámetros del kernel de Linux.

Siéntase libre de dejar un comentario si tiene alguna pregunta.