linux默认文件描述符只有1024个,如果安装前不修改将可能会引起因文件描述符用完而拒绝服务。

修改方法:
[root@mysql-back etc]# vi /usr/include/bits/typesizes.h
[root@mysql-back etc]# vi /usr/include/linux/posix_types.h
用vi打开上面的文件查找 #define __FD_SETSIZE 1024
把1024改为65536,然后保存,这是Linux能接受的最大数值。
[root@mysql-back etc]# ulimit -HSn 65536
然后解压缩编译安装,squid 3.0 编译安装需要加入如下编译参数:--with-filedescriptors=65536
./configure过程会显示:
checking Default FD_SETSIZE value... 65536
checking Maximum number of filedescriptors we can open... 65536 (user-forced)
用下面两个命令启动squid并加入到/etc/rc.d/rc.local实现开机自启动。
ulimit -HSn 65536
/usr/local/squid/sbin/squid -s

注释:
ulimit 参数介绍:
-H 设置硬件资源限制.
-S 设置软件资源限制.
-a 显示当前所有的资源限制.
-c size:设置core文件的最大值.单位:blocks
-d size:设置数据段的最大值.单位:kbytes
-f size:设置创建文件的最大值.单位:blocks
-l size:设置在内存中锁定进程的最大值.单位:kbytes
-m size:设置可以使用的常驻内存的最大值.单位:kbytes
-n size:设置内核可以同时打开的文件描述符的最大值.单位:n
-p size:设置管道缓冲区的最大值.单位:kbytes
-s size:设置堆栈的最大值.单位:kbytes
-t size:设置CPU使用时间的最大上限.单位:seconds
-v size:设置虚拟内存的最大值.单位:kbytes

等squid安装完并启动后,我们看下文件描述符修改了没。192.168.1.250为squid服务器地址
[root@mysql-back ~]# /usr/local/squid/bin/squidclient  -h 192.168.1.250 mgr:info
下面是部分输出信息,显示修改成功了
File descriptor usage for squid:
        Maximum number of file descriptors:   65536
        Largest file desc currently in use:     14
        Number of file desc currently in use:    9
        Files queued for open:                   0
        Available number of file descriptors: 65527
        Reserved number of file descriptors:   100
        Store Disk files open:                   0