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