Todos los productos
Search
Centro de documentos

Container Service for Kubernetes:Customize OS parameters for a node pool

Última actualización: Sep 28, 2026

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 .
Importante
  • 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.

  1. Inicie sesión en ACK console. En el panel de navegación izquierdo, haga clic en Clusters.

  2. 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.

  3. En la lista de node pools, busque el node pool objetivo y elija ... > OS Configuration en la columna Actions.

  4. 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.

Importante

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.

Importante

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.

  1. Inicie sesión en un nodo del node pool. Para obtener más información, consulte Connect to an ECS instance.

  2. Ejecute el comando sysctl para comprobar el valor actual de un parámetro. Por ejemplo: Salida esperada:

       sysctl fs.file-max
       fs.file-max = 2097152
  3. Para los parámetros THP, lea el archivo sysfs correspondiente. Por ejemplo:

       cat /sys/kernel/mm/transparent_hugepage/enabled
  4. 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

Nota
  • 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

fs.aio-max-nr

El número máximo de operaciones de E/S asíncronas.

65536

Sí

fs.file-max

El número máximo de manejadores de archivos que el sistema puede abrir.

2097152

Sí

fs.inotify.max_user_watches

El número máximo de watches de inotify que un solo usuario puede crear.

524288

Sí

fs.inotify.max_user_instances

El número máximo de instancias de inotify que un solo usuario puede crear. Limita el uso de recursos por usuario.

16384

No

fs.inotify.max_queued_events

El número máximo de eventos del sistema de archivos que se pueden poner en cola en el kernel.

16384

No

fs.nr_open

El número máximo de descriptores de archivos que un solo proceso puede abrir. Este valor debe ser menor que fs.file-max.

1048576

Sí

fs.may_detach_mounts

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

net.core.netdev_max_backlog

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í

net.core.optmem_max

El tamaño máximo del búfer auxiliar para cada socket de red, en bytes.

20480

Sí

net.core.rmem_max

El tamaño máximo del búfer de recepción para cada socket de red, en bytes.

16777216

Sí

net.core.wmem_max

El tamaño máximo del búfer de envío para cada socket de red, en bytes.

16777216

Sí

net.core.wmem_default

El tamaño predeterminado del búfer de envío para cada socket de red, en bytes.

212992

Sí

net.core.somaxconn

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

net.ipv4.tcp_mem

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í

net.ipv4.tcp_wmem

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

net.ipv4.tcp_rmem

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

net.ipv4.tcp_max_syn_backlog

El número máximo de solicitudes de conexión con un apretón de manos triple incompleto en la cola SYN.

8096

No

net.ipv4.tcp_slow_start_after_idle

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

net.ipv4.ip_forward

Habilita el reenvío de paquetes IPv4, lo que permite que el sistema actúe como router.

1

No

net.ipv4.neigh.default.gc_thresh1

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í

net.ipv4.neigh.default.gc_thresh2

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í

net.ipv4.neigh.default.gc_thresh3

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í

net.bridge.bridge-nf-call-iptables

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

kernel.pid_max

El ID de proceso (PID) máximo que el sistema puede asignar.

4194303

Sí

kernel.threads-max

El número máximo de hilos que el sistema puede crear.

504581

Sí

kernel.softlockup_panic

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

kernel.softlockup_all_cpu_backtrace

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

vm.max_map_count

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

user.max_user_namespaces

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.

Nota
  • 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

transparent_enabled

Controla si THP está habilitado globalmente.

- always: Habilita THP en todo el sistema.- never: Deshabilita THP en todo el sistema.- madvise: Habilita THP solo para regiones de memoria marcadas con la bandera MADV_HUGEPAGE mediante la llamada al sistema madvise().

transparent_defrag

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.

- always: Si no se puede asignar una página enorme, el sistema pausa el proceso de asignación e intenta inmediatamente recuperar y desfragmentar memoria. Si hay suficiente memoria libre contigua disponible, procede la asignación de la página enorme.- defer: Si no se puede asignar una página enorme, el sistema asigna una página estándar de 4 KB en su lugar. Los hilos del kernel kswapd y kcompactd se activan para recuperar y desfragmentar memoria en segundo plano. Posteriormente, el hilo del kernel khugepaged puede fusionar estas páginas de 4 KB en una página enorme de 2 MB si hay suficiente memoria contigua disponible.- madvise: La asignación se comporta como always solo para regiones de memoria marcadas con la bandera MADV_HUGEPAGE mediante la llamada al sistema madvise(). Para todas las demás regiones de memoria, un fallo de página resulta en la asignación de una página estándar de 4 KB.- defer+madvise: La asignación se comporta como always para regiones de memoria marcadas con MADV_HUGEPAGE. Para todas las demás regiones de memoria, el comportamiento de asignación es equivalente a defer.- never: Prohíbe todos los esfuerzos de desfragmentación para páginas enormes.

khugepaged_defrag

khugepaged es un hilo del kernel que gestiona y fusiona páginas enormes para reducir la fragmentación de la memoria y mejorar el rendimiento. Escanea páginas enormes dispersas y las fusiona en bloques contiguos, lo que mejora la utilización de la memoria. Dado que este proceso implica operaciones de bloqueo en la ruta de memoria, y el hilo del kernel khugepaged podría escanear y convertir páginas en momentos inoportunos, esto podría afectar el rendimiento de la aplicación.

- 0: Deshabilita la desfragmentación de khugepaged.- 1: El hilo del kernel khugepaged se activa periódicamente durante los tiempos de inactividad del sistema para fusionar páginas contiguas de 4 KB en páginas enormes de 2 MB.

khugepaged_alloc_sleep_millisecs

El tiempo, en milisegundos, que el hilo del kernel khugepaged espera antes del siguiente intento de asignación de página enorme tras un fallo. Esto evita fallos repetidos de asignación en un corto período.

Para obtener más información, consulte khugepaged defragmentation.

khugepaged_scan_sleep_millisecs

El intervalo, en milisegundos, entre cada vez que el hilo del kernel khugepaged se activa para escanear la memoria.

khugepaged_pages_to_scan

El número de páginas de memoria que el hilo del kernel khugepaged escanea cada vez que se activa.