mysqltuner - optimizar mariadb
MySQL my.cnf recomendaciones de ajuste de rendimiento (2)
Intente comenzar con el asistente de Percona y compare sus recomendaciones con la configuración actual una por una. No se preocupe, no hay tantas configuraciones aplicables como pueda pensar.
https://tools.percona.com/wizard
Todo el mundo apunta a key_buffer_size
primero que ha abordado. Con la memoria de 96GB, desconfiaría de cualquier valor predeterminado pequeño (¡probablemente sea solo 96M!).
Tengo la esperanza de que alguien pueda ofrecer alguna ayuda con la optimización de un archivo my.cnf para un servidor de base de datos mysql de volumen extremadamente alto.
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 my.cnf sintonizado para brindar el mejor rendimiento posible para esta infraestructura.
Soy plenamente consciente de que los índices y las consultas optimizadas son un factor importante a este respecto, pero nos gustaría comenzar con un sistema que esté configurado correctamente y luego continuar con una revisión 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
Ya que todos sus datos son MyISAM, ejecute esta consulta y muestre el resultado
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 fueron 4G.
Probé esta herramienta y me dio buenos resultados.