¿Cómo liberar la memoria física y virtual utilizada del servidor mysql?

¿Cómo liberar la memoria física y virtual utilizada del servidor mysql?

Varios scripts php se ejecutan a través de crontab en mi CentOS 6.5, cada script php contiene al menos una solicitud de base de datos. Dependiendo del tamaño y tipo del objeto php, el servicio mysqld asigna demasiada memoria física en algunos casos específicos.

A veces, solo hay 15 MB de memoria libre de 1,7 GB, la memoria de intercambio también se asigna tal vez al 95% de uso. Para liberar la memoria del servidor, la única solución alternativa es reiniciar el servidor mysqld, pero después de un par de días la memoria vuelve a estar casi llena.

Para ignorar el reinicio de mysqld, intenté vaciar el caché de consultas usando RESET QUERY CACHE;y FLUSH QUERY CACHE;no se cambia nada en el estado de la memoria. También intenté ejecutar sync && echo 3 | sudo tee /proc/sys/vm/drop_cachespero el estado de la memoria vuelve a ser el mismo.

¿Sabe cómo liberar la memoria física y virtual, por ejemplo, después de cada ejecución de script sin reiniciar el servidor MySQL?

Respuesta1

Si MySQL está consumiendo toda la memoria, entonces debe ajustar sus valores o aumentar la RAM del servidor. Si le ha dicho a MySQL que puede tener 16 GB de RAM pero solo hay 8 GB disponibles, entonces suceden cosas.

No organizas una fiesta para 20 personas en una habitación de hotel promedio sólo para descubrir que la habitación es demasiado pequeña y vuelves a intentarlo la noche siguiente con la esperanza de que luego quepan 20 personas allí. O reservas una sala más grande o invitas a menos personas.

información relacionada