Recientemente he tenido problemas con la paliza como resultado de la falta de memoria. (Mi VPS tiene 256M en total)
Estoy tratando de sintonizar MySQL usando mysqltuner.pl y obtengo los siguientes resultados:
-------- Estadísticas Generales ---------------------------------------- ----------
[-] Verificación de versión omitida para el script MySQLTuner
[OK] Actualmente ejecuta MySQL compatible versión 5.0.51a-3ubuntu5.4-log
[OK] Operando en arquitectura de 64 bits
-------- Estadísticas del motor de almacenamiento --------------------------------------- ----
[-] Estado: + Archivo -BDB -Federated -InnoDB -ISAM -NDBCluster
[-] Datos en tablas MyISAM: 114M (Tablas: 454)
[!!] Tablas totales fragmentadas: 34
-------- Métricas de rendimiento ---------------------------------------- ---------
[-] Hasta: 40 s (570 q [14.250 qps], 23 conn, TX: 154K, RX: 23K)
[-] Lecturas / Escrituras: 100% / 0%
[-] Buffers totales: 338.0M global + 2.7M por hilo (20 hilos máximo)
[!!] Uso de memoria máximo posible: 392.9M (153% de RAM instalada)
[OK] Consultas lentas: 0% (5/570)
[OK] Mayor uso de conexiones disponibles: 15% (3/20)
[!!] Tamaño del búfer clave / índices totales de MyISAM: 8.0M / 9.4M
[!!] Tasa de aciertos del búfer clave: 57,1% (7 en caché / 3 lecturas)
[Aceptar] Eficiencia de caché de consulta: 21,9% (7 en caché / 32 selecciones)
[OK] Consulta de ciruelas pasas por día: 0
[OK] Clasificaciones que requieren tablas temporales: 0% (0 clasificaciones temporales / 1 clasificaciones)
[OK] Tablas temporales creadas en disco: 0% (0 en disco / 32 en total)
[OK] Tasa de aciertos de caché de subprocesos: 86% (3 creadas / 23 conexiones)
[OK] Tasa de aciertos de caché de tabla: 26% (128 abiertos / 484 abiertos)
[OK] Límite de archivo abierto utilizado: 25% (259 / 1K)
[OK] Bloqueos de tabla adquiridos inmediatamente: 100% (492 inmediatos / 492 bloqueos)
-------- Recomendaciones ----------------------------------------- ------------
Recomendaciones generales:
Ejecute OPTIMIZE TABLE para desfragmentar tablas para un mejor rendimiento
MySQL comenzó en las últimas 24 horas: las recomendaciones pueden ser inexactas
Reduzca su huella general de memoria MySQL para la estabilidad del sistema
Variables a ajustar:
*** El uso máximo de memoria de MySQL es peligrosamente alto ***
*** Agregue RAM antes de aumentar las variables del búfer MySQL ***
key_buffer_size (> 9.4M)
¿Pero estoy un poco confundido sobre cómo reducir el uso máximo de memoria? Parece estar basado en key_buffer y max_ connections, pero ¿debe haber algo más involucrado también?
my.cnf:
key_buffer = 8M max_allowed_packet = 12M thread_stack = 128K thread_cache_size = 8 max_ connections = 20 table_cache = 128 tmp_table_size = 256M max_heap_table_size = 256M join_buffer_size = 256K query_cache_limit = 8M query_cache_size = 64M
He estado tratando de leer los artículos de ajuste de MySQL, ¡pero parecen estar dirigidos a personas que ya saben lo que están haciendo! Cualquier ayuda sería apreciada. ¡Gracias!