Modificación de parámetros de núcleo de nodo
Es posible que los parámetros predeterminados del kernel de Linux no satisfagan a todos los usuarios. Puede modificar el archivo de configuración /etc/sysctl.conf en el nodo para modificar los parámetros del núcleo.
- Los comandos para modificar los parámetros del sistema de nodos solo son válidos cuando se utilizan las imágenes públicas. Los comandos proporcionados en este documento son de referencia solo cuando se utilizan las imágenes privadas.
- Después de reiniciar el nodo, ejecute el comando sysctl -p para actualizar el valor del parámetro.
Parámetro |
Ubicación de parámetro |
Descripción |
Valor recomendado |
---|---|---|---|
file-max |
/etc/sysctl.conf |
Número máximo de manejadores de archivo en el sistema, que se pueden ajustar según sea necesario. Consultando el parámetro: sysctl fs.file-max |
fs.file-max=1048576 |
nf_conntrack_buckets nf_conntrack_max |
/etc/sysctl.conf |
Capacidad de la tabla de seguimiento de conexiones, que se puede ajustar según sea necesario. Uso del bucket = [nf_conntrack_count]/[nf_conntrack_buckets] Si el uso de CPU es mayor que 0.7 durante mucho tiempo, aumente el valor de los bucket para reducir el uso de CPU a menos de 0.7. Consultando el parámetro: sysctl net.netfilter.nf_conntrack_count sysctl net.netfilter.nf_conntrack_buckets sysctl net.netfilter.nf_conntrack_max
NOTA:
Nota: net.netfilter.nf_conntrack_buckets en EulerOS 2.3, EulerOS 2.5 y CentOS 7.6 no se pueden modificar editando /etc/sysctl.conf y puede modificar los bucket modificando /sys/module/nf_conntrack/parameters/hashsize. |
El valor predeterminado se establece en función del tamaño de la memoria del nodo. Si necesita cambiar el valor, consulte la siguiente fórmula:
|
net.netfilter.nf_conntrack_tcp_timeout_close |
/etc/sysctl.conf |
Tiempo de expiración de la entrada de la conexión en el estado de cierre en la tabla de seguimiento de conexiones. Acortando el tiempo de caducidad puede acelerar el reciclaje. Consultando el parámetro: sysctl net.netfilter.nf_conntrack_tcp_timeout_close |
net.netfilter.nf_conntrack_tcp_timeout_close=3 |
net.netfilter.nf_conntrack_tcp_be_liberal |
/etc/sysctl.conf |
El valor del parámetro es 0 o 1.
Consultando el parámetro: sysctl net.netfilter.nf_conntrack_tcp_be_liberal |
net.netfilter.nf_conntrack_tcp_be_liberal=1 |
tcp_keepalive_time |
/etc/sysctl.conf |
Intervalo para enviar mensajes de detección de Keepalive con TCP. Si este parámetro se establece en un valor grande, las conexiones TCP pueden suspenderse en la fase Close_wait durante mucho tiempo, agotando los recursos del sistema. Consultando el parámetro: sysctl net.ipv4.tcp_keepalive_time |
net.ipv4.tcp_keepalive_time=600 |
tcp_max_syn_backlog |
/etc/sysctl.conf |
Número máximo de medias conexiones de TCP, es decir, el número máximo de conexiones en la cola SYN_RECV. Consultando el parámetro: sysctl net.ipv4.tcp_max_syn_backlog |
net.ipv4.tcp_max_syn_backlog=8096 |
tcp_max_tw_buckets |
/etc/sysctl.conf |
Especifica el número máximo de sockets en el estado de espera de tiempo que puede existir en cualquier momento. Si el valor del parámetro es demasiado grande, los recursos de nodo pueden agotarse. Consultando el parámetro: sysctl net.ipv4.tcp_max_tw_buckets |
net.ipv4.tcp_max_tw_buckets=5000 |
net.core.somaxconn |
/etc/sysctl.conf |
Número máximo de conexiones de TCP y tamaño máximo de la cola ESTABLISHED. Si el valor del parámetro es demasiado pequeño, el valor puede ser insuficiente. Consultando el parámetro: sysctl net.core.somaxconn |
net.core.somaxconn=32768 |
max_user_instances |
/etc/sysctl.conf |
Número máximo de instancias de inotificación permitidas para cada usuario. Si el valor del parámetro es demasiado pequeño, el número de instancias de inotify puede ser insuficiente en los contenedores. Consultando el parámetro: sysctl fs.inotify.max_user_instances |
fs.inotify.max_user_instances=8192 |
max_user_watches |
/etc/sysctl.conf |
Número máximo de directorios de todas las instancias de supervisión. Si el valor del parámetro es demasiado pequeño, el número de directorios puede ser insuficiente en los contenedores. Consultando el parámetro: sysctl fs.inotify.max_user_watches |
fs.inotify.max_user_watches=524288 |
netdev_max_backlog |
/etc/sysctl.conf |
Tamaño de la cola de recepción de paquetes de la pila de protocolos de red. Si el valor del parámetro es demasiado pequeño, el tamaño de la cola puede ser insuficiente. Consultando el parámetro: sysctl net.core.netdev_max_backlog |
net.core.netdev_max_backlog=16384 |
net.core.wmem_max net.core.rmem_max |
/etc/sysctl.conf |
Tamaño de memoria (bytes) del búfer de envío y recepción. Si este parámetro se establece en un valor pequeño, el tamaño de memoria puede ser insuficiente en escenarios de los archivos grandes. Consultando el parámetro: sysctl net.core.wmem_max sysctl net.core.rmem_max |
net.core.wmem_max=16777216 net.core.rmem_max=16777216 |
net.ipv4.neigh.default.gc_thresh1 net.ipv4.neigh.default.gc_thresh2 net.ipv4.neigh.default.gc_thresh3 |
/etc/sysctl.conf |
Optimización de la recolección de basura de las entradas ARP. Consultando el parámetro: sysctl net.ipv4.neigh.default.gc_thresh1 sysctl net.ipv4.neigh.default.gc_thresh2 sysctl net.ipv4.neigh.default.gc_thresh3 |
net.ipv4.neigh.default.gc_thresh1=0 net.ipv4.neigh.default.gc_thresh2=4096 net.ipv4.neigh.default.gc_thresh3=8192 |
vm.max_map_count |
/etc/sysctl.conf |
Si este parámetro se establece en un valor pequeño, se muestra un mensaje que indica que el espacio es insuficiente durante la instalación de ELK. Consultando el parámetro: sysctl vm.max_map_count |
vm.max_map_count=262144 |
Modificación de parámetros de núcleo de un nodo
Tabla 1 enumera los parámetros del núcleo de los nodos. A continuación se describe cómo cambiar el valor de tcp_keepalive_time que indica el intervalo para enviar mensajes de detección de Keepalive a través de TCP.
- Inicie sesión en el nodo y vea el archivo /etc/sysctl.conf.
cat /etc/sysctl.conf
- Modifique el parámetro net.ipv4.tcp_keepalive_time. net.ipv4.tcp_keepalive_time=600 indica el nombre del parámetro del núcleo y el valor recomendado. Para obtener más información sobre el valor recomendado, consulte Tabla 1.
Para modificar otros parámetros del núcleo, reemplace los nombres y valores de los parámetros de los comandos haciendo referencia a Tabla 1.
- Si se ha establecido net.ipv4.tcp_keepalive_time en el archivo sysctl.conf, ejecute el siguiente comando para cambiar el valor:
sed -i "s/net.ipv4.tcp_keepalive_time=[0-9]*$/net.ipv4.tcp_keepalive_time=600/g" /etc/sysctl.conf && sysctl -p
- Si net.ipv4.tcp_keepalive_time no está definido en el archivo sysctl.conf, ejecute el siguiente comando para agregarlo:
echo net.ipv4.tcp_keepalive_time=600 >> /etc/sysctl.conf && sysctl -p
- Si se ha establecido net.ipv4.tcp_keepalive_time en el archivo sysctl.conf, ejecute el siguiente comando para cambiar el valor:
- Ejecute el comando de Tabla 1 para comprobar si la modificación se realiza correctamente. Si el valor devuelto es el mismo que el valor modificado, la modificación se realiza correctamente.
# sysctl net.ipv4.tcp_keepalive_time net.ipv4.tcp_keepalive_time = 600
Configuración automática de parámetros de núcleo al crear un nodo o un grupo de nodos
Puede configurar el script para que se ejecute después de crear un nodo o un grupo de nodos. Al crear un nodo o grupo de nodos, puede usar el script para configurar los parámetros del núcleo.
El parámetro tcp_keepalive_time se utiliza como ejemplo para describir cómo cambiar el intervalo para enviar mensajes de detección de Keepalive a través de TCP. El valor es el valor recomendado de Tabla 1.
- Confirme el sistema operativo del nodo o grupo de nodos que se va a crear, por ejemplo, CentOS 7.6.
- Pruebe manualmente los comandos de script en los nodos en el mismo clúster y ejecute el mismo SO. Para obtener más información sobre cómo ejecutar manualmente el script, consulte Modificación de parámetros de núcleo de un nodo.
- Al crear un nodo o grupo de nodos, elija Advanced Settings > Post-installation Command para agregar comandos. (Los siguientes comandos deben configurarse después de que la verificación se realice correctamente.) Para modificar otros parámetros del kernel, reemplace los nombres y valores de los parámetros de los comandos haciendo referencia a Tabla 1.
- Inicie sesión en el nodo y compruebe el archivo /etc/sysctl.conf. Si se ha establecido net.ipv4.tcp_keepalive_time en el archivo, ejecute el siguiente comando para cambiarlo:
sed -i "s/net.ipv4.tcp_keepalive_time=[0-9]*$/net.ipv4.tcp_keepalive_time=600/g" /etc/sysctl.conf && sysctl -p
- Inicie sesión en el nodo y compruebe el archivo /etc/sysctl.conf. Si net.ipv4.tcp_keepalive_time no está definido en el archivo, ejecute el siguiente comando para agregarlo:
echo net.ipv4.tcp_keepalive_time=600 >> /etc/sysctl.conf && sysctl -p
El comando de la siguiente figura solo se utiliza como ejemplo. Cámbielo según sea necesario.
- Inicie sesión en el nodo y compruebe el archivo /etc/sysctl.conf. Si se ha establecido net.ipv4.tcp_keepalive_time en el archivo, ejecute el siguiente comando para cambiarlo:
- Una vez creado el nodo, inicie sesión en el nodo y ejecute el comando en Tabla 1 para comprobar si la modificación se ha realizado correctamente.