Estou criando um novo VPS e queria experimentar o MariaDB. Estou usando o MariaDB 10.0.1, que pelo que entendi é o equivalente do MySQL 5.6.
A manipulação de threads de threads mudou drasticamente desde o MariaDB / MySQL 5.5? Isto é o que eu vejo no meu antigo servidor (CentOS 5.9, MySQL 5.5):
EnoCentos6.3comMariaDB10(MySQL5.6):
Aqui está uma lista de fatos:
No servidor A (CentOS 5.9, MySQL 5.5):
- Existem cerca de 15 bancos de dados conectados a vários sites e serviços
- O Plesk está instalado
- o MySQL é minimamente ajustado:
/etc/my.cnf
[mysqld]
local-infile=0
query_cache_type = 1
query_cache_size = 32M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Misc vars
key_buffer_size=32M
join_buffer_size=512K
tmp_table_size=32M
max_heap_table_size=32M
thread_cache_size=4
table_cache=300
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# InnoDB vars
innodb_buffer_pool_size=96M
innodb_additional_mem_pool_size=500K
innodb_log_buffer_size=500K
innodb_thread_concurrency=2
No servidor B (CentOS 6.3, MariaDB 10):
- Existem 3 bancos de dados, dos quais apenas um está atualmente "em uso" e está conectado a um site de baixo tráfego.
- Não há plesk.
- MariaDB minimamente ajustado:
/etc/my.cnf.d/server.cnf
[mysqld]
# threads
thread_concurrency=2
thread_cache_size=1
thread_handling=one-thread-per-connection
thread_pool_size=4
thread_pool_max_threads=4
thread_pool_idle_timeout=60
thread_stack=240K
# Limit Connections?
# max_connections=5
skip-external-locking
key_buffer_size=64M
max_allowed_packet=1M
table_open_cache=128
sort_buffer_size=1M
read_buffer_size=1M
read_rnd_buffer_size=4M
net_buffer_length=8K
myisam_sort_buffer_size=32M
query_cache_size=16M
# innodb settings
innodb_buffer_pool_size=32M
innodb_additional_mem_pool_size=2M
innodb_flush_log_at_trx_commit=1
innodb_lock_wait_timeout=30
innodb_thread_concurrency=0
Por que existem tantos tópicos? Eu tentei muitas configurações para tentar baixar o número de threads de processo para um nível razoável, mas não consigo afetá-lo. Está sempre usando 20 ou 21 threads. Consegui reduzir o uso de memória ajustando innodb_buffer_pool_size
, mas 32M não é um valor razoável com mais de 10 sites em execução, então estarei aumentando novamente para 96M ou 128M. Nesses valores o ram usado pelo mysql excede 750-850M de memória.
Se isso é apenas algo que eu tenho que conviver, tudo bem (eu tenho mais memória RAM no novo VPS, YOLO), mas estou curioso para saber porque há uma enorme discrepância no uso da memória.
Também vale a pena mencionar que se eu desligar o mysql em ambos os VPS, eu tenho quase uma quantidade igual de ram usada - ~ 300M para A, ~ 260M para B.