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

如何在Flask Web服务Python文件中设置最大并发打开文件数

在Python脚本中设置文件描述符限制

可以直接在Python代码里修改文件描述符的限制,无需手动执行ulimit命令,核心是用Python标准库的resource模块操作系统资源限制。

具体实现代码

在Flask服务启动前添加以下代码:

import resource
from flask import Flask

# 调整文件描述符限制
def set_file_descriptor_limit(new_limit):
    soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
    # 优先尝试设置软限制,若需要提升硬限制则需root权限
    if new_limit <= hard:
        resource.setrlimit(resource.RLIMIT_NOFILE, (new_limit, hard))
        print(f"文件描述符软限制已设置为 {new_limit}")
    else:
        # 仅root用户可以修改硬限制
        try:
            resource.setrlimit(resource.RLIMIT_NOFILE, (new_limit, new_limit))
            print(f"文件描述符硬/软限制均已设置为 {new_limit}")
        except PermissionError:
            print(f"权限不足:无法将限制提升至 {new_limit},当前硬限制为 {hard}")

# 调用设置函数,目标值100000
set_file_descriptor_limit(100000)

# 初始化Flask服务
app = Flask(__name__)

@app.route('/')
def hello():
    return "Hello World!"

if __name__ == '__main__':
    app.run()

关键注意事项

  • 权限差异:普通用户只能将软限制调整到系统预设的硬限制以内;若要突破硬限制,必须以root用户身份运行脚本,或者先修改系统全局配置(比如/etc/security/limits.conf)提升硬限制。
  • 作用范围:该设置仅对当前Python进程及其子进程生效,不会改变系统全局的默认限制。
  • 系统配置兜底:如果普通用户运行时遇到硬限制不足的情况,需要修改系统配置文件:
    在/etc/security/limits.conf中添加两行:
    username soft nofile 100000
    username hard nofile 100000
    
    替换username为实际运行脚本的用户,保存后重启会话或服务器生效。

内容的提问来源于stack exchange,提问作者Amrmsmb

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 03:42:42