最新消息:

systemd中设置LimitNOFILE=infinity最终却得到65536

Linux ipcpu 225浏览 0评论

systemd中设置LimitNOFILE=infinity最终却得到65536.md

引入

在CentOS7中进行测试,假如设置LimitNOFILE=infinity,按照字面意思来理解,应该是unlimited,可是发现得到的open files limit值是65536,觉得很奇怪,于是做了如下测试

测试

测试机环境情况如下

[root@ipcpu-s7 ~]# cat /etc/redhat-release 
CentOS Linux release 7.4.1708 (Core) 
[root@ipcpu-s7 ~]# uname -a
Linux ipcpu-s7 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
[root@ipcpu-s7 ~]# rpm -qa |grep systemd-sysv
systemd-sysv-219-42.el7_4.4.x86_64

以docker-ce-18.09.6-3.el7.x86_64这个包为例,docker-ce在/usr/lib/systemd/system/docker.service配置文件中预设了 LimitNOFILE=infinity,于是我们得到了如下结果

[root@ipcpu-s7 ~]# cat /proc/`pidof dockerd`/limits |grep files
Max open files 65536 65536 files 

如果不设置,或者设置为LimitNOFILE=unlimited(不识别),则得到了1024

[root@ipcpu-s7 ~]# cat /proc/`pidof dockerd`/limits |grep files
Max open files 1024 4096 files   

如果设置为42万,LimitNOFILE=420000,那么结果如下

[root@ipcpu-s7 ~]# cat /proc/`pidof dockerd`/limits |grep files
Max open files 420000 420000 files 

总结

在CentOS7中systemd的配置中,设置LimitNOFILE=infinity就等于LimitNOFILE=65536,一定要注意,特别是对于需求10万以上文件打开数的人,一定要自行设定。

此配置和docker无关,使用nginx测试效果也是一样。请知悉。

发现github很早就有人发现这个bug了,如下
https://github.com/systemd/systemd/issues/6559

转载请注明:IPCPU-网络之路 » systemd中设置LimitNOFILE=infinity最终却得到65536

发表我的评论
取消评论
看不清?
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址