Высокая загрузка ЦП на узлах MariaDB Galera

Я установил 3 кластера mariaDB, используя Galera для своих веб-сервисов, которые балансируют нагрузку с помощью haproxy.

Кластер работает отлично и синхронизируется друг с другом, но когда количество посетителей моего веб-сайта достигает более 3000 пользователей, загрузка ЦП для каждого узла становится слишком высокой.

top - 09:19:03 up 17:36,  1 user,  load average: 3.58, 3.82, 3.85
Tasks: 169 total,   1 running, 168 sleeping,   0 stopped,   0 zombie
%Cpu(s): 17.8 us,  3.5 sy,  0.0 ni, 77.5 id,  0.3 wa,  0.0 hi,  0.5 si,  0.6 st
KiB Mem : 12300340 total,  9661112 free,   551008 used,  2088220 buff/cache
KiB Swap:   524284 total,   524284 free,        0 used. 11554364 avail Mem 

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND                                                                                                                
 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  

Все 3 узла имеют одинаковую спецификацию:

192GB DISK
6 CPU Cores
12 Gig RAM

Какую настройку мне нужно реализовать, чтобы более эффективно обрабатывать этот запрос? Запрос на выбор обращается к паре миллиардов строк в моей таблице базы данных, которые запрошены более чем 2000 одновременно. Каждый результат запроса уникален.

2
задан 19 December 2016 в 11:25
1 ответ

У меня такие же проблемы.

  1. Проверка на «медленные запросы». Это приоритет 1. Не думайте, что их нет, всегда есть что найти.

  2. использовать SSD-диски

  3. Вот мои настройки (Самое важное однажды)

[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
0
ответ дан 19 November 2021 в 10:42

Теги

Похожие вопросы