GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué se usa Swap cuando queda mucha memoria libre?

Solución 1:

Esto es perfectamente normal.

Al iniciar el sistema, se inician una serie de servicios. Estos servicios se inicializan, leen archivos de configuración, crean estructuras de datos, etc. Usan algo de memoria. Muchos de estos servicios nunca volverán a ejecutarse durante todo el tiempo que el sistema esté activo porque no los está utilizando. Algunos de ellos pueden funcionar en horas, días o semanas. Sin embargo, todos estos datos están en la memoria física.

Por supuesto, el sistema no puede desechar estos datos. No puede probar que, literalmente, nunca se accederá. Uno de esos servicios, por ejemplo, podría ser el que le proporciona acceso remoto a la caja. Puede que no lo hayas usado en una semana, pero si lo usas, es mejor que funcione.

Pero el sistema sabe que le gustaría usar esa memoria física para cosas como un caché de disco o de otras maneras que mejoren el rendimiento. Entonces hace intercambios oportunistas. Cuando no tiene nada mejor que hacer, escribe datos que no se han utilizado en mucho tiempo en el disco, utilizando el espacio de intercambio. Sin embargo, todavía mantiene las páginas en la memoria física. Por lo tanto, aún se puede acceder a ellos sin tener que cambiarlos.

Ahora, si el sistema luego necesita esa memoria física para otra cosa, simplemente puede desechar esas páginas porque ya las ha escrito para intercambiar. Esto le da al sistema lo mejor de ambos mundos. Los datos aún se mantienen en la memoria, por lo que se puede acceder a ellos sin tener que leerlos del disco. Pero si el sistema necesita esa memoria para otro propósito, no tendrá que escribirla primero. Gran victoria en general.

Solución 2:

Esto puede suceder si en algún momento en el pasado necesitó más memoria de la que tiene RAM física en la máquina. En ese momento, se habrán escrito algunos datos en el espacio de intercambio.

Cuando se libera memoria posterior, los datos del intercambio no se vuelven a leer automáticamente en la RAM:esto solo sucede cuando algún proceso realmente necesita los datos en el intercambio. Esto es perfectamente normal.

En cuanto a su proceso mysql:todo depende del tipo de consultas que ejecute. En teoría, 2 consultas muy complejas probablemente podrían ser suficientes para obtener tal carga, independientemente de la cantidad de usuarios. Puede habilitar el registro de consultas lentas para obtener más información sobre qué consultas requieren una carga intensiva.

Solución 3:

También puede cambiar este comportamiento por sysctl -w vm.swappiness=10 , lo que reducirá en gran medida el uso de intercambio hasta que sea realmente necesario.

En cuanto a MySQL, ¿realizó al menos una prueba de configuración de línea base usando el script tuning-primer.sh?


Linux
  1. ¿Por qué usar shm_open?

  2. ¿Por qué `find` en Linux omite los resultados esperados cuando se usa `-o`?

  3. ¿Cómo obtener el% de uso de memoria con vmstat?

  4. ¿Por qué todavía se usa Unix si Linux se basa en él y Linux es gratuito?

  5. ¿Por qué usar innodb_file_per_table?

Cómo borrar la memoria de intercambio en Linux

¿Por qué usar el intercambio cuando hay más que suficiente espacio libre en RAM?

¿Linux Oom aleatoriamente cuando todavía hay memoria libre?

Supervisión y gestión de la memoria

Ejemplos de comandos gratuitos en Linux

¿Cómo mostrar dispositivos usados/espacio libre cuando se usa LVM?