BlueXIII's Blog

热爱技术,持续学习

0%

文件打开数问题排查步骤

常用命令

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# 查看系统最大FD总和
cat /proc/sys/fs/file-max
或 sysctl -a|grep fs.file-max

# 设置系统最大FD总和
vi /etc/sysctl.conf
fs.file-max=3244084
sysctl -p

# 查看进程最大FD
ulimit -n

# 设置进程最大FD
vim /etc/security/limits.conf
* soft nofile 65535
* hard nofile 65535

# 进程FD排行(此方式准确)
find /proc -print | grep -P '/proc/\d+/fd/'| awk -F '/' '{print $3}' | uniq -c | sort -rn | head -10

# 进程FD排行(网上流传的此方式,在CentOS7.3之后多了一列线程ID,算成了笛卡尔积)
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|head -10

# 进程内线程数排行
ps -efT|grep java|awk '{print $2}'|sort|uniq -c|sort -nr|head -10

# 进程TCP连接排行
lsof -n -i tcp | awk '{print $2}'|sort|uniq -c|sort -nr|head -10

# 查看指定进程的FD数
ls /proc/32484/fd -l | wc -l

# 查看指定进程的线程数
ps huH p 25439 | wc -l

# 查看系统所有TCP CLOSE-WAIT数
ss -tan|grep CLOSE-WAIT|wc -l