実行前に
find ./ -name ¥*.jpg -exec ls -l {} ¥;
で様子見。
# vmstat 1 5 procs memory swap io system cpu r b w swpd free buff cache si so bi bo in cs us sy id 0 0 0 3604 3580 23580 187696 0 1 0 1 1 1 0 0 1 0 0 0 3612 3580 23592 187636 0 8 148 96 1432 291 0 7 93 0 0 0 3612 3484 23624 187756 0 0 312 332 1376 321 0 10 90 0 0 0 3620 3456 23616 187772 0 8 164 80 1301 320 0 6 94 0 0 0 3620 3600 23636 187772 0 0 488 64 1340 318 0 8 91
ここではbi/boの部分を見ます。bi: Blocks received from a block device (blocks/s).
, bo: Blocks sent to a block device (blocks/s)。どのくらいが適正値かというのは予算によります。一番お金をかけた場合だとストレージのキャッシュが十分に積まれていて、どんなにディスクにアクセスしてもbi/boが0というパターンになります。(きちんとディスクに書き込みを完了する前にドライブが書き込み完了を返す)
# netstat -an | wc -l 3050
この数字がTCPコネクション数とほぼ同等です(厳密にはESTABLISHED,TIME_WAIT,FIN_WAIT等の総数。余計な部分は許容誤差ということで)。
# top 151 processes: 150 sleeping, 1 running, 0 zombie, 0 stopped CPU0 states: 0.4% user, 0.5% system, 0.0% nice, 98.1% idle CPU1 states: 0.1% user, 0.5% system, 0.0% nice, 98.4% idle Mem: 513596K av, 442136K used, 71460K free, 0K shrd, 77992K buff Swap: 1044184K av, 14120K used, 1030064K free 208420K cached
CPU0と1の2個があって、それぞれidleが98%以上なので問題ないですね。
# w
12:08pm up 171 days, 1:20, 1 user, load average: 1.22, 1.02, 1.97
ロードアベレージは処理を待っているプロセスの平均数
# top 151 processes: 150 sleeping, 1 running, 0 zombie, 0 stopped CPU0 states: 0.4% user, 0.5% system, 0.0% nice, 98.1% idle CPU1 states: 0.1% user, 0.5% system, 0.0% nice, 98.4% idle Mem: 513596K av, 442136K used, 71460K free, 0K shrd, 77992K buff Swap: 1044184K av, 14120K used, 1030064K free 208420K cached
512MBのメモリを搭載しているマシンで、442M程度のメモリを使用していて70M程度のメモリしか空きがない、と読み取れますが、それは厳密には間違いです。もっと見てみましょう。
# free total used free shared buffers cached Mem: 513596 443556 70040 0 78340 209196 -/+ buffers/cache: 156020 357576 Swap: 1044184 14120 1030064
Linuxの場合空いるメモリはすべてCacheにまわそうとします。それがtopに出てくる数字です。では空いているメモリでCacheで使われている分を減らした分はどのくらいかを調べるにはfreeコマンドでの実行結果の2行目を見ます。これを見ると357MBくらい空いているのがわかります。よってこのマシンはメモリに大分余裕があると見ることができます。
※参考http://nosa.cocolog-nifty.com/sanonosa/cat1060251/index.html
/usr/bin/find ./hoge -atime +1 -exec rm -f {} ; 2>&1
画像削除実行
$sys = @system("/usr/bin/find /home/billions/public_html/mobile/item/ -atime +90 -exec rm -f {} \; 2>&1");