06月 11th, 2007Linux下解决squid的filedescriptors问题
今日squid的日志文件经常报错:
WARNING! Your cache is running out of filedescriptors
查网上资料得知:filedescriptors为文件描述符
文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Unix 操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,unix 通常有一个系统级的限制。
因为squid 的工作方式,文件描述符的限制可能会极大的影响性能。当squid 用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述符导致拒绝服务。直到一部分当前请求完成,相应的文件和socket 被关闭,squid 不能接收新请求。当squid发现文件描述符短缺时,它会发布警告。
在运行./configure 之前,检查你的系统的文件描述符限制是否合适,能给你避免一些麻烦。大多数情况下,1024 个文件描述符足够了。非常忙的cache可能需要4096或更多。在配置文件描述符限制时,我推荐设置系统级限制的数量为每个进程限制的2 倍。
因为squid 的工作方式,文件描述符的限制可能会极大的影响性能。当squid 用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述符导致拒绝服务。直到一部分当前请求完成,相应的文件和socket 被关闭,squid 不能接收新请求。当squid发现文件描述符短缺时,它会发布警告。
在运行./configure 之前,检查你的系统的文件描述符限制是否合适,能给你避免一些麻烦。大多数情况下,1024 个文件描述符足够了。非常忙的cache可能需要4096或更多。在配置文件描述符限制时,我推荐设置系统级限制的数量为每个进程限制的2 倍。
检查设置:
# ulimit -n
1024
默认为1024个文件描述符
重新设置:
# ulimit -HSn 65536
显示:
# ulimit -n
65536
然后重新编译安装squid
最后,将ulimit -HSn 65536设置在/etc/rc.d/rc.local中,防止重启后失效
06月 11th, 2007 at 9:47 pm
在你的站上为什么不能开一个phpnuke的专题呀,介绍一下这方面的经验,目前国内懂这些程序的人都藏起来了呀
06月 12th, 2007 at 10:41 am
cnBeta 不是在phpnuke基础上改的,是自己写的代码
03月 6th, 2008 at 8:18 am
贵站也是自己写的?
03月 6th, 2008 at 1:21 pm
这个效果只是权宜之策,只有真正的修改Linux原核代码才能真正达到突破files open超过1024
10月 18th, 2008 at 12:58 am
看了感觉部错。写得有点水平。给你顶一个。
继续关注你的博客547
10月 20th, 2008 at 12:19 am
看了感觉不错。给你顶一个.
别忘了也来我的博客溜达下哦
继续溜达一下你的博客
11月 20th, 2008 at 10:10 am
bEANR说的那个Linux内核对于fd的限制,早在2.2版本内核就已经取消了