linux Debian系统设置limits打开文件数不起效果还是默认值1024,handle_accept函数引发CPU100%进程满载现象 ulimit
linux Debian系统设置limits打开文件数不起效果还是默认值1024,handle_accept函数引发CPU100%进程满载现象 ulimit观察到进程一直处于CPU100%满载现象
使用gdb调试器后发现果然是handle_accept函数引发的,不用想都能知道是打开文件被限制了
使用centos的修改方法发现不起效果,依旧是默认值1024
ulimit -n 1048576
echo "* soft nofile 1048576" >> /etc/security/limits.conf
echo "* hard nofile 1048576" >> /etc/security/limits.conf
通过查阅资料和测试,在Debian系统中需要使用这种方法来添加打开文件,*对root不在起效果,所以要单独设置个root,并且要在另一个user.conf文件中同时设置
echo "root soft nofile 1048576" >> /etc/security/limits.conf
echo "root hard nofile 1048576" >> /etc/security/limits.conf
echo "* soft nofile 1048576" >> /etc/security/limits.conf
echo "* hard nofile 1048576" >> /etc/security/limits.conf
echo "DefaultLimitNOFILE=1048576" >> /etc/systemd/system.conf
echo "DefaultLimitNOFILE=1048576" >> /etc/systemd/user.conf
下面这是确认打开文件设置成功的查看办法 根据软件的pid进行排序显示
yum -y install lsof
lsof -n | awk '{ print $2; }' | uniq -c | sort -rn | head
查看单个pid进程的限制打开文件大小最大数量,可以查看修改系统打开文件数量后是否生效了
cat /proc/28492/limits | grep files
虽然实际上ulimit限制显示是1024,但是Linux应该是用4字节作为计算,也就是4124达到阈值,修改打开文件后就可以突破4124,修改成功后两个数值都会显示为1048576
https://bbs.itzmx.com/thread-109876-1-1.html
可以从这里开始阅读
https://github.com/1265578519/OpenTracker/issues/6#issuecomment-2406086935
触发原因是limits未正确配置,用尽后触发这个bug
页:
[1]