2005年07月30日 存档

不爽

2005年07月30日,星期六

用了一年多,最顺手的罗技MX300坏了,单击会变双击。非常讨厌,老是点Table页的时候变成了双击关闭,点右上角大差的时候连续关闭2个程序……

苏州的服务器又坏了,而且那里晚上没有人值班,没办法重启,我@#$%&*!! 正所谓的便宜没好货了……

资源搜索的程序改进了,可是高峰时期负载爆高,成了超载专业户。下个星期至少要多增加一台服务器用来搜索。

为了找A1Monitor的破解,逛了不少乱七八糟的下载站。后来系统出现两个未知进程占了100%的CPU,疑似中了病毒。秦钰苏给我推荐装卡巴斯基杀毒,装好后发现需要key文件才能使用。再次上Google找破解,鬼使神差点到了购买正版key的页面,50元2年,天意!付费!查毒!一无所获……

下个礼拜,又有无数新问题要解决了。

Linux下解决squid的filedescriptors问题

2005年07月30日,星期六

VeryCD已经多处用到了squid作为反向代理,但是使用中发现squid频繁报错

CODE
WARNING! Your cache is running out of filedescriptors


起初以为是cache文件的设置问题,尝试了多种解决方案,增大cache容量,清空cache目录,都没有解决此问题。
多方求助+STFW后发现,filedescriptors即为文件描述符。

QUOTE
文件描述符是一个简单的整数,用以标明每一个被进程所打开的文件和socket。第一个打开的文件是0,第二个是1,依此类推。Unix 操作系统通常给每个进程能打开的文件数量强加一个限制。更甚的是,unix 通常有一个系统级的限制。

因为squid 的工作方式,文件描述符的限制可能会极大的影响性能。当squid 用完所有的文件描述符后,它不能接收用户新的连接。也就是说,用完文件描述符导致拒绝服务。直到一部分当前请求完成,相应的文件和socket 被关闭,squid 不能接收新请求。当squid发现文件描述符短缺时,它会发布警告。

在运行./configure 之前,检查你的系统的文件描述符限制是否合适,能给你避免一些麻烦。大多数情况下,1024 个文件描述符足够了。非常忙的cache可能需要4096或更多。在配置文件描述符限制时,我推荐设置系统级限制的数量为每个进程限制的2 倍。


在我们的Linux下运行

CODE
# ulimit -n
1024


很明显1024个file descriptors无法满足VeryCD的访问需求。
重新设置

CODE
# ulimit -HSn 65536
# ulimit -n
65536


然后重新编译安装squid,问题解决。

注:
1. 需要将ulimit -HSn 65536设置在/etc/rc.d/rc.local中,防止重启后失效
2. 我在网上找到的方法,说是还需要重新编译内linux核,但实际尝试后发现不需要
3. 参考url: http://bbs.chinaunix.net/forum/viewtopic.php?t=562142 http://www.infosecurity.org.cn/content/fir…ge_ip_squid.htm