キャッシュ忘るべからず
ひとくちにキャッシュと言ってもいろいろありますが、自分の場合はSmartyのキャッシュとPear_Services_Amazonのキャッシュをよく使っています。
そしてある日、気がついたらこれら2つのキャッシュがとんでもない容量になっていることに気がつきました。正確な数字を取る(というか取れなかった)前に消してしまったんですが、両方あわせて10GBくらいになってたと思います。
キャッシュファイルの格納ディレクトリに入ってlsを実行しても、15分以上待っても反応がなかったです。Linuxでは1ディレクトリ内のファイル数は1万くらいが限度らしいですが、今回はそれを軽く超えてたような気がします。
「rm -rf」でディレクトリごと削除したんですが、削除が終わるまでに20分近くかかってましたし。
たぶん原因はgooglebot(などのクローラー)によるアクセスです。
AmazonなどのWebサービスを使うと、簡単に数万ページのサイトができてしまいます。自分もそういうサイトをいくつか持っています。
それらのサイトをgooglebotがクロールするたびにキャッシュファイルがどんどん増え続け、、、今回のようなことになったのだと思われます。
というわけで、Pear_Services_Amazonはキャッシュを使うのをやめました。SmartyのほうはDBにキャッシュを入れているので、一日一回cronでデータをクリアするようにしました。
その後はディスク容量が増えることもなく、平和な日々が続いています。
キャッシュを導入すればリソース消費量が減ってレスポンスが早くなって、クライアントもサーバーもWinWinだ!みたいな感覚だったんですが、こんな落とし穴があるとは思ってもみなかったです。まあ、いい経験になりました。