Я использую сервер aws r4.4xlarge и выделил более 60 ГБ для базы данных, но все же я столкнулся с проблемой высокой загрузки процессора.
У меня есть около 10 больших таблиц приблизительного размера 18 ГБ каждая с целочисленным первичным ключом. все таблицы являются innodb, и я также оптимизировал innodb, добавив это в файл конфигурации по умолчанию.
innodb_buffer_pool_size=60G #(max 60 % of your Memory if and only if Memory >= 8G)
innodb_log_file_size=15G #(min 25% of innodb_buffer_pool_size)
innodb_flush_log_at_trx_commit=2
также при отладке в mysql я сомневаюсь в некоторых запросах, но все же хочу, чтобы mariadb правильно использовал экземпляр. большая часть процесса находится в состоянии сна, но некоторые находятся в состоянии запроса в течение довольно длительного периода.
+---------+-----------------+-----------------+------------------+---------+------+----------------+-----------------+----------+
| Id | User | Host | db | Command | Time | State | Info | Progress |
+---------+-----------------+-----------------+------------------+---------+------+----------------+-----------------+----------+
| 5415663 | root | localhost | test_db | Query | 0 | Sorting result | SELECT XXXXX | 0.000 |
Мне нужно предложение относительно того, нужно ли мне еще что-то оптимизировать, получить максимальную пользу от mariadb.
Tasks: 339 total, 1 running, 338 sleeping, 0 stopped, 0 zombie
%Cpu(s): 13.0 us, 0.1 sy, 0.0 ni, 86.8 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 12582731+total, 40068792 free, 72185768 used, 13572756 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 51496540 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
126064 mysql 20 0 65.336g 0.063t 8968 S 205.6 53.5 51004:26 mysqld
1346 rabbitmq 20 0 9804208 1.022g 4228 S 2.3 0.9 1336:27 beam.smp
1488 redis 20 0 604496 513216 2236 S 1.0 0.4 389:01.86 redis-server
7064 www-data 20 0 450464 38604 30744 S 0.3 0.0 0:00.93 php-fpm7.0
9226 www-data 20 0 383204 37932 29336 S 0.3 0.0 0:00.66 php-fpm7.0
9404 www-data 20 0 376000 36820 29016 S 0.3 0.0 0:00.57 php-fpm7.0
200% - это не так много ЦП, когда у вас 16 ядер. 200% - это два полных ядра (среди 16 у вас в r4.4xlarge). Учитывая объем используемой памяти, MariaDB определенно что-то замышляет. Тот факт, что вы используете только 2 ядра из 16, я бы сказал, что вы не используете ЦП.
Использовать htop
утилита, чтобы лучше увидеть, как mariaDB использует ядра.
Была ошибка https://jira.mariadb.org/browse/MDEV-15016 . Эта ошибка исправлена. Используйте последнюю версию (10.2.13, 10.3.5) и снова убедитесь, что все в порядке.