2012-06-05 11 views
20

Espero que alguien pueda ofrecer alguna ayuda para optimizar un archivo my.cnf para un servidor de base de datos mysql de gran volumen.MySQL my.cnf recomendaciones de ajuste del rendimiento

Our architecture is as follows: 

Memory  : 96GB 
CPUs  : 12 
OS & Mysql : 64-bit 
Disk Space : 1.2 TB 
DB Engine : MyISAM 

Nuestra aplicación web es utilizada por aproximadamente 300 clientes simultáneamente. Necesitamos nuestro our.cnf sintonizado para ofrecer el mejor rendimiento posible para esta infraestructura.

Soy consciente de que los índices y las consultas optimizadas son un factor importante en esto, pero nos gustaría comenzar con un sistema que está configurado correctamente y luego seguir con la reingeniería sistemática de nuestras consultas en consecuencia.

Here is our current my.cnf file content: 

[mysqld] 
datadir=/home/mysql 
socket=/home/mysql/mysql.sock 
user=mysql 

log-bin=mysql-bin 
server-id=1 
# Disabling symbolic-links is recommended to prevent assorted security risks 
symbolic-links=1 

log-slow-queries = /var/log/mysqld_slow_queries.log 
long_query_time = 10 

max_connections = 500 

key_buffer_size = 32768M 
#max_allowed_packet = 2M 
#table_open_cache = 128 
#sort_buffer_size = 1024K 
#net_buffer_length = 64K 
#read_buffer_size = 1024K 
#read_rnd_buffer_size = 1024K 
#myisam_sort_buffer_size = 8M 
query_cache_size = 128M 
query_cache_limit = 128M 

interactive_timeout = 300 
wait_timeout = 300 

# Added values after load testing 
thread_cache_size = 8 
#tmp_table_size = 256M 
#max_heap_table_size = 256M 
#table_cache = 512 
#join_buffer_size = 512 

log-error=/var/log/mysqld.log 

innodb_buffer_pool_size=128M 
#innodb_file_per_table 
#innodb_log_file_size=250M 
##innodb_buffer_pool_size=64M 
#innodb_buffer_pool_size=1024M 
#innodb_log_buffer_size=4M 
##log-bin=mysql-bin 

[mysqld_safe] 
log-error=/var/log/mysqld.log 
pid-file=/var/run/mysqld/mysqld.pid 

#[myisamchk] 
#key_buffer = 64M 
#sort_buffer = 64M 
#read_buffer = 16M 
#write_buffer = 16M 

¿Alguna sugerencia? Gracias amigos.

Editar por RolandoMySQLDBA

Dado que todos los datos que es MyISAM, ejecute esta consulta y mostrar la salida

SELECT CONCAT(ROUND(KBS/POWER(1024, 
IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), 
SUBSTR(' KMG',IF(PowerOf1024<0,0, 
IF(PowerOf1024>3,0,PowerOf1024))+1,1)) 
recommended_key_buffer_size FROM 
(SELECT LEAST(POWER(2,32),KBS1) KBS 
FROM (SELECT SUM(index_length) KBS1 
FROM information_schema.tables 
WHERE engine='MyISAM' AND 
table_schema NOT IN ('information_schema','mysql')) AA) A, 
(SELECT 3 PowerOf1024) B; 

@ Rolando - Gracias ... los resultados de esa consulta fue 4G.

+0

¿Usted está experimentando lentitud específico basado en la configuración actual? – Randy

+0

Es una máquina bastante buena para solo 300 usuarios de la web, más aún si solo se trata de un servidor de bases de datos ... ¿Es esto Windows o Linux? De cualquier forma, generalmente recomiendo tener discos/LUN separados para OS/Swap y el volumen de datos (donde reside el datadir). Manténgase alejado de incursiones de software, etc. Existe una herramienta llamada 'mk-query-advisor' que podría ayudarlo a ajustar esta configuración. A menos que su aplicación 'front-end' esté haciendo lo 'correcto' (almacenamiento en caché de datos estáticos, solo consultas cuando sea necesario, etc.), la optimización podría no serle de mucha ayuda. – JMC

+0

También puede agregar un guión de mantenimiento (después de una copia de seguridad del curso) que llame 'OPTIMIZE TABLE tbl_name' cada semana para ayudar a mantener las cosas optimizadas. También busco particionar tablas grandes, etc. – JMC

Respuesta

22

Intente comenzar con el asistente de Percona y compare sus recomendaciones con sus configuraciones actuales, una por una. No se preocupe, no hay tantas configuraciones aplicables como podría pensar.

https://tools.percona.com/wizard

Todo apunta a key_buffer_size primero que ha abordado. Con una memoria de 96GB, desconfiaría de cualquier pequeño valor predeterminado (¡que probablemente sea solo 96M!).

+0

Gracias KCD! Fui allí y probaré su configuración recomendada. Eso fue muy apreciado! – Skittles

+0

No hay problema. ¿Alguno de esos resultados varía mucho de lo que tenías? – KCD

+0

Sí ... bastante cambios. Simplemente reinicié el servidor usándolos.Tendremos que esperar para ver qué produce un día de producción completo mañana. Lleno de crones y representantes de servicio al cliente usando el sistema. – Skittles

Cuestiones relacionadas