【问题标题】:performance optimization for apache2 in case of multiusers多用户情况下 apache2 的性能优化
【发布时间】:2020-11-08 20:56:47
【问题描述】:

我正在使用 apache2 使用 mod_wsgi 在 Linux ubuntu20.04 平台上部署烧瓶应用程序,并且在成功部署后,当我尝试通过给 5 个用户负载来检查机器并且机器崩溃并显示错误日志“无法检索数据并抛出“服务不可用”的消息'

对于单用户,apache 性能最好,但对于多用户,它会崩溃。我该如何解决这个问题,您的 cmets 在这方面将不胜感激

【问题讨论】:

    标签: linux flask apache2 ubuntu-20.04


    【解决方案1】:

    Flask 本身(内置服务器)一次只能处理一个请求。

    您需要使用例如gunicorn.

    另见官方文档:

    https://flask.palletsprojects.com/en/1.1.x/deploying/wsgi-standalone/

    【讨论】:

    • 感谢您的回答,但是当我在 Windows IIS 上部署相同的应用程序时它工作正常问题是当我使用两个或三个用户时的负载 apache 工作正常但数量增加的用户的性能大幅下降,如果是 IIS,它的性能很好,但 apache 无法处理
    • 不显示您的 Apache 配置,这只是猜测工作。我最好的猜测是,您将 Apache 配置为 Flask 上的反向代理,而 Flask 是通过flask run 或一些app.run() 命令运行的。正如我在上面的答案中已经告诉你的那样,Flask 本身一次只能处理 1 个请求。这就是您收到“服务不可用”消息的原因。您需要使用mod_wsgi 配置Apache(我无能为力),或者您按照我的建议安装和配置gunicorn。这行得通。
    • 关于为什么您的 IIS 工作方式不同 - 同样,您没有显示任何配置。我又能猜到了。您使用 wsgi 配置了 IIS,或者 IIS 可能生成了多个 Flask 实例,因此一次能够处理多个请求。但这不是最初的问题。此外,您没有解释如何对应用进行负载测试。但同样,只要您没有正确配置设置,这并不重要。
    • 我使用 WSGI 模块对其进行了配置,为澄清起见,我在基于 Windows 的服务器和 Apache Ubuntu 上部署了烧瓶应用程序来观察性能,在理想情况下,因为 Apache 在性能上比 IIS 好得多,它应该显示更好的结果,但结果却相反,所以我的问题是为什么会发生这种情况,所以我应该禁用其中的一些模块或启用以提高性能,如果需要,我将共享我的 apache 配置文件,谢谢
    • ServerName localhost ServerAdmin admin@mywebsite.com WSGIDaemonProcess FlaskApp python-path=/var/www/FlaskApp:/var/www/FlaskApp/FlaskApp/venv/lib/python3。 6/site-packages WSGIProcessGroup FlaskApp WSGIScriptAlias / /var/www/FlaskApp/flaskapp.wsgi Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error. log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log 结合
    猜你喜欢
    • 1970-01-01
    • 2020-08-16
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多