企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
[TOC] ### **/etc/security/limits.conf** 该文件会影响某个用户下的进程,可以简单理解为该用户下的单个进程的打开文件数上限。设置方法如下(在文件末尾添加一行即可): ``` docker - nofile 65535 # 为docker用户设置 ``` 如果为所有用户设置,则如下: ``` * - nofile 65535 ``` ### **/etc/security/limits.d/** 该目录下的文件中的配置会覆盖/etc/security/limits.conf的值 ### **/etc/systemd/system.conf** 该文件会影响以systemd管理的进程(即xxx.service),比如docker服务如果是用systemd管理,那么dockerd进程的打开文件数会受到该文件的影响,设置方法如下(在文件末尾添加如下一行): ``` LimitNOFILE=65536 ``` ### **/etc/systemd/system.d/** 该目录下的文件的值会覆盖/etc/systemd/system.conf中的值 ### **/usr/lib/systemd/system/xxx.service** ``` [Service] LimitNOFILE=65536 ``` ### **容器** 容器中的进程是以root用户运行的,但是容器中的进程的打开文件数上限,是由docker的启动参数控制的,该参数的默认值为65536, 所以容器中的进程的打开文件数与上述的配置没有关系。 比如,我们可以通过以下的方式来修改容器中进程的Soft NoFile与Hard NoFile都为1048576 ``` $ dockerd --default-ulimit nofile=1048576:1048576 ``` ### **查看进程的文件句柄数上限** ``` $ cat /proc/<pid>/limits ``` ### **查看进程打开的文件句柄数** ``` $ ls -l /proc/<pid>/fd | wc -l ```