Linux 中有哪些常用查询句柄的命令
本篇文章为大家展示了Linux 中有哪些常用查询句柄的命令,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
查询命令
进程占用的句柄总数
lsof -n | wc -l
查看哪一个进程占用的句柄最多
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
第一列 是 占用句柄数; 第二列 是 进程号 PID;
查询某一个进程的占用句柄
lsof |grep PID
第一列:进程名称 第二列:PID 第三列:进程所有者 第四列:文件描述符 第五列:文件类型
Linux 设置句柄命令
方法一
第一步:修改linux系统参数。vi /etc/security/limits.conf 添加
* soft nofile 65535 * hard nofile 65535
这里 * 表示所有用户, 但有的系统不认, 需要具体的用户名, 比如:
root soft nofile 65535 root hard nofile 65535
第二步: 编辑 etc/pam.d/login , 确保有如下行:
session required pam_limits.so
第三步:修改以后保存,注销当前用户,重新登录
第四步:验证。 使用 ulimit -Hn 和 ulimit -Sn 命令可以分别查看当前进程用户的 hard 和 soft 的限制数.
或者当前用户启动某个程序后, 通过 cat /proc/
方法二
ulimit -HSn 65536
简单的执行这个命令,只有在当前回话有效。如果想永久保存下来,可以修改.bash_profile文件,可以修改 /etc/profile 把上面命令加到最后.
附录
ulimit -a 查看当前用户的文件句柄限制
ulimit -a
用户级别的句柄数限制修改。
修改 /etc/security/limits.conf 增加下面的代码: 用户名(或者用*表示所有用户) soft nofile 65535
用户名 hard nofile 65535 有两种限制,一种是soft软限制,在数目超过软限制的时候系统会给出warning警告,但是达到hard硬限制的时候系统将拒绝或者异常了。 修改之后可能需要重启shell生效。
系统级别的句柄数限制修改。
sysctl -w fs.file-max 65536
或者
echo "65536" > /proc/sys/fs/file-max
两者作用是相同的,前者改内核参数,后者直接作用于内核参数在虚拟文件系统(procfs, psuedo file system)上对应的文件而已。 可以用下面的命令查看新的限制
sysctl -a | grep fs.file-max
或者
cat /proc/sys/fs/file-max
修改内核参数
/etc/sysctl.confecho "fs.file-max=65536" >> /etc/sysctl.confsysctl -p
查看系统总限制 命令:
cat /proc/sys/fs/file-max
查看整个系统目前使用的文件句柄数量命令:
cat /proc/sys/fs/file-nr
查看某个进程开了哪些句柄 :
lsof -p pid
某个进程开了几个句柄 :
lsof -p pid |wc -l
也可以看到某个目录 /文件被什么进程占用了,显示已打开该目录或文件的所有进程信息 :
lsof path/filename
上述内容就是Linux 中有哪些常用查询句柄的命令,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。