阅读320 返回首页    go 阿里云 go 技术社区[云栖]


squid大压力时打开文件数的调整

当squid压力大时出了问题.后来发现原因是linux用户默认打开的最大的文件描述符为1024,访问量大的话就不够用,squid的性能骤降,今天是碰到第一回了,检查了一个下午.

解决办法如下

因为squid 2.6的版本的话编译时默认参数为max_filedesc 16384

但由于linux的默认不一样.linux只有1024,所以我们还要改一下

linux本身对打开文件数的控制。

1.#ulimit -Hn 63355

然后写进/etc/rc.local吧.然后启动squid就可以了.

查看squid具体用了多少文件描述符的方法

1.#squidclient -p 80 -U manager -W squidstats mgr:info

输出结果中:

File descriptor usage for squid:

Maximum number of file descriptors:   16384

Largest file desc currently in use:    169

Number of file desc currently in use:  132

Files queued for open:                   0

Available number of file descriptors: 16252

Reserved number of file descriptors:   100

Store Disk files open:                  39

IO loop method:                     epoll

表示最大的文件描述符为16384,当前使用的最大的文件描述符是169,总共在使用的有132个。

附:

ulimit命令的详细介绍

语  法:ulimit [-aHS][-c <core文件上限>][-d <数据节区大 小>][-f <文件大小>][-m <内存大小>][-n <文件数目>][-p <缓冲区大 小>][-s <堆叠大小>][-t <CPU时间>][-u <程序数目>][-v <虚拟内存大 小>]

补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。

参  数:

-a  显示目前资源限制的设定。

-c <core文件上限>  设定core文件的最大值,单位为区块。

-d <数据节区大小>  程序数据节区的最大值,单位为KB。

-f <文件大小>  shell所能建立的最大文件,单位为区块。

-H  设定资源的硬性限制,也就是管理员所设下的限制。

-m <内存大小>  指定可使用内存的上限,单位为KB。

-n <文件数目>  指定同一时间最多可开启的文件数。

-p <缓冲区大小>  指定管道缓冲区的大小,单位512字节。

-s <堆叠大小>  指定堆叠的上限,单位为KB。

-S  设定资源的弹性限制。

-t <CPU时间>  指定CPU使用时间的上限,单位为秒。

-u <程序数目>  用户最多可开启的程序数目。

-v <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

最后更新:2017-01-04 22:34:34

  上一篇:go 让CentOS 5.5支持ext4
  下一篇:go 网站压力测试工具webbench