Назад | Перейти на главную страницу

Высокая загрузка процессора mariadb даже после того, как mariadb выделил больше памяти?

Я использую сервер 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) и снова убедитесь, что все в порядке.