Veo que kswapd usa el 100% de la CPU ... ¿cómo puedo saber en qué proceso se usa tanto kswapd?
Veo que kswapd usa el 100% de la CPU ... ¿cómo puedo saber en qué proceso se usa tanto kswapd?
Respuestas:
kswapd administra el espacio de intercambio en respuesta a demandas de memoria mayores que las disponibles físicamente para todos los procesos.
Es un proceso agnóstico, solo está interesado en qué páginas tienen acceso y cuándo (es más complejo que esto, por supuesto, pero para simplificar las cosas, también podemos verlo de esta manera).
Entonces, la verdadera pregunta es "qué procesos tienen la mayor carga sobre la memoria que causan que kswapd necesite paginar todo el tiempo".
Eso es más fácil de responder usando 'top' y cambiando al modo de clasificación de uso de memoria.
top
me dice que no se está gastando tiempo en la espera de E / S, y que se está gastando casi el 100% en el sistema. Más información: kswapd a menudo usa el 100% de la CPU cuando el intercambio está en uso
Puedes escribirlo ... pero también puedes hacerlo desde arriba
Ejecutar arriba y luego presionar O seguido de p luego ingresar
Ahora todos los procesos están ordenados por uso de intercambio y puedes ver cuáles lo están usando
Si está en Ubuntu 15.10 o superior, esto puede ser el resultado de un error , especialmente si su sistema es una máquina virtual que carece de una partición de intercambio (por ejemplo, AWS EC2). El problema existe en otras distribuciones , pero, al momento de escribir, no está claro si la misma solución funciona universalmente.
Una solución temporal:
sudo ln -s /dev/null /etc/udev/rules.d/40-vm-hotadd.rules
sudo reboot
Tenga en cuenta que esto deshabilitará la adición de RAM / CPU para las máquinas virtuales Xen e Hyper-V.
echo 3 > /proc/sys/vm/drop_caches
alivia una vez que comienza a suceder. Previamente tengo el comando en un trabajo cron ahora y parece ayudar, o al menos limitar la duración de la masacre de OOM cuando estoy lejos de la computadora.
También parece haber un error en kswapd
algún lugar, con suerte solo en los núcleos más antiguos.
Casi todos los días, ahora kswapd se convierte aleatoriamente en algunas máquinas en un clúster más grande (aunque con un núcleo no actual). 100% de CPU en ambos procesos kswapd. Ningún otro proceso en ejecución (excepto ssh shell), mucha RAM libre (más de 700 MB) y ningún SWAP utilizado. Sin intercambio, sin intercambio también.
Nada explica todavía, por qué una máquina en particular es golpeada y otra no. Parece que no es completamente aleatorio, porque generalmente afecta a más de una máquina en un corto período de tiempo. Parece que las máquinas, que están inactivas, así como las máquinas que están bajo alta presión, son menos (!) Probablemente afectadas por el efecto. Por lo tanto, tiene que hacer algo con la carga de trabajo y solo golpea si la máquina no está inactiva ni muy ocupada.
Si el problema surge, ya nada ayuda. Matar todos los procesos (que no se volvieron imposibles de matar), desmontar todos los sistemas de archivos, nada. kswapd
Todavía se mantiene al 100% de la CPU. Sospecho que hay una carrera de spinlock en los núcleos SMP, pero también es probable que me equivoque.
Quizás vea mi respuesta serverfault.com/questions/316995/#493257
Notas: