El sistema Linux no responde completamente y tiene mucho espacio de intercambio libre

El sistema Linux no responde completamente y tiene mucho espacio de intercambio libre

Tengo un servicio .NET (Core 2.0) que moví de instancias de Windows a Linux en AWS. Las instancias son micro con 1Gb de RAM.

Agregué 1 Gb de espacio de intercambio a la instancia de Linux y también configuré swappiness=100, pero el servidor se congela cuando se llena la memoria física. El proceso en sí se ralentiza hasta casi detenerse e incluso presionar ENTER en bash a veces tarda 10 segundos en aparecer la nueva línea.

Al ejecutar, topveo que la memoria libre suele ser de 10 o 20 MB. El proceso utiliza más de 800 MB de RAM y el intercambio siempre está casi vacío, con un uso máximo de 20 MB. Incluso dejarlo allí durante una hora no cambió más.

Puedo ver que los créditos de disco y CPU en AWS están casi al 100%, por lo que no limita el uso de recursos. Además, hay alrededor de cien de estas instancias y las he reemplazado varias veces; el comportamiento es siempre el mismo, por lo que no parece unamala instanciaproblema.

Lo que me molesta es que esto no sucedió en Windows y las instancias de Linux usan alrededor de 200 MB menos de memoria para el sistema base.

¿Hay alguna configuración que deba modificar aparte del intercambio para que Linux mueva más memoria para intercambiar?

Editar:Swap está configurado correctamente a través de cloud-init y sobrevive bien a los reinicios:

Configuración:

fallocate -l 1024M /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
sysctl vm.swappiness=100

free -mdespués del arranque:

             total       used       free     shared    buffers     cached
Mem:           993        232        760          0          7        152
-/+ buffers/cache:         72        921
Swap:         1023          0       1023

Respuesta1

Encontré el verdadero problema. La aplicación se ejecuta dentro de la ventana acoplable yAWS bloquea deliberadamente el uso de intercambio dentro de los contenedores ECSpor alguna razón. Este bloque no afectó a Windows porque antes no usábamos ECS para administrar la ventana acoplable.

Después de hablar con su soporte, no admiten el intercambio dentro de contenedores y no saben cuándo lo harán. Entonces, tendré que salir de ECS y administrar Docker yo mismo.

Respuesta2

Bueno, tu error puede ser bastante pequeño. Ese alto valor de intercambio causará un problema con algunas configuraciones del sistema operativo. Pruebe con un valor como 15. (Solo una nota: forzar a su sistema a preferir el intercambio es una idea horrible. Su sistema necesita usar RAM real para funcionar normalmente. [en caso de que no lo sepa o lo haya revertido, el intercambio es el % de RAM libre antes de usar el intercambio, por lo que 15 es que se debe usar el 85% de la RAM antes de que se use la partición SWAP.])

Además, ¿cómo agregaste espacio de intercambio? Si acaba de cambiar la configuración y no creó una nueva partición, o dejó errores en su archivo /etc/fstab, no podrá usar swap y todo el uso se interrumpirá cuando el sistema intente escribir en algo que no está allí o no puede escribir (o sucederá algo mucho más interesante). He roto más de una instalación mediante esos métodos.

información relacionada