Ubuntu ulimit如何调整打开文件限制以优化系统性能和稳定性?
- 内容介绍
- 文章标签
- 相关推荐
什么是 ulimit?为什么需要调整打开文件限制?
ulimit是 Linux 中用于控制单个进程可使用程序资源上限的命令。-n 参数具体指的是该进程可以同时打开的文件描述符数量。 说起来,文件描述符是内核用来标识打开的文件、 socket、管道等资源的整数句柄。当一个进程尝试打开超过其允许数量的文件时内核会返回 “Too many open files” 错误,导致应用异常、服务不可用甚至程序不稳定。
使用者常见痛点——何时会感到“文件太多”?
查看当前会话的打开文件限制
在终端直接运行:
$ ulimit -n
临时调整
使用同名命令即可修改:
$ ulimit -n 4096
$ sudo vim /etc/security/limits.conf
- soft nofile 4096
- hard nofile 8192 root soft nofile 8192 root hard nofile 8192
/etc/pam.d/common-session或 /etc/pam.d/login 必须包含:
session required pam_limits.so
LimitNOFILE=65535这样无需全局修改 limits.conf.
"default-ulimits": {"nofile": {"Name": "nofile","Hard": 65535,"Soft": 4096}} 或在 pod 的 securityContext 中设置 resources.limits.nofile 能减少容器继承宿主低额度.
-n 参数> 。
什么是 ulimit?为什么需要调整打开文件限制?
ulimit是 Linux 中用于控制单个进程可使用程序资源上限的命令。-n 参数具体指的是该进程可以同时打开的文件描述符数量。 说起来,文件描述符是内核用来标识打开的文件、 socket、管道等资源的整数句柄。当一个进程尝试打开超过其允许数量的文件时内核会返回 “Too many open files” 错误,导致应用异常、服务不可用甚至程序不稳定。
使用者常见痛点——何时会感到“文件太多”?
查看当前会话的打开文件限制
在终端直接运行:
$ ulimit -n
临时调整
使用同名命令即可修改:
$ ulimit -n 4096
$ sudo vim /etc/security/limits.conf
- soft nofile 4096
- hard nofile 8192 root soft nofile 8192 root hard nofile 8192
/etc/pam.d/common-session或 /etc/pam.d/login 必须包含:
session required pam_limits.so
LimitNOFILE=65535这样无需全局修改 limits.conf.
"default-ulimits": {"nofile": {"Name": "nofile","Hard": 65535,"Soft": 4096}} 或在 pod 的 securityContext 中设置 resources.limits.nofile 能减少容器继承宿主低额度.
-n 参数> 。

