作者:听松一隅
SQUID是个很不错CACHE服务器,各大门户网站都在用。过去二天也做了些
SQUID优化,把经验贴上来。
几个重要参数:
* maximum_object_size 是 能cache最大的文件大小。对应wmv,rm文件,建议设置为32768 kB
* maximum_object_size_in_memory 是在内存中cache的最大文件大小。
* cache_mem 是
SQUID可用到的最大内存。经实践,4G内存的服务器用2G;超过2G导致
SQUID运行不稳
隐藏正文 «
首先要分析
SQUID所cache内容:
运行 squidclient -p 80 cache_object://localhost/info 能看到如下内容:
Storage Swap size: 7549104 KB
Storage Mem size: 418804 KB
Mean Object Size: 160.46 KB
Mean Object Size是平均内容大小,一般要把maximum_object_size_in_memory设置成离它最近的128的倍数。在这个例子中maximum_object_size_in_memory 的值应该是256kB。
cache_mem 一般设置成服务器内存的一半或更多,只要运行过程中LINUX没有使用SWAP就可以。
再就是按业务分
SQUID。
比如某个论坛,用户能上载图片和视频;当然我们要把上载的图片、视频放在单独的域名上,比如img.example.com, video.example.com;这两个域名只提供静态文件服务。
根据统计,图片的平均大小在100KB,视频的平均大小在4M,差别是很大,应该建两个squid分别作图片和视频的CACHE。图片
SQUID的 maximum_object_size_in_memory 设置为256KB,视频的
SQUID的maximum_object_size_in_memory设置为8196KB。
实际应用中,原来把图片和视频混在一起的CACHE HIT RATE只有60%,CPU占用率经常在50%以上。分开后图片的CACHE HIT RATE达到95%,CPU占用率降到15%;视频的CACHE HIT RATE到80%了,取得了很好的效果
附上非常有用的squid命令:
list of useful squidclient commands
* get squid run time info: squidclient -p 80 mgr:info
* update specific url squid cache: squidclient -p 80 -m PURGE
squidclient -p 80
* get squid memory detail info: squidclient -p 80 mgr:mem
* get squid cached objects list: squidclient -p 80 mgr
bjects. use it carefully, it may crash you squid
* get squid diskd stats: squidclient -p 80 mgr:diskd