squid纯内存缓存

转载 2007年10月06日 00:14:00
原贴:http://blog.scaner.i.thu.cn/index.php/2006/11/20/squid-pure-memory-cache/

squid纯内存缓存 November 20, 2006

Posted by scaner in : Linux, Web , trackback

看见网上不少介绍squid的使用经验,说可以用ramdisk/tmpfs内存文件系统来加速squid. 个人认为完全没有必要,直接简单配置一下,就可以让Squid直接充分利用大内存:
maximum_object_size 32768 KB
cache_mem 1512 MB # Cache使用的最大内存
maximum_object_size_in_memory 128 KB # Cache在memory中最大Object的大小
memory_pools_limit 150 MB # 小对象内存池的大小
cache_dir null /tmp # 使用null disk

一些需要注意的事项: squid在编译的时候,要支持nullfs. maximum_object_size_in_memory应该尽量大于最大的object的尺寸,但是也不要太大,否则会影响内存分配的效率.

考虑一下实际应用的情况: 平均页面对象都不是很大,对象个数也不是很多,同时又有充足的内存余量,内容跟新还算频繁,这个时候,1.5G和20G或者40G的cache的请求命中 率其实相差非常细微,不过是99%和99.9%的区别,这个时候,完全有理由,抛下缓慢的disk cache,直接使用memory cache,这样不但能有效降低系统load,还能使squid自身更加轻快便捷.

Comments»

1. Frank Liu - January 10, 2007

非常好

2. slls - January 16, 2007

受教!
但不知cache_mem和memory_pools_limit的大小是何关系。请指教!
谢谢!

3. scaner - January 20, 2007

我 以前对memory_pool_limit理解也有错误, memory_pool_limit并不是小对象池的大小,相当于malloc的cache,squid并不直接对释放的对象调用free操作,而是等到 这个大小超过到这个大小超过memory_pool_limit才会真正释放. 感觉比较合适的大小是cache_mem + memory_pool_limit < 实际内存量, memory_pool_limit在150M左右就差不多了.当然还有为系统别的程序留一点余量。比如说如果是2G内存我的cache_mem是 1648M,memory_pool_limit是120M

4. charles - March 10, 2007

不知道你有没有留意到,如果用 null 方式的存储,全部放内存后,SQUID 的 response time 会变成非常高。

在我的应用,是 2ms 升到 30ms,这有可能是因为 SQUID 主进程不单止要接受请求,还要去从存储(null 的方式是存在内存)里面查找相应的数据,再返回。

而用 aufs 或 diskd 方式,squid 可以马上响应下一个请求,而将查找的工作交给 diskd 进程去处理。

5. scaner - March 13, 2007

真 还没注意过这个现象。30ms这个好像有点夸张啊,我现在一个主squid的峰值请求处理数能到1200hits/s了。对象信息都是保存在内存中的,直 接内存处理,再怎么也要比aufs/diskd再倒一次手要快很多吧,我的意思是说,有submit任务到aufs/diskd的功夫,内存查找早就搞定 了。

6. charles - March 19, 2007

你可能架一个 MRTG 来查看一下就知道了。只要压力很大,response 的值就会非常高。

在我的应用中,也是将数据保存到内存里面的,使用 diskd 直接读写 /dev/shm 等。

7. scaner - March 19, 2007

赫赫,你看得是那一个图阿?

client_http.requests = 1271.172566/sec
client_http.hits = 1209.615937/sec
client_http.all_median_svc_time = 0.000000 seconds
client_http.miss_median_svc_time = 0.000911 seconds
client_http.nm_median_svc_time = 0.000000 seconds
client_http.nh_median_svc_time = 0.001789 seconds
client_http.hit_median_svc_time = 0.000000 seconds

8. charles - March 31, 2007

你先确定一下,是不是用了 epoll ?

如果是用了 epoll,我觉得有这样的响应时间,我觉得正常。在不支持 epoll 的环境下,squid 的响应时间会慢,而且 CPU 占用较高。

另外,我现在在关注这个:http://varnish.projects.linpro.no

9. scaner - April 3, 2007

用squid就是因为epoll阿.没有epoll连接数一多CPU就跑上去了.varnish这个东西看着不错啊,不过看了上面一个评测的链接,lighttpd居然是吞吐量最强的,寒一个.还是祈求上天Light 1.5赶快release吧.

 

squid配置4-缓存设置

#############缓存设置####################cache_mem 1024 MB#设置squid可以使用的内存大小cache_swap_low 90#缓存内部对象的替换的衡...

架设Squid代理作为WEB缓存加速

在局域网的路由服务器中假设Squid代理来统一管理并加速内网机器对外部网络的访问速度。...
  • tzdwsy
  • tzdwsy
  • 2016年02月04日 16:12
  • 2227

编程方式刷新Squid缓存服务器的五种方法

网站进行内容更新是常有的事情,当被缓存的资源更新时,前端Squid 缓存服务器内容也必须要相应的更新,否则用户就可能会看到过期的数据。当没有程序支持时就需要每次登录到服务器上执行刷新操作,在服务器数量...

squid缓存服务器安装和使用

1.首先在http://www.squid-cache.org/Versions/下载源码,我下载的版本是3.5。环境是ubuntu。 2.解压源码,然后cd到该文件夹下,执行编译三部曲。具体可参见...

squid 缓存规则验证

wsCache的缓存规则验证 1. 测试环境      注意事项:       (1)服务器端得添加防火墙规则或者直接关闭,测试的话建议直接关闭!      (2)保持源站,缓存服务器,客...

Squid缓存命中率调整惨痛教训

原贴:http://lwfs.net/2006/12/07/113/Squid缓存命中率调整惨痛教训 Pu...

代理缓存服务-squid

一 Squid简介    代理缓存服务器:接收到用户请求后,自动下载指定资源并存储到本地服务器,以后用户请求相同资源时,直接把存储在本地服务器的资源直接传给用户。    Squid服务程序支持HTTP...

squid存储机制

转载至:http://blog.chinaunix.net/uid-23242010-id-2973123.html  1. ufs, aufs, diskd文件系统         ...
  • aly1989
  • aly1989
  • 2016年07月03日 23:31
  • 408

squid 缓存与不缓存的流程分析

以下仅为个人观点,有误勿喷,多指正。人的一项基本功能就是认识错误。你不会变得更好,你只是尽量减少犯错。         一、  下图为squid处理request过程中,对请求进行hit or m...

对Squid使用的一些总结

对Squid使用的几点总结 1.cache_dir 在Linux环境下用aufs类型的cache_dir比较稳定,速度也比较快。cache_dir所在文件系统如果用noatime选项来mo...
  • tao_627
  • tao_627
  • 2013年12月17日 18:11
  • 1407
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:squid纯内存缓存
举报原因:
原因补充:

(最多只允许输入30个字)