too many open files,在vddkgent库中上报错-16027

出现这句提示的原因是程序打开的文件/socket连接数量超过系统设定值。

 

1、查看每个用户最大允许打开文件数量

ulimit -a


其中 open files (-n) 1024 表示每个用户最大允许打开的文件数量是1024

2、查看当前系统打开的文件数量
lsof | wc -l 

watch "lsof | wc -l"  

3、查看某一进程的打开文件数量
lsof -p pid | wc -l 
lsof -p 1234 | wc -l 



4、设置open files数值方法
ulimit -n 2048


5、永久设置方法
vim /etc/security/limits.conf

在最后加上如下两句:
* soft nofile 4096  
* hard nofile 4096 
 


最前的 * 表示所有用户,可根据需要设置某一用户,例如:
fdipzone soft nofile 8192  
fdipzone hard nofile 8192


6.针对el7,需要修改system.conf
/etc/systemd/system.conf
DefaultLimitNOFILE=8192

*7.验证修改是否生效(修改后,确认进程中max open files是否正确)
cat /proc/进程pid/limits