本文章借鉴:
https://blog.csdn.net/caofengtao1314/article/details/104799259/
https://www.cnblogs.com/xiaohaigegede/p/14300092.html
1. 查询进程号 (charge_car_charing: 我运行的jar包名)
ps aux | grep charge_car_charing
查询到进程号为: 2555564
2. 查询该进程的线程数量: (2555564 :就是上面查询的进程号)
cat /proc/2555564/status|grep 'Threads'
3. 查询程序端口号所有连接数量:
netstat -lnaop|grep 9090|wc -l
4. 查看单个进程已经打开的fd。(3402:就是上面查询的进程号)
可以查看到fd不断增大,这样就可以确认是那个进程忘记close文件描述
ls -l /proc/3402/fd/ | wc -l
4.1 查看当前进程的最大可以打开的文件数: (2555564 :就是上面查询的进程号)
cat /proc/2555564/limits
5. 查看当前系统打开的最大句柄数
cat /proc/sys/fs/file-max
6. 修改系统最大打开的最大句柄数:
临时设置:echo 1000000 > /proc/sys/fs/file-max
永久设置:修改/etc/sysctl.conf文件,增加fs.file-max = 1000000
8. Linux系统下,所有进行已经打开的fd数量及允许的最大数量
cat /proc/sys/fs/file-nr
示例:
16960 | 0 | 3247545 |
已分配文件句柄的数目 | 已使用文件句柄的数目 | 文件句柄的最大数目 |
9. 单个进程允许打开的最大fd数量
ulimit -n