Blog de Kubernetes RSS
Seguir
Ajuste de la memoria SWAP de Linux para Kubernetes: Un análisis profundo
La característica NodeSwap de Kubernetes, que pronto será estable, permite a los nodos Linux utilizar espacio de intercambio para memoria virtual adicional. Esto busca mejorar la utilización de recursos y reducir las muertes por falta de memoria (OOM) cuando la RAM física se agota. Sin embargo, su efectividad depende de ajustar parámetros específicos del kernel de Linux como vm.swappiness, vm.min_free_kbytes y vm.watermark_scale_factor. El parámetro vm.swappiness controla la preferencia del kernel entre intercambiar memoria anónima y recuperar memoria respaldada por archivos. vm.min_free_kbytes actúa como un buffer de seguridad, influyendo en cuándo comienza la reclusión de páginas agresiva. vm.watermark_scale_factor ajusta la brecha entre las marcas de agua de memoria libre, afectando la ventana de intercambio. Las pruebas revelaron que los parámetros del kernel predeterminados pueden llevar a muertes por falta de memoria y reinicios de nodos bajo presión de memoria. Aumentar vm.min_free_kbytes y vm.watermark_scale_factor resultó crucial para prevenir la expulsión prematura y las muertes por falta de memoria, proporcionando al kernel más tiempo para intercambiar. Un swappiness más alto puede llevar a una espera de E/S significativa, mientras que un swappiness más bajo prioriza la eliminación de la caché de archivos. Ajustar adecuadamente estos parámetros, junto con los umbrales de expulsión de Kubelet, crea una estrategia equilibrada de gestión de presión de memoria. Los riesgos incluyen la degradación del rendimiento debido al acceso lento al espacio de intercambio y la máscara de fugas de memoria.