linux文件句柄
linux文件句柄数
1.获取系统打开的文件描述符数量
cat /proc/sys/fs/file-nr
已分配的FD数量 已分配但尚未使用的FD数量 为系统可用的最大FD数量
已用FD数量=为已分配的FD数量 - 为已分配但尚未使用的FD数量
2 获取进程打开的文件描述符数量
pidof vim
3.查看线程占句柄数
ulimit -a
4.查看系统打开句柄最大数量
more /proc/sys/fs/file-max
5.查看打开句柄总数
lsof|awk '{print $2}'|wc -l
6.根据打开文件句柄的数量降序排列,第二列为进程ID
lsof|awk '{print $2}'|sort|uniq -c|sort -nr|more
# 查看打开的文件描述符
ll proc/1430/fd
# 指定进程号,可以查看该进程打开的文件
lsof -p 27358
# 查看指定程序打开的文件
lsof -c sshd
# 查看指定目录下被打开的文件
lsof +D /home/ 或lsof +d /home/
# 查看端口连接情况
lsof -i :22
# 查看指定进程打开的网络连接
lsof -i -a -p 1535 //-i查看网络连接情况,-a查看存在的进程,-p指定进程
# 查看指定状态的网络连接
lsof -n -P -i TCP -s TCP:ESTABLISHED
-n:no host names, -P:no port names,-i TCP指定协议,-s指定协议状态
7.修改linux单进程最大文件连接数
# 修改临时生效
ulimit -n 10240
# 查看文件描述符限制
ulimt -n
-------------------------------------------------
# 永久生效
vi /etc/security/limits.conf
abc hard nofile 10240
说明:
abc:用户名,即允许test使用ulimit命令更改FD限制,最大值不超过10240,更改后abc用户的每一个进程(以abc用户运行的进程)可打开的FD数量为10240个
hard:限制类型,有soft/hard两种,达到soft限制会在系统的日志(一般为/var/log/messages)里面记录一条告警日志,但不影响使用。hard,达到这个限制,有日志且会影响使用。
nofile:限制的内容,nofile - max number of open files
1024 :值
-----------------------------------------------
# 系统级别的修改
echo "51200" > /proc/sys/fs/file-max
cat /proc/sys/fs/file-nr
# 永久生效
echo "fs.file-max = 51200" >> /etc/sysctl.conf
参考链接
https://www.cnblogs.com/mfryf/p/5329770.html
【励志篇】:
古之成大事掌大学问者,不惟有超世之才,亦必有坚韧不拔之志。