![Limitar el tamaño de tmpdir](https://rvso.com/image/1417411/Limitar%20el%20tama%C3%B1o%20de%20tmpdir.png)
Necesito limitar el uso del disco de MySQL tmpdir para que no "consuma" todo el espacio disponible en el disco. Hay alrededor de 30G disponibles, pero he visto a mysqld usarlos todos para crear una tabla temporal.
Mi primer enfoque fue implementar la cuota de disco, pero tuve problemas porque no sé cómo configurar la cuota mientras el disco está en uso. Probablemente se podría hacer en el momento del arranque en el script de inicio, pero no sé si es una buena idea.
¿Alguna sugerencia? ¿Cuáles serían las mejores prácticas en esta situación?
El sistema operativo es RedHat.
uname -a
Linux www.myservername.com 2.6.18-194.17.1.el5 #1 SMP Mon Sep 20 07:12:06 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux
mysql --version
mysql Ver 14.12 Distrib 5.0.77, for redhat-linux-gnu (x86_64) using readline 5.1
Respuesta1
¿Estás seguro de eso? AFAIK, las tablas temporales existen todo el tiempo que sean necesarias, para una consulta, pero luego desaparecerán. Si tiene tantas consultas activas que necesitan tablas temporales de 30 GB, eso le causará muchos más problemas que usar todo el espacio libre (me refiero al disco IO, etc.)
Aún puedes jugar con ulimit, pero al menos será necesario reiniciar el servicio, por lo que no estoy seguro de si eso es mejor que establecer cuotas.
Respuesta2
Si tiene LVM, cree un montaje de partición separado del tamaño requerido. puedes usar la opción --tmpdir para mysqld.
Mira esto.http://dev.mysql.com/doc/refman/5.0/en/temporary-files.html
Respuesta3
Después de muchos intentos en una máquina virtual, he decidido que es demasiado arriesgado para un entorno de producción forzar la cuota en (-m). El problema solo ocurrió una vez desde que me ocupo de esta infraestructura y sospecho que debe estar relacionado con una consulta poco fiable en el servidor que crea una tabla temporal enorme.
Gracias a todos por las sugerencias.