【问题标题】:Python Flask on Passenger cannot handle small numbers of concurrent requests乘客上的 Python Flask 无法处理少量并发请求
【发布时间】:2017-02-06 14:13:07
【问题描述】:

我有一个在 Passenger 上运行的 Flask (Python) 应用程序,当我测试它时它工作得非常好,而且我是唯一的用户。

但是,一旦我尝试建立多个并发连接,每个客户端都会永远等待响应。我已经尝试过 50 个并发用户,这似乎应该很容易得到支持。

该应用程序非常简单,一次或两次读取和写入 SQLite 数据库。 (这少数用户同时访问SQLiteis not a problem。)

我错过了什么?

【问题讨论】:

  • 您将不得不提供更多有关其服务方式的信息。 sqlite 不太可能成为瓶颈;乘客使用了多少进程/线程?
  • @DanielRoseman 感谢您的评论。我想我找到了my answer(虽然在我有另外 50 个用户试用之前很难测试。)我想发布这个是因为我很难通过 Google 获得帮助。

标签: python apache passenger wsgi


【解决方案1】:

Passenger docs 中提出以下建议:

Passenger 还支持魔术文件“tmp/always_restart.txt”。如果 此文件存在,Passenger 将在每次运行后重新启动您的应用程序 要求。这样您就不必经常调用重启命令。

通过创建文件来激活这个机制:

$ mkdir -p tmp

$ touch tmp/always_restart.txt

这对于开发来说非常有用,因为这意味着您只需保存 Python 文件,以便客户端可以使用最新版本的应用程序。

但这对生产来说很糟糕,因为每个客户端都会发出自己的请求,然后重新启动 Python 应用程序。这对服务器来说是一个非常大的开销,因此用户可能会在收到响应之前超时。

删除文件tmp/always_restart.txt,您的并发限制将会飙升。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2011-09-27
    • 2018-11-25
    • 1970-01-01
    • 2018-05-18
    相关资源
    最近更新 更多