squid纯内存缓存 November 20, 2006

转载 2007年09月21日 01:47: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 重定向器

重定向器          重定向器是squid的外部程序,它重写来自客户请求的URI。例如,尽管某个用户请求这个页面:http: //www.example.com/page1.html ,重定向器...
  • OneMemory
  • OneMemory
  • 2015年08月12日 11:35
  • 1894

linux下配置squid 服务器,最简单使用方式

linux下配置squid 1、什么是squid Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛...
  • unixtech
  • unixtech
  • 2016年11月16日 12:17
  • 5365

Squid配置之使用帐号密码验证

1. 安装squid 使用root用户进行操作。 先使用rpm检测是否已经安装了sqlid,如>> rpm –q squid 如未安装,可使用>> yum –install squid进行安装 ...
  • atco
  • atco
  • 2015年02月03日 13:56
  • 8849

使用squid搭建https透明代理

参考链接: http://wiki.squid-cache.org/Features/HTTPS https://www.tectut.com/2015/08/configure-squid-as-...
  • maoji
  • maoji
  • 2016年11月09日 05:06
  • 5268

squid配置解析-超时时间

因为缺省的配置文件有问题,所以我们必须首先修改该配置文件的有关内容,以便让squid跑起来 http://www.jb51.net/LINUXjishu/45296.html 4.1常用的...
  • zdf511391565
  • zdf511391565
  • 2015年05月13日 14:19
  • 995

使用squid实现普通的代理服务器

squid简介Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web缓存服务器。Squid有广泛的用途,从作为网页服务器的前置cache服务器缓存相...
  • guoxiaojie_415
  • guoxiaojie_415
  • 2016年03月18日 21:06
  • 5281

如何通过cachemgr.cgi以web方式查看squid的详细运行状态

1、需要安装apache: yum install httpd -y 2、squid正常启用后,查找自带的cachemgr.cgi脚本文件位置 find / -name cachemgr.cgi 找...
  • ownfire
  • ownfire
  • 2016年05月22日 12:41
  • 956

从概念到实例详细讲解squid配置

Squid将远程Internet对象保存为本地拷贝,当本地用户再次访问这些对象时,Squid可以直接快速地提供对这些对象的访问,而不必再次占用带宽访问远程服务器上的对象。 一. 代理服务简介 ...
  • cd520yy
  • cd520yy
  • 2013年06月10日 17:46
  • 2095

squid 代理服务器设置全攻略(多图)

上网了,不免会遭到种种攻击,有时还碰到一些网站无法访问,或者访问速度特别慢等现象,面对这些现象,代理服务器作为网络访问的纽带就应运而生了。通过使用代理服务器可以将我们的真实IP地址隐藏起来,而且在一定...
  • zm_bingxindan
  • zm_bingxindan
  • 2014年07月17日 21:43
  • 1085

squid缓存设置--控制页面的缓存时间

refresh_pattern的作用: 用于确定一个页面进入cache后,它在cache中停留的时间。 refresh_pattern 只对后端没设置Expires过期时间的页面起作用,比如论坛页...
  • joeyon
  • joeyon
  • 2015年06月04日 17:36
  • 505
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:squid纯内存缓存 November 20, 2006
举报原因:
原因补充:

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