Por favor, ajude com a configuração do servidor MariaDB. Vejo que o buffer pool tem apenas 38% de RAM e acho que precisa ser alterado. Quero migrar todas as tabelas Aria e MyISAM para o mecanismo InnoDB. Terei RAM suficiente e o servidor MariaDB funcionará corretamente e sem travamentos? Se eu aumentar o buffer pool para 10 GB, isso será suficiente?
BATER:
free -h
total used free shared buffers cached
Mem: 15G 15G 607M 4K 138M 7.5G
-/+ buffers/cache: 7.5G 8.2G
Swap: 1.0G 135M 888M
Configuração do InnoDB:
> SELECT VARIABLE_NAME, SESSION_VALUE, GLOBAL_VALUE FROM INFORMATION_SCHEMA.SYSTEM_VARIABLES WHERE VARIABLE_NAME IN ('innodb_buffer_pool_size','innodb_additional_mem_pool_size','innodb_log_buffer_size','tmp_table_size','max_connections','sort_buffer_size','read_buffer_size','join_buffer_size','binlog_cache_size');
+-------------------------+---------------+--------------+
| VARIABLE_NAME | SESSION_VALUE | GLOBAL_VALUE |
+-------------------------+---------------+--------------+
| BINLOG_CACHE_SIZE | NULL | 32768 |
| MAX_CONNECTIONS | NULL | 300 |
| JOIN_BUFFER_SIZE | 262144 | 262144 |
| SORT_BUFFER_SIZE | 2097152 | 2097152 |
| READ_BUFFER_SIZE | 131072 | 131072 |
| TMP_TABLE_SIZE | 16777216 | 16777216 |
| INNODB_LOG_BUFFER_SIZE | NULL | 16777216 |
| INNODB_BUFFER_POOL_SIZE | NULL | 6442450944 |
+-------------------------+---------------+--------------+
8 rows in set (0,16 sec)
Dados com índices:
+--------+---------+----------+----------+------------+
| ENGINE | Data GB | Index GB | Total GB | Num Tables |
+--------+---------+----------+----------+------------+
| NULL | NULL | NULL | NULL | 8 |
| Aria | 14.3 | 3.9 | 18.3 | 7 |
| InnoDB | 67.1 | 50.6 | 117.7 | 141 |
| MyISAM | 65.2 | 21.0 | 86.3 | 16 |
+--------+---------+----------+----------+------------+
4 rows in set (0,40 sec)
Quanto dos seus dados InnoDB/Aria/MyISAM são usados ativamente pelo MariaDB em consultas? O
show global status
abaixo irá mostrar a você.show global status like 'innodb_buffer_pool%'
, 100% de usoInnodb_buffer_pool_pages_data
realmente ok, veja innodb_buffer_pool_read_requests vs innodb_buffer_pool_reads - as leituras devem ser baixas (<1% deinnodb_buffer_pool_read_requests
) após um aquecimento e execução por um tempo.A subalocação do buffer pool innodb significará apenas que mais solicitações vão para o disco. A superalocação do buffer pool innodb resultará em OOM quando ele estiver cheio.
innodb_buffer_pool_size pode ser alterado em tempo de execução com
set global innodb_buffer_pool_size=value
(nota não pode ser usado10G
como valor com G como sufixo, mas você pode fazer isso10 * 1024 * 1024 * 1024
). Portanto, comece aos poucos, aumente até que as solicitações de leitura caiam para um valor pequeno e não se esqueça de colocar o valor final no arquivo de configuração para que uma reinicialização restaure esse valor na inicialização.