Technical note
文件打开数问题排查步骤
常用命令
# 查看系统最大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