查看进程允许打开的最大文件描述符

服务器默认的文件描述符是1024个(linux),查看方式是执行ulimit -n命令。

对于高负载高连接的服务器来说,1024远远不够,至于修改方式,这里就不在赘述了,随便上网一搜就大把大把的文章介绍。

蚊子这篇要说的是如何查看一个进程能打开的最大文件描述符。

不知到各位SA们有没有过这种困惑,系统的文件描述符,无论是软调整过了,还是修改配置文件硬调整过了,可对于应用程序来讲,是不是真正生效了呢?

这里还是有办法知道的,方法就是

cat /proc/PID/limists | grep “Max open files”

举例来说吧。

Continue reading “查看进程允许打开的最大文件描述符”

修改linux文件描述符[技术]

默认linux系统的文件描述符是1024,对于squid等一些服务来说,在大负载的情况下这点文件描述符是远远不够的,所以对于修改文件描述符来讲就变得很有必要了,在linux中有两种修改文件描述符的办法

一,通过ulimit命令修改

//显示当前文件描述符
ulimit -n

//修改当前用户环境下的文件描述符为65536
ulimit -HSn 65536

使用ulimit命令的缺点:

1,只能修改当前登录用户环境下的文件描述符,如果此用户来另外打开一个连接,此链接环境的文件描述符依然是没改前的
2,如果系统重启,以前修改都不再生效

二,通过修改limits.conf文件

编辑/etc/security/limits.conf 文件,在最后加入如下两行

*                               soft    nofile  65536
*                               hard    nofile  65536

保存退出,都不需要重启服务器,直接重新登陆用ulimit -n就能看到效果

这样无论使用哪个用户,无论是否重启都不会失效了。

squid2.7方便解决文件描述符大小[技术]

今天上squid官网,无意中发现squid2.7居然在5月31号发布了,出于对新产品的好奇吧,就看了一下 squid.conf中的配置,发现还真是多了不少东西,这其中我认为最有用,也是给squid安装带来方便的参数,max_filedescriptors,这个参数可以指定squid使用的文件描述符大小,但前提是不能超过编译是–with-maxfd这个参数设定的大小,自此,就再也不需要使用ulimit设置文件描述符了,当然squid2.7还增加了其他的一些特性,具体还等之后仔细研究