【摘要】今天巡查squid日志发现有的”squid WARNING: Disk space over limit”日志,而且数量不少,于是抽空看了一下,结论尚不很明确,不过不影响服务,或许是squid的bug。
squid版本为2.7.STABLE9:
# squid -v Squid Cache: Version 2.7.STABLE9
日志情况:
cat /var/log/syslog Jun 2 02:13:16 squid.sudops.com squid[30909]: WARNING: Disk space over limit: 10486692 KB > 10485760 KB Jun 2 02:13:16 squid.sudops.com squid[30912]: WARNING: Disk space over limit: 10485948 KB > 10485760 KB Jun 2 02:13:34 squid.sudops.com squid[30912]: WARNING: Disk space over limit: 10486120 KB > 10485760 KB Jun 2 02:13:46 squid.sudops.com squid[30909]: WARNING: Disk space over limit: 10498784 KB > 10485760 KB
查看硬盘空间,总体没有问题,cache目录的情况:
du -sh /data/squid/cache/ 11G /data/squid/cache/
10485760K正好是我配置的10G缓存容量
# python Python 2.6.6 (r266:84292, Aug 12 2014, 07:57:07) [GCC 4.4.5] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> 10485760 / 1024 / 1024 10
squid 相关部分配置:
cat /etc/squid.conf cache_mem 8000 MB coredump_dir /data/squid/dump maximum_object_size_in_memory 2048 KB cache_dir ufs /data/squid/cache 10240 16 256
网上查了一下,有说是因为swap.state不工作造成的,见如下:
http://www.squid-cache.org/mail-archive/squid-users/200306/0334.html
不过我经过检查后发现swap.state工作正常,swap.state文件大小在不断增长中。
-rw-r----- 1 proxy proxy 456589368 Jun 2 02:23 swap.state
个人感觉应该是因为squid缓存的数据已经到达了配置的磁盘缓存上限(这里配置的10G),然后squid会用新进来的数据剔除老的数据?
实际情况是服务器实际运行没有发现任何问题,而且这组squid集群已经运行了几个月了,目前看还是比较稳定,唯一发现的squid的一个bug就是swap.state文件会超过配置的内存容量,比如配置了8G的内存缓存,实际会超过30G,这样会造成硬盘空间报警,需要定期重启squid来释放。