🗑️
s3fsが重い。CUI経由のミスなら再マウント。
まえがき
これまで原因不明でs3が重くなることがあって、それはapacheの再起動などで解消されたりした。これはおそらくweb側のプログラムで、s3に負荷がかかる処理が眠っていることになる。
そもそも
体感でも感じていたがAIさんも同じ回答をくれていて、s3のディレクトリ上に大量のファイルを設置してはならない。そうならないように階層分けの設計をしないといけない。まぁそれにも限界があるし、踏んでしまったトリガーはなんとかしなければならない
1. プロセス(コマンド)を確認
# ps aux | grep s3fs
OR
# top
おそらくCPUを喰いまくっているs3fsがあるはずだ。そして、そのコマンドを保管しておく(一応)。
s3fs バケット ディレクトリ オプション群
みたいな形式のコマンドが確認できるはずです。
2. 段階的に?アンマウントを試していく
なんか通常は、fusermountで解除するのがお腹にやさしいらしい。でも僕らにはダメな時だってある。
# fusermount -u /***/***
fusermount: failed to unmount /***/***: Device or resource busy
こうなるとおそらく以下のコマンドも無理
# umount /***/***
umount: /***/***: 対象は使用中です.
キルしかない。9もおそらく入れないと切れないだろう。ここで切れないことがあるかしらんけど、ゾンビプロセスになったらサーバ再起動になるだろう。
# kill -9 pid
切れたら、さっきのコマンドを実行してマウントしなおす
# s3fs バケット ディレクトリ オプション群
s3fs: unable to access MOUNTPOINT /***/***: Transport endpoint is not connected
ギャー。だろう。でもキルはお腹にやさしくないからそうなるみたい。実際キル後はCPUが下がるはず、そこで正常にアンマウントするの。
# umount -l /***/***
で、再マウントの「s3fs バケット ディレクトリ オプション群」をすればOK。
Discussion