Si los parámetros predeterminados del sistema operativo de un sistema Linux no satisfacen los requisitos de su carga de trabajo, puede personalizar la configuración del sistema operativo a nivel de node pool para ajustar el rendimiento del sistema. Después de aplicar los parámetros personalizados, el sistema actualiza las configuraciones de los nodos en lotes. Estos cambios se aplican de inmediato a los nodos existentes y los nuevos nodos agregados al pool los heredan automáticamente.
Notas de uso
Esta función solo es compatible con ACK managed clusters, ACK dedicated clusters y ACK Edge clusters que ejecutan la versión 1.28 o posterior.
Ya no se admite la creación de nuevos clústeres dedicados de ACK. Para actualizar su clúster, consulte Upgrade a cluster .
La modificación dinámica de los parámetros del sistema operativo puede desencadenar el redespliegue de Pods. Antes de continuar, asegúrese de que su aplicación esté configurada para alta disponibilidad (HA).
Un ajuste inadecuado de los parámetros del sistema operativo puede alterar el comportamiento del kernel, lo que provoca degradación del rendimiento o fallos en los nodos que afectan a sus servicios. Comprenda a fondo la finalidad de cada parámetro y pruebe todos los cambios en un entorno que no sea de producción antes de aplicarlos en producción.
Configurar parámetros del sistema operativo del node pool
Puede personalizar los parámetros de sysctl y Transparent Huge Pages (THP) a nivel de node pool. Aunque todos los parámetros se pueden configurar mediante archivos, una selección de sysctl parameters y todos los THP parameters se pueden establecer mediante la consola de ACK u OpenAPI.
Configurar mediante la consola u OpenAPI
Consola
La aplicación de parámetros personalizados del sistema operativo cambia la configuración de los nodos existentes y puede afectar a sus servicios. Se recomienda realizar esta operación fuera del horario pico.
Inicie sesión en ACK console. En el panel de navegación izquierdo, haga clic en Clusters.
En la página Clusters, busque el clúster que desea gestionar y haga clic en su nombre. En el panel de navegación izquierdo, elija Nodes > Node Pools.
En la lista de node pools, busque el node pool objetivo y elija ... > OS Configuration en la columna Actions.
Lea atentamente las notas en pantalla. Haga clic en + Custom Parameters, seleccione los parámetros y especifique los nodos objetivo. Establezca el Maximum Number of Nodes to Repair per Batch (el valor máximo es 10) y luego haga clic en Submit.
Después de establecer el Maximum Number of Nodes to Repair per Batch, la configuración del sistema operativo se aplica a los nodos en lotes. Durante este proceso, puede supervisar el progreso en la sección Event History y controlar la ejecución con acciones como pause, resume y cancel.
La pausa le permite validar los nodos actualizados. Si detiene la tarea, la configuración de los nodos en curso se completa, pero el proceso no continúa con otros nodos hasta que lo reanude.
Complete la tarea de configuración a la brevedad. Cualquier tarea en pausa se cancela automáticamente después de siete días, y se elimina toda la información de eventos y registros asociada.
OpenAPI
Además de la consola, puede personalizar los parámetros del sistema operativo mediante la operación ModifyNodePoolNodeConfig.
Configurar mediante un archivo de configuración
ACK le permite escribir parámetros personalizados en /etc/sysctl.d/99-user-customized.conf. Este archivo está reservado para configuraciones personalizadas que se aplican durante la inicialización y el reinicio del nodo. Los parámetros de sysctl en este archivo tienen prioridad al reiniciar el nodo, y anulan tanto los valores predeterminados del sistema operativo como la configuración aplicada mediante la función OS Configuration de la consola.
El ajuste de los parámetros de sysctl cambia la forma en que opera el kernel de Linux y puede provocar degradación del rendimiento o fallos en el nodo, lo que afecta a sus servicios. Evalúe completamente los riesgos antes de realizar cualquier cambio.
Nodos existentes
Para los nodos existentes en el node pool, log on to the node y modifique el archivo de configuración. Luego, ejecute el siguiente comando para aplicar los cambios de inmediato:
sysctl -p /etc/sysctl.d/99-user-customized.conf
Archivo de configuración de ejemplo (/etc/sysctl.d/99-user-customized.conf):
# Filesystem settings
fs.file-max = 2097152
fs.nr_open = 1048576
# Networking settings
net.core.somaxconn = 32768
net.ipv4.tcp_max_syn_backlog = 8096
# Memory / kernel settings
vm.max_map_count = 262144
Reemplace los nombres y valores de los parámetros por los que necesite para su carga de trabajo.
Nodos nuevos (escalado horizontal)
Para los nuevos nodos agregados al node pool mediante escalado (scale-out), puede agregar un script al campo User Data del node pool. Esto garantiza que los nuevos nodos utilicen automáticamente los valores de parámetros personalizados.
En el campo User Data de la configuración de su node pool, agregue un script para escribir la configuración personalizada en un archivo dentro del directorio /etc/sysctl.d/. Reemplace ${sysctl_key} y ${sysctl_value} con el parámetro y el valor reales.
#!/bin/bash
echo "${sysctl_key} = ${sysctl_value}" >> /etc/sysctl.d/99-user-customized.conf
sysctl -p /etc/sysctl.d/99-user-customized.conf
Para obtener más información, consulte Create and manage node pools .
Verificar que los cambios surtieron efecto
Después de aplicar parámetros personalizados del sistema operativo, compruebe que los cambios se hayan aplicado a sus nodos.
Inicie sesión en un nodo del node pool. Para obtener más información, consulte Connect to an ECS instance.
-
Ejecute el comando
sysctlpara comprobar el valor actual de un parámetro. Por ejemplo: Salida esperada:sysctl fs.file-maxfs.file-max = 2097152 -
Para los parámetros THP, lea el archivo sysfs correspondiente. Por ejemplo:
cat /sys/kernel/mm/transparent_hugepage/enabled En la consola de ACK, revise la sección Event History del node pool para ver el estado de la tarea de configuración.
Lista de parámetros sysctl
En las siguientes tablas, el Default Value es el valor que ACK establece de forma predeterminada al inicializar un node pool.
Para conocer el rango válido de valores de estos parámetros, consulte la documentación de Parámetros sysctl del kernel de Linux.
Para los parámetros que no aparecen aquí o que aún no son compatibles con la consola u OpenAPI, puede modificarlos siguiendo los pasos en Configure using a configuration file.
Parámetros del sistema de archivos
Estos parámetros controlan los límites de manejadores de archivos, los watches de inotify y el comportamiento del sistema de archivos. Ajuste esta configuración para cargas de trabajo intensivas en E/S o aplicaciones que abren grandes cantidades de archivos.
|
Nombre del campo |
Descripción |
Valor predeterminado |
Consola u OpenAPI |
|
|
El número máximo de operaciones de E/S asíncronas. |
65536 |
Sí |
|
|
El número máximo de manejadores de archivos que el sistema puede abrir. |
2097152 |
Sí |
|
|
El número máximo de watches de inotify que un solo usuario puede crear. |
524288 |
Sí |
|
|
El número máximo de instancias de inotify que un solo usuario puede crear. Limita el uso de recursos por usuario. |
16384 |
No |
|
|
El número máximo de eventos del sistema de archivos que se pueden poner en cola en el kernel. |
16384 |
No |
|
|
El número máximo de descriptores de archivos que un solo proceso puede abrir. Este valor debe ser menor que |
1048576 |
Sí |
|
|
Permite que el kernel desmonte de forma segura un punto de montaje de un namespace incluso si un proceso aún lo está accediendo, lo que evita que todo el namespace se bloquee. |
1 |
No |
Parámetros de red
Estos parámetros rigen los búferes de socket, la cola de conexiones, la memoria TCP y el comportamiento de la caché ARP. Ajuste esta configuración para cargas de trabajo con alto tráfico o alta concurrencia.
|
Nombre del campo |
Descripción |
Valor predeterminado |
Consola u OpenAPI |
|
|
El número máximo de paquetes de datos que se pueden poner en cola para procesamiento cuando una interfaz de red recibe paquetes más rápido de lo que el kernel puede procesarlos. |
16384 |
Sí |
|
|
El tamaño máximo del búfer auxiliar para cada socket de red, en bytes. |
20480 |
Sí |
|
|
El tamaño máximo del búfer de recepción para cada socket de red, en bytes. |
16777216 |
Sí |
|
|
El tamaño máximo del búfer de envío para cada socket de red, en bytes. |
16777216 |
Sí |
|
|
El tamaño predeterminado del búfer de envío para cada socket de red, en bytes. |
212992 |
Sí |
|
|
El número máximo de conexiones que se pueden poner en cola para un socket en escucha, lo que controla la capacidad de manejo de conexiones concurrentes. |
32768 |
No |
|
|
La cantidad de memoria disponible para la pila TCP, medida en páginas de memoria (típicamente 4 KB). Este parámetro consta de tres valores enteros: el umbral bajo, el umbral de presión y el umbral alto. Debe establecer estos valores en orden. |
Calculado dinámicamente según la memoria total del sistema. |
Sí |
|
|
Los tamaños mínimo, predeterminado y máximo para el búfer de envío TCP, en bytes. Esta configuración afecta directamente el rendimiento de la red y el consumo de memoria de las conexiones TCP. |
4096 12582912 16777216 |
No |
|
|
Los tamaños mínimo, predeterminado y máximo para el búfer de recepción TCP, en bytes. Esta configuración afecta directamente el rendimiento de la red y el consumo de memoria de las conexiones TCP. |
4096 12582912 16777216 |
No |
|
|
El número máximo de solicitudes de conexión con un apretón de manos triple incompleto en la cola SYN. |
8096 |
No |
|
|
Controla si una conexión TCP vuelve a entrar en el algoritmo de inicio lento después de estar inactiva durante un largo período. |
0 |
No |
|
|
Habilita el reenvío de paquetes IPv4, lo que permite que el sistema actúe como router. |
1 |
No |
|
|
El número mínimo de entradas que se deben mantener en la caché ARP. El sistema no realiza la recolección de basura si el número de entradas está por debajo de este valor. |
Preajuste del sistema |
Sí |
|
|
El límite flexible para el número máximo de entradas en la caché ARP. Cuando el número de entradas alcanza este valor, el sistema programa la recolección de basura para que se ejecute después de un retraso de cinco segundos. |
1024 |
Sí |
|
|
El límite estricto para el número máximo de entradas en la caché ARP. El sistema realiza inmediatamente la recolección de basura cuando el número de entradas alcanza este valor. Si el número de entradas supera constantemente este límite, el proceso de recolección de basura se ejecuta continuamente. |
8192 |
Sí |
|
|
Permite que el tráfico puenteado sea procesado por reglas de iptables, lo que garantiza que se apliquen las políticas de seguridad de la red. |
1 |
No |
Parámetros de memoria y del kernel
Estos parámetros controlan los límites de procesos, el recuento de hilos, el mapeo de memoria y los diagnósticos del kernel. Ajuste esta configuración cuando sus cargas de trabajo requieran una gran cantidad de procesos o hilos, o cuando necesite ajustar el comportamiento del kernel para mejorar la estabilidad.
|
Nombre del campo |
Descripción |
Valor predeterminado |
Consola u OpenAPI |
|
|
El ID de proceso (PID) máximo que el sistema puede asignar. |
4194303 |
Sí |
|
|
El número máximo de hilos que el sistema puede crear. |
504581 |
Sí |
|
|
Cuando está habilitado, el kernel desencadena un pánico y reinicia el sistema si ocurre un bloqueo suave, lo que permite que el sistema restaure rápidamente su estado. |
1 |
No |
|
|
Cuando está habilitado, captura información de depuración de todas las CPU cuando se detecta un bloqueo suave, lo que facilita el diagnóstico. |
1 |
No |
|
|
El número máximo de áreas de mapeo de memoria que un solo proceso puede tener. Limita el uso excesivo de memoria. |
262144 |
No |
|
|
El número máximo de namespaces de usuario que un solo usuario puede crear. |
0 |
Sí |
Lista de parámetros THP
Transparent Huge Pages (THP) es una función del kernel de Linux que fusiona automáticamente páginas de memoria pequeñas (típicamente 4 KB) en otras más grandes (típicamente 2 MB o más). Este proceso reduce la sobrecarga de las entradas de la tabla de páginas (PTE) y el número de accesos a memoria, lo que disminuye la presión sobre el Translation Lookaside Buffer (TLB) y mejora la eficiencia del acceso a la memoria.
Todos los siguientes parámetros se pueden configurar mediante la consola de ACK u OpenAPI.
Los valores predeterminados de estos parámetros varían según el sistema operativo y la versión del kernel. Para obtener más información, consulte la documentación de Parámetros THP del kernel de Linux.
|
Nombre del campo |
Descripción |
Valores posibles |
|
|
Controla si THP está habilitado globalmente. |
- |
|
|
Controla si el kernel realiza la desfragmentación de memoria para crear páginas enormes. Cuando está habilitado, el sistema puede fusionar páginas pequeñas en una sola página enorme, lo que reduce el tamaño de la tabla de páginas y mejora el rendimiento. |
- |
|
|
|
- |
|
|
El tiempo, en milisegundos, que el hilo del kernel |
Para obtener más información, consulte khugepaged defragmentation. |
|
|
El intervalo, en milisegundos, entre cada vez que el hilo del kernel |
|
|
|
El número de páginas de memoria que el hilo del kernel |