Linux下如何查看进程打开的文件以及修改进程打开文件数上限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux下如何查看进程打开的文件以及修改进程打开文件数上限相关的知识,希望对你有一定的参考价值。

参考技术A 1. 查看进程打开文件在/proc下,对应每个进程有一个以进程号命名的目录,该目录下有一个fd目录,该目录下面的每个文件是一个符号连接,其文件名对应该进程占用的一个文件描述符,而连接指向的内容表示文件描述符对应的实际文件。2. 修改进程打开文件数上限Linux默认的进程打开文件上限是1024个,可以通过ulimit把所有用户的进程打开文件上限改为65536,可以加入下面两行* soft nofile 65535还可以只真对某个用户或某个组做修改,具体方法参见文件注释。修改后需要重新启动系统才能生效。本回答被提问者采纳

查看linux下进程打开的文件句柄数并清理

---查看系统默认的最大文件句柄数,系统默认是1024
# ulimit -n
1024

----查看当前进程打开了多少句柄数
# lsof -n|awk ‘{print $2}‘|sort|uniq -c|sort -nr|more
131 24204 
57 24244  
57 24231   ........

其中第一列是打开的句柄数,第二列是进程ID。
可以根据ID号来查看进程名。
# ps aef|grep 24204
nginx  24204 24162 99 16:15 ?    00:24:25 /usr/local/nginx/sbin/nginx -s

Linux有硬性限制和软性限制。可以通过ulimit来设定这两个参数。方法如下,以root用户运行以下命令:
# ulimit -HSn 4096

以上命令中,H指定了硬性大小,S指定了软性大小,n表示设定单个进程最大的打开文件句柄数量。个人觉得最好不要超过4096,毕竟打开的文件句柄数越多响应时间肯定会越慢。设定句柄数量后,系统重启后,又会恢复默认值。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后.

1.使用df -i 查看inode已经使用100%
2.使用ls -lt ar/spool/postfix/maildrop/ | wc -l 查看该目录下文件有330W
3.mkdir -pv /tmp/test
4.rsync --delete-before -a -H -v --progress --stats /tmp/test/ ar/spool/postfix/maildrop 使用该命令进行清理

以上是关于Linux下如何查看进程打开的文件以及修改进程打开文件数上限的主要内容,如果未能解决你的问题,请参考以下文章

Linux查看进程打开多少文件描述符命令

怎样查看linux进程打开的文件数

如何查看一个进程中已经打开的文件描述符

LINUX中如何查看某个进程打开的网络链接有多少?

Linux下查看进程打开的文件句柄数

Linux下查看进程打开的文件句柄数