記一次MySQL5初始化被kill的問題排查

2023-10-17 12:02:08

寫在前面

由於測試環境JED申請比較繁瑣,所以Eone提供了單機版Mysql供使用者使用,近期Eone搭建Mysql5的時候發現莫名被kill了,容器規格是4C8G,磁碟30G

這不科學,之前都是可以的,映象沒變,設定沒變,咋就不行了呢,一定不是我的問題,是機器的問題

問題排查

重現

通過多次搭建mysql5進行取樣,發現並不是穩定復現,有一些容器是可以正常啟動提供服務的,找到被mysql服務被kill的容器紀錄檔,發現是MySQL初始化被kill了,

/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/export/data/mysql/data --user=admin --initialize-insecure

mysql組態檔:

[client]
socket=/tmp/mysql.sock

[mysqld]
basedir=/usr/local/mysql
datadir=/export/data/mysql/data
port=3306
server_id=1
socket=/tmp/mysql.sock
log-error=/tmp/mysqld.err
pid-file=/tmp/mysqld.pid

skip-host-cache
skip-name-resolve
skip-grant-tables


問題排查

初始化為什麼被kill?

手動執行了下初始化的命令,發現直接被kill了

通過dmesg命令發現,貌似oom了

納尼?怎麼用了這麼多記憶體?容器都沒這麼大記憶體誒

通過排查,發現MySQL有一個8G的匿名記憶體,這是哪來的???

將容器規格調整為32G記憶體,再次嘗試,發現成功啟動了,但是記憶體佔用貌似不太正常

這不科學,正常的容器記憶體使用情況是這樣的