🗑️

s3fsが重い。CUI経由のミスなら再マウント。

2024/12/16に公開

まえがき

これまで原因不明で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