You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04 进程最大打开文件数无法提升问题求助

Ubuntu 22.04 进程最大打开文件数无法提升问题求助

各位好,我现在碰到了一个棘手的问题:尽管我已经尽了最大努力,还是没法提升Ubuntu 22.04系统中单进程的最大打开文件数。

下面是我已经做过的所有配置操作:

修改 /etc/systemd/user.conf

DefaultLimitNOFILE=20000500

修改 /etc/systemd/system.conf

DefaultLimitNOFILE=20000500

修改 /etc/security/limits.conf

* soft nofile 20000500
* hard nofile 20000500

修改 /etc/pam.d/common-session

在文件中添加/确保存在以下配置:

...
session required        pam_limits.so

修改 /etc/pam.d/common-session-noninteractive

同样在文件中添加/确保存在以下配置:

...
session required        pam_limits.so

修改 /etc/sysctl.conf

fs.inotify.max_user_watches=52428800
fs.file-max=25000500
fs.nr_open=20000500

做完以上所有配置后,我写了一个Python脚本用来测试效果。我的测试目标是尝试打开1048577个文件,看看是否会失败——因为目前执行ulimit -Hn返回的值还是1048576,并没有达到我配置的数值。脚本代码大致如下:

import os

def test_open_file_descriptors(num_files):
    fds = []
    try:
        # 尝试打开指定数量的临时文件
        for i in range(num_files):
            fd = os.open(f'/tmp/test_file_{i}', os.O_CREAT | os.O_RDWR)
            fds.append(fd)
        print(f"成功打开 {num_files} 个文件")
    except Exception as e:
        print(f"打开文件失败,已打开 {len(fds)} 个文件,错误信息:{e}")
    finally:
        # 清理打开的文件描述符和临时文件
        for fd in fds:
            os.close(fd)
        for i in range(len(fds)):
            os.remove(f'/tmp/test_file_{i}')

# 尝试打开1048577个文件,超出当前硬限制值
test_open_file_descriptors(1048577)

目前脚本运行后还是会在达到1048576个文件时失败,和ulimit显示的硬限制完全一致。有没有大佬能帮我看看哪里配置漏了或者出错了?

备注:内容来源于stack exchange,提问作者Guru Prasad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.17 10:29:40