Pregunta

Instalar un servidor MySQL es bastante fácil. Sin embargo, después de instalar, configurar el servidor es una tarea importante para un DBA.

Tener 2 GB de RAM y 250 GB de espacio en disco, ¿cómo debo ajustar el servidor MySQL para que funcione bien?

También debe haber una configuración adecuada del motor innoDB.

¿Fue útil?

Solución

Estas son algunas de mis recomendaciones para innodb. En mi experiencia, el tamaño del grupo de búfer es el más importante porque cuantos más datos pueda tener en caché, menos tiempo pasará su sistema utilizando iOS de disco.

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.htmlEste es el grupo de búfer, donde se almacenan en caché los datos y el índice.

innodb_buffer_pool_size=(In Mb, 80% of available RAM), para 2GB, pondría 1536.

Monitoree su sistema con cuidado y prepárese para reducir esta variable si comienza a ver el intercambio.

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_sizeAquí es donde se almacenan metadatos. Si tuviera muchas tablas, sería útil aumentar esto.

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_data_file_pathAquí puede definir la ubicación del archivo IBData. Si puede colocar el archivo IBData en un disco separado que use un controlador separado, reducirá la contención. Tenga cuidado con esta opción. Asegúrese de leer en esta variable antes de usarla. Si su archivo IBData necesita más de 29 g, MySQL detendrá lo que sea que esté haciendo y esperará a que agregue espacio.

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

Esto administra en qué incrementos aumenta el archivo IBData. Entonces, si coloca un número realmente pequeño como 10 MB, eso significaría que Innodb pasaría mucho tiempo aumentando su archivo IBData si tuviera muchas inserciones.

innodb_autoextend_increment = 128M

Dónde poner los registros de transacción. Si puede colocar los registros de transacción en un disco diferente con un controlador separado, esto también reducirá la contención

innodb_log_group_home_dir = /tlog/

¿Cuál es el tamaño de los archivos de registro?

innodb_log_file_size = 500M

El 25% del tamaño del grupo de búfer permite que se ejecuten grandes transacciones sin la necesidad de escribir en el disco

innodb_log_buffer_size = 384M

También defino a dónde debe ir el directorio TEMP. Define dónde MySQL crea archivos temporales. Otra forma más de reducir la contención.

Por lo general, dejo suficiente espacio para permitir la reintegración de la tabla más grande del servidor.

tmpdir=/opt/tmp/

Y un registro de errores es útil en caso de que algo salga mal y necesite problemas de disparo.

log-error=/var/log/mysql.err

Además, si tiene más de 4 CPU, estas variables se pueden aumentar innodb_thread_concurrency = 8 innodb_file_io_threads = 4

Esto no tiene nada que ver con Innodb. Hay otras variables con las que puedes jugar que no tienen nada que ver con Innodb. Los agregué en la parte inferior, pero fueron tomados directamente de un servidor que uso para probar. Evite simplemente copiarlos y pegarlos. Leer la documentación de MySQL basada en la versión que usa es la mejor manera de tomar las decisiones correctas.

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
Licenciado bajo: CC-BY-SA con atribución
No afiliado a dba.stackexchange
scroll top