Pregunta

Estamos ejecutando una base de datos de tamaño moderado (350 GB) con algunas tablas bastante grandes (unas pocas cientos de filas, 50 GB) en un servidor razonablemente grande (2 x Xeons Xeons, RAM de 24 GB, Discos de 2.5 "10K en RAID10), y están obteniendo algunas inserciones bastante lentas (por ejemplo, un inserto simple de una sola fila que toma 90 segundos).

Nuestro innodb_buffer_pool_size se establece en 400 MB, que normalmente sería demasiado bajo para este tipo de configuración.Sin embargo, nuestro proveedor de alojamiento aconseja que esto es irrelevante cuando se ejecuta en ZFS.¿Está bien?

(Disculpas por el doble publicación en https://dba.stackexchange.com/questions/1975/is-tuning-the-innodb-buffer-pool-size-important-on-saris-zfs , pero no estoy seguro de cuán grande¡La audiencia está por allí!)

¿Fue útil?

Solución

Todavía establecería el InnoDB_Buffer_Pool_Size mucho más alto que 400m. ¿La razón? InnoDB Buffer Pool todavía almacenará en caché los datos y las páginas de índice que necesita para las tablas con acceso con frecuencia.

Ejecute esta consulta para obtener el SNODB_BUFFER_POOL_SIZE recomendado en MB:

Seleccionar concat (redondo (KBS / POWER (1024, IF (PW <0,0, SI (PW> 3,0, PW))) + 0.49999), Substr ('KMG', SI (PW <0, 0, IF (PW> 3,0, PW)) + 1,1)) recomendado_innodb_buffer_pool_size de (seleccione la suma (Data_Length + index_Length) KBS desde la información_schema.tables donde el motor= 'innodb') A, (Seleccione 2 PW) B;

Simplemente use el resultado de esta consulta o el 80% de la RAM instalada (en su caso 19660M), lo que sea más pequeño.

También establecería el InnoDB_LOG_FILE_SIZE al 25% del tamaño del búfer innodb. Desafortunadamente, el valor máximo de INNODB_LOG_FILE_SIZE es de 2047 m. (1M A falta de 2G) Por lo tanto, set Innodb_Log_File_Size a 2047M desde el 25% de Innodb_Buffer_Pool_Size de mi configuración recomendada es de 4915 m.

Otra recomendación es otra opción para Deshabilitar el cumplimiento del ácido . Use 0 o 2 para INNODB_FLUSH_LOG_AT_TRX_COMMIT (el valor predeterminado es 1 que admite el cumplimiento de ácido) Esto producirá una escritura innodb más rápida en el riesgo de perder hasta 1 segundo de transacciones en caso de un choque.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top