私はawsサーバーr4.4xlargeを使用していて、データベースに60GB以上を割り当てましたが、それでもCPU使用率の問題に直面しています。
私は整数の主キーを持つおよそ18GBのサイズのそれぞれに約10個の大きなテーブルを持っています。すべてのテーブルは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
16コアの場合、200%は多くのCPUではありません。 200%は2つのフルコアです(r4.4xlargeにある16のうち)。使用中のメモリの量を考慮すると、MariaDBは確かにある程度の問題を抱えています。 16コアのうち2コアしか使用していないという事実は、CPUの使用率が低かったと思います。
htop
ユーティリティを使用して、mariaDBによるコアの使用状況をよく確認してください。
バグがありました https://jira.mariadb.org/browse/MDEV-15016 。そのバグは修正されました。最新バージョン(10.2.13、10.3.5)を使用し、すべてが正常であることを確認します。