¿Cómo puedo ver y modificar los parámetros del núcleo de un ECS de Linux?
Modifique los parámetros del núcleo solo si la configuración de los parámetros afecta a sus servicios. Los parámetros del núcleo varían dependiendo de las versiones de SO. Si se debe modificar la configuración de los parámetros,
- Asegúrese de que la configuración del parámetro de destino cumple con los requisitos de servicio.
- Modifique los parámetros correctos del núcleo. Para obtener más información acerca de los parámetros comunes del kernel, consulte Tabla 1.
- Haga una copia de respaldo de los datos clave de ECS antes de modificar la configuración de los parámetros del núcleo.
Fondo
Parámetro |
Descripción |
---|---|
net.core.rmem_default |
Especifica el tamaño predeterminado (en bytes) de la ventana para recibir los datos de TCP. |
net.core.rmem_max |
Especifica el tamaño máximo (en bytes) de la ventana para recibir los datos de TCP. |
net.core.wmem_default |
Especifica el tamaño predeterminado (en bytes) de la ventana para transmitir los datos de TCP. |
net.core.wmem_max |
Especifica el tamaño máximo (en bytes) de la ventana para transmitir los datos de TCP. |
net.core.netdev_max_backlog |
Especifica el número máximo de paquetes que se pueden enviar a una cola cuando la velocidad a la que cada puerto de red recibe paquetes es más rápida que la velocidad a la que el núcleo procesa estos paquetes. |
net.core.somaxconn |
Define la longitud máxima de la cola de escucha para cada puerto del sistema. Este parámetro se aplica globalmente. |
net.core.optmem_max |
Especifica el tamaño máximo del búfer permitido por cada socket. |
net.ipv4.tcp_mem |
Utiliza la pila de TCP para mostrar el uso de memoria en las páginas de memoria (4 KB en general). El primer valor es el límite inferior de uso de memoria. El segundo valor es el límite superior de la carga agregada a la memoria intermedia cuando la memoria está sobrecargada. El tercer valor es el límite superior de uso de memoria. Cuando se alcanza este valor, los paquetes pueden descartarse para reducir el uso de memoria. Para un BDP grande, aumente el valor del parámetro según sea necesario. La unidad de este parámetro es la página de memoria, pero no el byte. |
net.ipv4.tcp_rmem |
Especifica la memoria utilizada por los sockets para la optimización automática. El primer valor es el número mínimo de bytes asignados a la memoria intermedia de socket para recibir datos. El segundo valor es el valor predeterminado, que se sobrescribe con rmem_default. El tamaño de la memoria intermedia puede aumentar a este valor cuando la carga del sistema no es pesada. El tercer valor es el número máximo de bytes asignados a la memoria intermedia de socket para recibir datos. rmem_max sobrescribe este valor. |
net.ipv4.tcp_wmem |
Especifica la memoria utilizada por los sockets para la optimización automática. El primer valor es el número mínimo de bytes asignados a la memoria intermedia de socket para transmitir datos. El segundo valor es el valor predeterminado, que se sobrescribe con wmem_default. El tamaño de la memoria intermedia puede aumentar a este valor cuando la carga del sistema no es pesada. El tercer valor es el número máximo de bytes asignados a la memoria intermedia de socket para transmitir datos. wmem_max sobrescribe este valor. |
net.ipv4.tcp_keepalive_time |
Especifica el intervalo en el que los mensajes de detección de Keepalive se envían en segundos para comprobar las conexiones de TCP. |
net.ipv4.tcp_keepalive_intvl |
Especifica el intervalo en el que los mensajes de detección de Keepalive se reenvían en segundos cuando no se recibe ninguna respuesta. |
net.ipv4.tcp_keepalive_probes |
Especifica el número máximo de mensajes de detección de Keepalive que se envían para determinar un error de conexión de TCP. |
net.ipv4.tcp_sack |
Habilita el acuse de recibo selectivo (el valor 1 indica habilitado). Esta configuración permite al transmisor reenviar solo los paquetes perdidos, mejorando así el rendimiento del sistema. Sin embargo, esta configuración aumentará el uso de la CPU. Se le sugiere habilitar el acuse de recibo selectivo para la comunicación de WAN. |
net.ipv4.tcp_fack |
Habilita el acuse de recibo de reenvío para el acuse de recibo selectivo (SACK), reduciendo así la congestión. Se le sugiere habilitar el acuse de recibo de reenvío. |
net.ipv4.tcp_timestamps |
Especifica una marca de tiempo de TCP, que agregará 12 bytes en el encabezado del paquete de TCP. Esta configuración calcula RTT usando RFC1323, un método de retransmisión más preciso tras el tiempo de espera que la retransmisión. Se sugiere habilitar este parámetro para un mayor rendimiento del sistema. |
net.ipv4.tcp_window_scaling |
Habilita la escala de ventana basada en RFC1323 estableciendo el valor del parámetro en 1 si la ventana de TCP es mayor que 64 KB. La ventana de TCP máxima es de 1 GB. Este parámetro solo tiene efecto cuando se habilita el ajuste de ventana en ambos extremos de la conexión de TCP. |
net.ipv4.tcp_syncookies |
Especifica si se debe habilitar la sincronización de TCP (syncookie). Esta configuración evita la sobrecarga del socket cuando se intenta configurar un gran número de conexiones. CONFIG_SYN_COOKIES debe estar habilitado en el kernel para su compilación. El valor predeterminado es 0, que indica que la sincronización TCP está deshabilitada. |
net.ipv4.tcp_tw_reuse |
Especifica si se puede utilizar un socket TIME-WAIT (puerto TIME-WAIT) para las nuevas conexiones de TCP.
NOTA:
Este parámetro solo es válido para clientes y solo tiene efecto cuando net.ipv4.tcp_timestamps está habilitado. Este parámetro no se puede establecer en 1 si NAT está habilitado. De lo contrario, se producirá un error en los inicios de sesión remotos de ECS. Para obtener más información, consulte ¿Por qué se interrumpen ocasionalmente las conexiones a un ECS de Linux usando SSH o a aplicaciones en el ECS? |
net.ipv4.tcp_tw_recycle |
Permite el reciclaje rápido de los sockets TIME-WAIT.
NOTA:
Este parámetro solo es válido cuando net.ipv4.tcp_timestamps está habilitado. No establezca este parámetro en 1 si NAT está habilitado. De lo contrario, se producirá un error durante los inicios de sesión remotos de ECS. Para obtener más información, consulte ¿Por qué las conexiones a un ECS de Linux que usa SSH o a las aplicaciones en el ECS se interrumpen ocasionalmente? |
net.ipv4.tcp_fin_timeout |
Especifica el tiempo (en segundos) durante el cual una conexión de TCP de socket que se desconecta del extremo local permanece en el estado FIN-WAIT-2. La suspensión del proceso puede ser causada por la desconexión del extremo opuesto, la conexión continua desde el extremo opuesto, u otras razones. |
net.ipv4.ip_local_port_range |
Especifica los números de puerto locales permitidos por TCP/UDP. |
net.ipv4.tcp_max_syn_backlog |
Especifica el número máximo de solicitudes de conexión que no son reconocidas por el extremo opuesto y que pueden almacenarse en la cola. El valor predeterminado es 1024. Si el servidor se sobrecarga con frecuencia, intente aumentar el valor. |
net.ipv4.tcp_low_latency |
Esta opción debe deshabilitarse si se utiliza la pila TCP/IP para alto rendimiento y baja latencia. |
net.ipv4.tcp_westwood |
Permite que el algoritmo de control de congestión en el extremo del transmisor evalúe el rendimiento y mejore la utilización general del ancho de banda. Se sugiere activar el algoritmo de control de congestión para la comunicación de WAN. |
net.ipv4.tcp_bic |
Permite aumentar la congestión binaria para las redes de larga distancia rápidas de modo que las conexiones con operaciones que se realizan a una velocidad de Gbit/s pueden ser funcionales. Se le sugiere habilitar la congestión de aumento binario para la comunicación de WAN. |
net.ipv4.tcp_max_tw_buckets |
Especifica el número de los bucket TIME_WAIT, que por defecto es 180000. Si el número de los bucket excede el valor predeterminado, se borrarán los bucket adicionales. |
net.ipv4.tcp_synack_retries |
Especifica el número de veces que los paquetes SYN+ACK se retransmiten en estado SYN_RECV. |
net.ipv4.tcp_abort_on_overflow |
Cuando este parámetro se establece en 1, si el sistema recibe un gran número de solicitudes en un corto período de tiempo pero no las procesa, el sistema enviará paquetes de reinicio para terminar las conexiones. Se recomienda que mejore las capacidades de procesamiento del sistema optimizando la eficiencia de la aplicación en lugar de realizar las operaciones de restablecimiento. Valor predeterminado: 0 |
net.ipv4.route.max_size |
Especifica el número máximo de las rutas permitidas por el núcleo. |
net.ipv4.ip_forward |
Reenvía los paquetes entre las interfaces. |
net.ipv4.ip_default_ttl |
Especifica el número máximo de saltos por los que puede pasar un paquete. |
net.netfilter.nf_conntrack_tcp_timeout_established |
Borra las conexiones iptables que están inactivas durante un período de tiempo específico. |
net.netfilter.nf_conntrack_max |
Especifica el valor máximo de las entradas hash. |
Consulta de parámetros del kernel
- Método 1: Ejecute el comando cat de /proc/sys para ver el contenido del archivo.
/proc/sys/ es un directorio pseudo generado después de iniciar el kernel de Linux. La carpeta net de este directorio almacena todos los parámetros del kernel que han tenido efecto en el sistema. La estructura del árbol de directorios se determina basándose en los nombres de parámetros completos. Por ejemplo, net.ipv4.tcp_tw_recycle corresponde al archivo /proc/sys/net/ipv4/tcp_tw_recycle y el contenido del archivo es el valor del parámetro.
Por ejemplo:
Para ver el valor net.ipv4.tcp_tw_recycle, ejecute el siguiente comando:
cat /proc/sys/net/ipv4/tcp_tw_recycle
- Método 2: Utilice el archivo /etc/sysctl.conf.
Ejecute el siguiente comando para ver todos los parámetros que han tenido efecto en el sistema:
/usr/sbin/sysctl -a
net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_max_tw_buckets = 4096 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_keepalive_time = 1800 net.ipv4.tcp_fin_timeout = 30 ...... net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_rmem = 16384 174760 349520 net.ipv4.tcp_wmem = 16384 131072 262144 net.ipv4.tcp_mem = 262144 524288 1048576 ......
Modificación de la configuración del parámetro del kernel
- Método 1: Ejecute el comando echo de /proc/sys para modificar el archivo para los parámetros del kernel de destino.
Los valores de los parámetros cambiados con este método solo tienen efecto durante la ejecución actual y se restablecerán después de reiniciar el sistema. Para hacer que la modificación surta efecto permanentemente, consulte el método 2.
/proc/sys/ es un directorio pseudo generado después de iniciar el kernel de Linux. La carpeta net de este directorio almacena todos los parámetros del kernel que han tenido efecto en el sistema. La estructura del árbol de directorios se determina basándose en los nombres de parámetros completos. Por ejemplo, net.ipv4.tcp_tw_recycle corresponde al archivo /proc/sys/net/ipv4/tcp_tw_recycle y el contenido del archivo es el valor del parámetro.
Por ejemplo:
Para cambiar el valor net.ipv4.tcp_tw_recycle a 0, ejecute el siguiente comando:
echo "0" > /proc/sys/net/ipv4/tcp_tw_recycle
- Método 2: Utilice el archivo /etc/sysctl.conf.
Los valores de los parámetros modificados con este método tienen efecto permanentemente.
- Ejecute el siguiente comando para cambiar el valor de un parámetro especificado:
/sbin/sysctl -w kernel.domainname="example.com"
Por ejemplo:
sysctl -w net.ipv4.tcp_tw_recycle="0"
- Ejecute el siguiente comando para cambiar el valor del parámetro en el archivo /etc/sysctl.conf:
vi /etc/sysctl.conf
- Ejecute el siguiente comando para que la configuración surta efecto:
- Ejecute el siguiente comando para cambiar el valor de un parámetro especificado: