conf t

インフラエンジニアのメモ

squidのキャッシュ鮮度とキャッシュ量を確認する

目的

squidのキャッシュヒット率向上のためrefresh_patternの改善を検討しています。
refresh_patternのminの時間を長く設定することを検討しているため、 設定変更後に鮮度の高いキャッシュの量が増える、ことを確認したい。

手順

ディスク領域のキャッシュの状態を確認してみました。
メモリ領域のキャッシュ鮮度と量の確認方法はまだ上手い方法がわかってません。
一応squidclient mgr:objectsで詳細情報やsquidclient mgr:infosquidclient 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がキャッシュがされていました。
時間がたてばたつほどキャッシュは新しいものに置き換わり減ると思いますので、この測定をするタイミングも考慮する必要があると思います。