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

http://www.ideabuffer.cn/2016/11/20/Linux配置調優:最大打開文件描述符個數/

https://www.jianshu.com/p/ea32136d4074


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM