红联Linux门户
Linux帮助

linux查看进程打开的文件句柄以及如何修改教程

发布时间:2016-12-12 10:08:30来源:linux网站作者:kandezuiyuan65
对于linux内的各个应用程序,都有一个文件句柄的限制。默认情况下一般的应用都完全足够应用,但是如何象squid、mysql、java等单进程处理大量请求的应用来说就有点捉襟见肘了。如果单个进程打开的文件句柄数量超过了系统定义的值,就会提到“too many files open”的错误提示。本文下面简单介绍如何查看默认的设置大小,以及如何设置。
 
1.首先我们开启系统,并且使用root账户登录,介绍大家如何查看本系统的文件句柄个数的大小。我们执行命令“ulimit -a”,其中oepn files 对应的即为本机文件句柄数。具体展示如下图所示。
linux查看进程打开的文件句柄以及如何修改教程
 
2.下面我们可以根据进程ID进行统计各个进程打开了多少文件句柄数。统计用到了lsof工具,假如系统没有安装请自行安装。安装命令“yum install lsof”等待系统安装完毕。
linux查看进程打开的文件句柄以及如何修改教程
 
3.待lsof软件安装完毕后,我们执行命令“lsof -n |awk '{print $2}'|sort|uniq -c |sort -nr|more ”,等待运算结果,结果出来后,其中第一列展示的为打开的文件句柄个数,第二列为对应的进程号。
linux查看进程打开的文件句柄以及如何修改教程
 
4.然后我们可以根据一个打开文件句柄过多的进程ID来确认是那个进程,本文中演示我们使用进程ID为1239,执行命令“ps -ef | grep 1239”,可以得到程序的主要信息。
linux查看进程打开的文件句柄以及如何修改教程
 
5.当然我们也可以根据进程ID,来查看该应用打开的文件句柄。具体命令为"lsof -p 1239 | wc -l"。具体展示如下图所示。
linux查看进程打开的文件句柄以及如何修改教程
 
6.下面我们介绍如何修改默认的文件句柄个数,首先介绍一个比较简单的方法。我们采用命令“ulimit -HSn 65535”表示设置硬性以及软性大小都为65535。(该方法当时生效,一旦重启失效,建议加入开机启动项内)。
 
7.设置完毕后,我们进行查看,执行命令"ulimit -a"进行验证,可以看到以及修改为65535了。具体展示如下图所示。
linux查看进程打开的文件句柄以及如何修改教程
 
8.下面介绍第二种修改方法,我们修改/etc/security/limits.conf,在文件最后添加两行
* soft nofile 65535
* hard nofile 65535
修改后进行保存。具体展示如下图所示。
linux查看进程打开的文件句柄以及如何修改教程
 
9.最后我们重启系统进行验证,输入命令“ulimit -a”。可以看到修改成功(此方法系统重启不影响)。
linux查看进程打开的文件句柄以及如何修改教程
 
本文永久更新地址:http://www.linuxdiyf.com/linux/26828.html