キャッシュをクリアする方法

キャッシュ・メモリをクリアする方法
kernel 2.6.16 以降で使用出来る
 sudo sysctl -w vm.drop_caches=[1-3]

bash alias に設定しておくと便利
   alias cache2="sync; sudo sysctl -w vm.drop_caches=2; vmstat"
   alias cache3="sync; sudo sysctl -w vm.drop_caches=3; vmstat"
  sysctl コマンドを使用するが、設定はコマンドを実行した時点で機能するだけで、
  必要な場合には再度コマンドを実行する。

参考)
 Linux kernelドキュメント
 linux.x.x.x/Documentation/sysctl/vm.txt
    
 drop_caches
    Writing to this will cause the kernel to drop clean caches, dentries and
    inodes from memory, causing that memory to become free.
    To free pagecache:
	    echo 1 > /proc/sys/vm/drop_caches
    To free dentries and inodes:
	    echo 2 > /proc/sys/vm/drop_caches
    To free pagecache, dentries and inodes:
	    echo 3 > /proc/sys/vm/drop_caches
    As this is a non-destructive operation and dirty objects are not freeable,
    the user should run `sync' first.
Squid proxy のキャッシュの削除
ネットワーク上のデータを更新してもSquid proxy のキャッシュが古いデータを使用する場合がある

指定したファイルだけキャッシュから削除
 sudo squidclient -h 192.168.2.4 -p 3128 -r http://www.king.zaq.jp/nakano/js/main.css
 sudo squidclient -h 192.168.2.4 -p 3128 -r http://www.king.zaq.jp/nakano/projects/projects.json

Squid 全てのキャッシュを削除
 bash alias に設定しておくと便利
 function squidcleand() {
    dtime=`date +%Y_%m%d`
    sudo systemctl stop squid.service
    sudo rm -rf /opt/squid3/var/cache/*
    sudo rm -f /opt/squid3/var/run/squid.pid
    sudo mv /opt/squid3/var/logs/cache.log /opt/squid3/var/logs/cache_${dtime}.log 
    sudo mv /opt/squid3/var/logs/access.log /opt/squid3/var/logs/access_${dtime}.log 
    sudo /opt/squid3/sbin/squid -z 
    sudo systemctl start squid.service
  }
 alias squidclean=squidcleand

to Top
ホームページ へ

Last modified: 2014-04-24; First lease: 2012-08-28