2 votes

Utilisation élevée du processeur sur les nœuds MariaDB Galera

J'ai configuré 3 clusters MariaDB en utilisant Galera pour mes services web qui sont équilibrés avec haproxy.

Les clusters fonctionnent très bien et se synchronisent entre eux mais lorsque le nombre de visiteurs sur mon site atteint plus de 3000 utilisateurs, le CPU de chaque nœud atteint des pics élevés.

top - 09:19:03 en marche depuis 17:36,  1 utilisateur,  charge moyenne : 3.58, 3.82, 3.85
Tâches: 169 au total,   1 en cours d'exécution, 168 en veille,   0 arrêtées,   0 zombie
%Cpu(s) : 17.8 en utilisation,  3.5 en système,  0.0 en ni, 77.5 en idle,  0.3 en attente,  0.0 en sortie d'inactivité,  0.5 en saisie,  0.6 en vol
KiB Mem : 12300340 au total,  9661112 libres,   551008 utilisés,  2088220 tampon/cache
KiB Swap:   524284 au total,   524284 libres,        0 utilisés. 11554364 Mémoire disponible 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMANDE                                                                                                                
 4906 mysql     20   0 1370720 556596 153360 S 130.3  4.5   1052:00 mysqld                                                                                                                 
 7037 root      20   0  144480   8572   7160 S   0.7  0.1   0:00.08 sshd                                                                                                                   
   34 root      20   0       0      0      0 S   0.3  0.0   0:04.96 ksoftirqd/5                                                                                                            
 2102 root       0 -20       0      0      0 S   0.3  0.0   0:04.95 kworker/4:1H                                                                                                           
 3651 root      20   0  246492  20868  20156 S   0.3  0.2   0:04.33 rsyslogd  

Tous les 3 nœuds ont la même spécification qui est :

Disque 192 Go
6 cœurs CPU
12 Go de RAM

Quelles modifications dois-je mettre en place maintenant pour gérer ces requêtes de manière plus efficace? Les requêtes de sélection accèdent à plusieurs milliards de lignes dans ma table de base de données demandée par plus de 2000 personnes en même temps. Chaque résultat de requête est unique.

0voto

user254047 Points 1

J'ai les mêmes problèmes.

  1. Vérifiez les "requêtes lentes". C'est la priorité 1. Ne pensez pas qu'il n'y en a pas, il y a toujours quelque chose à trouver.

  2. utilisez des disques SSD

  3. Voici mes paramètres (Les plus importants)

[galera]
innodb_autoinc_lock_mode=2
wsrep_provider_options=gcache.size=512M;gcache.recover=yes

wsrep_causal_reads=ON
wsrep_slave_threads=24
innodb_flush_log_at_trx_commit=2
innodb_doublewrite=1
query_cache_size=512M

[mysqld]
transaction-isolation = READ-COMMITTED
max_allowed_packet=200M
max_allowed_packet=200M
innodb_buffer_pool_size=1G
skip_name_resolve
table_open_cache=500

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X