目的
squidのキャッシュヒット率向上のためrefresh_patternの改善を検討しています。
refresh_patternのminの時間を長く設定することを検討しているため、
設定変更後に鮮度の高いキャッシュの量が増える、ことを確認したい。
手順
ディスク領域のキャッシュの状態を確認してみました。
メモリ領域のキャッシュ鮮度と量の確認方法はまだ上手い方法がわかってません。
一応squidclient mgr:objects
で詳細情報やsquidclient mgr:info
やsquidclient mgr:client_list
で大まかな情報はわかります。
キャッシュ領域の情報をファイルに書き出します。
swap.stateファイルはキャッシュじゃないので除外します。
# find /var/spool/squid/ -name "swap.state" -prune -o -type f -size +0 -ls > temp.txt # head temp.txt 145628 4 -rw-r----- 1 squid squid 405 9月 17 19:19 /var/spool/squid/00/08/00000818 145613 4 -rw-r----- 1 squid squid 539 9月 17 19:16 /var/spool/squid/00/08/00000809 145677 4 -rw-r----- 1 squid squid 3024 9月 17 19:21 /var/spool/squid/00/08/0000084B 148645 28 -rw-r----- 1 squid squid 25581 9月 18 12:31 /var/spool/squid/00/08/0000086F 145706 4 -rw-r----- 1 squid squid 338 9月 17 19:22 /var/spool/squid/00/08/00000868 145612 4 -rw-r----- 1 squid squid 544 9月 17 19:16 /var/spool/squid/00/08/00000808 145674 4 -rw-r----- 1 squid squid 356 9月 17 19:21 /var/spool/squid/00/08/00000848 145761 4 -rw-r----- 1 squid squid 385 9月 17 19:24 /var/spool/squid/00/08/0000089F 145821 4 -rw-r----- 1 squid squid 626 9月 17 19:35 /var/spool/squid/00/08/000008DB 145819 4 -rw-r----- 1 squid squid 630 9月 17 19:35 /var/spool/squid/00/08/000008D9
ファイル更新日時のリストを作成します。
今回は1時間ごとに集計するので、時までのリストを作成しました。
# awk '{print $8,$9,$10}' temp.txt | cut -c 1-9 |sort |uniq > list.txt # head list.txt 9月 17 16: 9月 17 17: 9月 17 18: 9月 17 19: 9月 17 20: 9月 17 21: 9月 17 22: 9月 17 23: 9月 18 00: 9月 18 01:
作成したリストを用いて、各時間ごとのキャッシュファイルサイズを集計していきます。
結果は以下の通りになりました。
# while read line;do echo -n "${line},";grep "$line" temp.txt | awk 'BEGIN{sum=0}{sum+=$7}END{print sum}';done < list.txt > result.txt # cat result.txt 9月 17 16:,70929 9月 17 17:,8687189 9月 17 18:,11523164 9月 17 19:,13167564 9月 17 20:,25306732 9月 17 21:,2893573 9月 17 22:,2102829 9月 17 23:,7841847 9月 18 00:,1729319 9月 18 01:,55953 9月 18 02:,177451 9月 18 12:,4677599
キャッシュ量が多かったのは9/17の20時で25MBがキャッシュがされていました。
時間がたてばたつほどキャッシュは新しいものに置き換わり減ると思いますので、この測定をするタイミングも考慮する必要があると思います。