- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2023-05-15T00:40:54+00:00","default:bokupi","bokupi")
#author("2023-05-15T01:04:12+00:00","default:bokupi","bokupi")
* mysqldのOut of memory対策 [#h2486ebf]
AlmaLinux9に移行して、mysqlサーバのバージョンを上げて、myISAMからinnoDBに変えたところ、mysqldがOut of memoryでOOM Killerにkillされる現象が頻発してきました。前述の通り、色々変えているので、きっかけは不明のままです。本現象が発生した後は、サーバ自体が不安定となり、最終的には強制再起動となるので、mysqlではない別の部分に真因がある可能性も低くありません。
** 状況を確認 [#vdd449da]
** エラー状況を確認 [#vdd449da]
# less /var/log/message
May 15 05:36:11 omoshiro-joho kernel: Out of memory: Killed process 138863 (mysqld) total-vm:1789480kB, anon-rss:408140kB, file-rss:0kB, shmem-rss:0kB, UID:27 pgtables:1200kB oom_score_adj:0
** メモリ量を確認 [#e1b96170]
# free -m
total used free shared buff/cache available
Mem: 956 816 74 34 235 139
Swap: 0 0 0
** mysqlの情報を確認 [#e06a15c7]
mysql> show global variables where variable_name like 'innodb_page_size';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| innodb_page_size | 16384 |
+------------------+-------+
1 row in set (0.02 sec)
mysql -u root -p -e "SHOW ENGINE INNODB STATUS\G;" | less
----------------------
BUFFER POOL AND MEMORY
----------------------
Total large memory allocated 0
Dictionary memory allocated 500256
Buffer pool size 8192
Free buffers 7133
Database pages 1054
Buffer poolの容量は、8192 * 16KB = 128MiB となる。
** mysqlの設定変更 [#l7fd128f]
# emacs /etc/my.cnf.d/mysql-server.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
log-error=/var/log/mysql/mysqld.log
pid-file=/run/mysqld/mysqld.pid
innodb_buffer_pool_size=64M
システムのメモリに対して十分に小さいので、mysqlは直接関係ない気もしますが、この変更で様子見をします。
ただ、mysqlのメモリ消費量は圧倒的に多いので、やはり怪しいのは、mysqlかな。
$ top
top - 10:01:41 up 1:46, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 99 total, 1 running, 98 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.2 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.2 hi, 0.0 si, 0.0 st
MiB Mem : 956.4 total, 77.3 free, 799.0 used, 252.6 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 157.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2031 mysql 20 0 1711636 413464 16776 S 0.7 42.2 0:06.07 mysqld