サーバのHDDが秒速で壊れる時の原因 特殊ケース

スポンサーリンク
Linux
スポンサーリンク

Linux+Nginx+MySQL+PHP環境です。

何度HDDを交換しても一ヶ月以内に壊れる!重そうなPHPスケジューリング処理にRAMディスク(参考:http://patio.work/archives/1421)を使っても状況が変わらない!といった現象が起こる事があります。
まず、iostatで確認するとnginxの異様な書き込み量が確認できます。
ファイルディスクリプタを調べてもソケットではなく、dstatで見ても大量のディスクアクセスが発生しているのが分かります。
その場合はinotifywaitでfastcgiキャッシュディレクトリを監視してみましょう。物凄い勢いで読み書きされていませんか?
fastcgiキャッシュをtmpfsにしたり、その場所のキャッシュ自体をオフにするように設定を記述するとディスクの読み書きが止まるかと思います。

裏で何が起こっているかというと、PHPなどでストリーミング再生を実現している場合など、設定を気をつけないとアクセスの度に大量の断片ファイルが全てnginxのキャッシュに送られている場合があります。
設定の問題でfastcgiキャッシュ領域がメモリ上にない場合は、常時ものすごい量のストリーミング断片データがHDDに読み書きされる事になりHDD寿命を圧倒的に縮めてくれているわけです。
どうやらデフォルトでfastcgiキャッシュはオンになっているらしいので、記述していない=キャッシュを使っていない事にならないのが落とし穴です。
解決のためにはキャッシュディレクトリをメモリ上に作成するか、fastcgiキャッシュを指定URLでオフにする等する必要があります。
通常はユーザ別のストリーミングの断片ファイルなどキャッシュする必要もないのでオフにした方が良いでしょう。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

コメント

タイトルとURLをコピーしました