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
相关产品推荐
相关产品推荐

