如何配置Gunicorn以处理非常长的子流程请求

时间:2019-01-16 06:01:08

标签: python concurrency subprocess gunicorn

我在docker服务器中使用了flask和gunicorn。

该系统主要是一个代码判断平台,该平台接受带有代码的api请求并返回输出。 (我们已经通过使用某些延迟的任务队列(如rabbitmq)对此进行了评估,该模型对我们有效)。

这是我的烧瓶请求所做的:

  1. 接受代码输入
  2. 创建一个随机的Linux用户
  3. 使用驱动程序脚本运行用户的代码(此脚本具有ulimit -p 5 -t 5调用,以确保代码不会进行分叉炸弹或执行其他恶意操作)
  4. 应注意,第3点围绕bubblewrap调用进行了包装,以确保用户对任何地方都没有读写权限
  5. 代码运行后,删除在2中创建的该随机用户

我所有的外部脚本都是使用python子进程的check_output函数运行的。

如果我不使用任何设置来运行gunicorn,就像这样:

gunicorn -b :5555 --access-logfile --error-logfile - wsgi:app

,然后使用apache基准测试负载,看来服务器一次只能处理一个请求。

适合我的情况的枪械配置是什么?

0 个答案:

没有答案