00時56分26秒 [Web関連]
私の契約しているレンタルサーバのディスク容量は、1GBです。Webを運用するには十分な容量です。…がー、なぜか820MBも既に占有されています…。(笑)
いったい、どんなファイルを置いてんだ!?
…と自分でも思うのですけど、心当たりがないんですよね。確かに、私のWebスペース上には、数千個のファイルがあります。でも、ソフトウェアのアーカイブを除けば、ほとんどがテキストファイルです。いくらなんでも、820MBもいかないと思うのですよね。
で、1つだけ心当たりがありまして。
とある自作CGIで生成しているコンテンツがあるのです。アクセスがあるたびに毎回動的に生成すると、サーバの負荷が高まってしまうので、最初に生成したときに生成内容をキャッシュしておき、一定期間内のリクエストには、キャッシュをそのまま返すような仕組みにしてあります。
すると、キャッシュデータがどんどんサーバ上に蓄積されていくのですよね。
だから、こいつが原因か?
…と思ったんです。
でも、FTPソフトで調べてみると、そんな大した分量は生成されていませんでした。
なので、原因はこいつではありません。
次に、ブログのDB(データベース)か?と考えました。
Movable TypeのDBには、Berkeley DBを使っています。こいつのファイルが、ブログ全体を再構築するたびに、どんどんでかくなっていくのですよね。(^_^;)
知らない間に、巨大になっちゃったのか!?
…と思ったんです。
がー。こちらも、確かに1ファイルとしてはでかいサイズ(30MBくらい)ですが、全部合わせても、820MBには到底達しません。
なので、原因はブログでもありません。
他に心当たりはないし、そもそもこんな方法ではいつまで経っても原因を特定できない!
…というわけで、なんかいい方法はないもんか~と思っていたら、てっどさんから便利なコマンドを教えて頂きました。それが...
このコマンドは、ディレクトリ内にあるファイルの容量を教えてくれます。
パラメータなしで実行すれば、カレントディレクトリ内にあるサブディレクトリも含めたすべてのディレクトリの占有容量をはき出してくれます。
「-s」パラメータを加えれば、カレントディレクトリだけの占有容量を教えてくれます。
「-s」の後にディレクトリ名を加えれば、そのディレクトリの占有容量を教えてくれます。
なんとも便利なコマンドですね!
というわけで実行。
まあ、ここに至るまでには多少の試行錯誤があったんですけど、省略。
原因はあっという間に分かりました。なかなか盲点でした。
最初、wwwディレクトリ(Web用データがあるディレクトリ)に対して、全サブディレクトリの占有容量を出してみました。でも、特に巨大なディレクトリはないんですよね。
で、よーく見てみると、そもそも「wwwディレクトリ」自体、240MBしか占有してません。
………じゃあ、残りの約600MBはどこへ…?
と考えると、www以外のディレクトリしかありません。
このレンタルサーバで、wwwディレクトリ以外にデータが増えるのは、MailBoxとlogしかありません。
メールは、ほとんどサーバに残してないので、原因はメールではありません。
というわけで、残ったのはlog。
なんと、サーバのアクセスログだけで、600MBもありました。(笑)
あとから解析できるように、生ログを12ヶ月分保存するように設定してたんですよ。
毎日、gzipで自動的に圧縮されるのですけど、圧縮しても、1日あたり平均1.6MBのログになるのですね…。展開したら、8MBくらいになりました…。
ログ解析結果を見ると、1日あたり、だいたい4万~5万ヒットくらいあるので、つまりアクセスログも4万~5万行になるわけで、まあ、そんだけあればファイルサイズもでかくなりそうですね…。
ちなみに、「ヒット(Hit)」というのは、リクエストされたファイルの数のことですから、閲覧されたページの数(PageView)とは違います。PageViewは、だいたい、1日1万5千ページくらいです。
というわけで、原因は、アクセスログ。
Web用のファイルが240MBしかないのに、アクセスログが600MBも保存されていたのですね…。なかなか盲点でした。^^;;;
まさか、こんなに巨大になるとは。
仕方がないので、アクセスログの保存期間は、「3ヶ月」に再設定しておきました。^^;
最低3ヶ月に1回は、生ログをダウンロードしなくっちゃー。
(まあ、生ログをダウンロードしなくても、Webサーバ標準の解析ツールは動いてるんですけどね。)
この日記へのコメントはお気軽に! コメント数:0件
コメント数: 0件