是否可以限制 Flask 请求触发的 CPU/内存使用率?

时间:2020-12-19 12:12:45

标签: python flask gunicorn

我使用 开发后端,并且我目前正在阅读有关 Billion 笑声攻击等攻击的信息。虽然我知道有其他方法可以防御它们,但我提出这个问题的动机是纵深防御(在不同的组件中采用几种不同的防御 - 如果绕过一个,希望其他防御也有效)。

一个用户不应该引起其他用户的 DOS。如果我通过 gunicorn 运行 Flask,我认为它会为每个请求生成一个线程。是否可以为这些线程设置硬性 CPU 使用率/内存使用率限制?

我发现了什么

根据我的发现,我猜这可能是不可能的,或者我看错了级别:

我认为主进程需要管理它的线程,但也许操作系统也可以/必须这样做?

1 个答案:

答案 0 :(得分:0)

我想我找到了an answer

post_worker_init(worker)resource.setrlimit(resource.RLIMIT_AS, 10 * 2**20)。也可能是 resource.RLIMIT_STACKresource.RLIMIT_HEAP