Mariadbが時々落ちるようになった

【PR】
※IT系の記事は当方環境での実施内容となるため実施する場合は自己責任でお願いいたします。

MariaDBが落ちる

夜、明け方と続けてmariadbが落ちたので調査
以下のようなメッセージが/var/log/messagsesに出ていてメモリ不足でOOMに殺された感じ?

OOM killed process xxxxx (mariadbd) total-vm:xxxxxxxkB, anon-rss:xxxxxxkB, file-rss:xxxxkB
OOM killed process xxxxx (httpd) total-vm:xxxxxxkB, anon-rss:xxxxxxkB, file-rss:xxxxxkB
[ERROR] InnoDB: Cannot allocate memory for the buffer pool

MariaDBのパラメータを調整

安いプランのVPSなのでサーバのメモリ自体がひっ迫しているのかもだが、
取り合えず、MariaDBの負荷を下げるためにパラメータ「innodb_buffer_pool_size」を弄ってしばらく様子を見ることにする。
※借りているVPSだがサーバのメモリは2Gでswapは「free -m」で見ても0なのでないっぽい。

現在の起動時のinnodb_buffer_pool_sizeの値は

InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728

で128Mっぽいので、実メモリの50%くらいは良さそうとの情報もあり、512Mに上げてみる

以下を参考に
https://atmarkit.itmedia.co.jp/ait/articles/1602/25/news017_2.html

/etc/my.cnf.d/server.cnf
⇒[mysqld]セクションを以下のように修正。

[mysqld]
innodb_buffer_pool_size = 512M
query_cache_size = 64M

MaridaDBを再起動。

systemctl restart mariadb

起動時に

InnoDB: Initializing buffer pool, total size = 536870912, chunk size = 134217728

と出たので繁栄されているっぽい。

SQLで実際に設定が反映されているか確認

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'innodb_buffer_pool_%';
+-------------------------------------+----------------+
| Variable_name | Value |
+-------------------------------------+----------------+
| innodb_buffer_pool_chunk_size | 134217728 |
| innodb_buffer_pool_dump_at_shutdown | ON |
| innodb_buffer_pool_dump_now | OFF |
| innodb_buffer_pool_dump_pct | 25 |
| innodb_buffer_pool_filename | ib_buffer_pool |
| innodb_buffer_pool_instances | 1 |
| innodb_buffer_pool_load_abort | OFF |
| innodb_buffer_pool_load_at_startup | ON |
| innodb_buffer_pool_load_now | OFF |
| innodb_buffer_pool_size | 536870912 |
+-------------------------------------+----------------+
MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'query_cache_%';
+------------------------------+----------+
| Variable_name | Value |
+------------------------------+----------+
| query_cache_limit | 1048576 |
| query_cache_min_res_unit | 4096 |
| query_cache_size | 67108864 |
| query_cache_strip_comments | OFF |
| query_cache_type | ON |
| query_cache_wlock_invalidate | OFF |
+------------------------------+----------+

ちなみに変更対象としてちらちら見かけた
innodb_log_file_size
については

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE 'innodb_log_file_%';
+---------------------------+-----------+
| Variable_name             | Value     |
+---------------------------+-----------+
| innodb_log_file_size      | 100663296 |
| innodb_log_files_in_group | 1         |
+---------------------------+-----------+

100,663,296.0 Bytes (B) = 96.0 Megabytes (MB)

だったので、少ないという訳ではないのかなと今回変更していない。

Tips

Posted by admin