AWSのEBS容量がガリガリ減っていってた空き容量がなくなっていたのはMYSQLのlogファイルによるものだった…

EC2にWordPressをbitmaniで立てていたが、作業しているうちにいきなりどんどん容量を食っていく事態に… 最終的に容量がなくなったら、よく遭遇するlsコマンドの補間失敗

no space left on device

AWSのEC2につけていたEBS容量がduコマンドで明らかに見る見る減っていってた…

watch df

をすると2秒ごとにドライブの空き容量が確認できるが、更新するたびに数kバイト消えていく消えていく…

直前にプラグインがあったこともあって、焦って、AWSのEC2を拡張してしまった. (縮小するのめんどくさいので後悔している….)

で、どこがおかしいかを探そうとしたけど、なかなか見つからない.

sudo du -h –max-depth 2 .

を使いながらフォルダのサイズが大きい箇所を探し続ける…

はじめに見たのは/home/以下のappsの中.

画像データなどが置かれているようだったが、どうも特定の月だけ膨れていた. 確認すると何かのプラグインで様々なサイズを用意した形跡がある.
そのフォルダだけ6GBほど使っていたので、一応不要な画像は消しておいた.

しかしだ、まだまだ減り続ける.

なんなら、先ほど開けた6GBも減り続けている….

そしたら、原因は他にありそうだ.

とりあえずWordPressを全て停止

sudo /opt/bitnami/ctlscript.sh stop

止まった…. 減少が…. 大勝利だ.

そしたら原因はbitnamiのどこかにあるに違いない.

そんなこんなで/opt/bitnamiの中を探すこと数分.

見つけた… 21GB / 36GBを使っているやつを…

ってことで、犯人は21GBのmysql/dataだった…
その中で膨れ上がっているのは, binlogというやつ、こいつ1GBが20個ある. 21GBになっているのはこのせいですね. 完全に.

どうも以下のように同じ問題にひっかっかっている人がいるみたい.

https://community.bitnami.com/t/binlogs-piling-up-in-opt-bitnami-mysql-data/76927

とりあえず暫定対処が必要なので, bitlogを消して、上記のアドレスにもあるように,

/opt/bitnami/mysql/scripts/ctl.sh

を編集して、mysqlのコマンドのオプションの末尾に

“–disable-bin-log”

を追加.

sudo /opt/bitnami/ctlscript.sh restart mysql

で無事にmysqlが立ち上がる.

エラーログを確認すると

2020-10-17T00:41:50.803842Z 2459 [ERROR] [MY-000035] [Server] Disk is full writing ‘./binlog.000080’ (OS errno 28 – No space left on device). Waiting for someone to free space… Retry in 60 secs. Message reprinted in 600 secs.

というように出ていた. logファイルが書き出せないほど、mysqlがlogを吐き出していたみたいだ.

Appendix

途中でdisable-bin-logを加えたらmysqlが起動しなくなった.

解析は以下の手順を踏んだ.

/opt/bitnami/mysql/data/mysqld.log を確認

2020-10-17T01:36:08.772723Z 0 [ERROR] [MY-000067] [Server] unknown variable ‘defaults-file=/opt/bitnami/mysql/my.cnf’.

すると上記のような記載があった.

どうも引数の与える順番に決まりがあったみたいで、disable-bit-logを最後にしたら問題なくなった.

About the author

コメントを残す