首页 文章

如何决定是否增加asyncio aiohttp进程的数量?

提问于
浏览
2

我想使用asyncio aiohttp来构建一个必须扩展到十几个进程的Web应用程序?

我如何决定增加asyncio进程的数量?

我应该监控IO或CPU并决定吗?

1 回答

  • 1

    当你运行 aiohttp 服务器时,'ll serve all incoming requests using all available HDD/RAM/network resources and CPU core' s它在资源上运行 .

    如果您的计算机上有多个CPU核心,最好的方法是在 nginx 后面运行 aiohttp 并将其配置为使用所有核心(阅读更多here) . 它'll allow you to utilize all avaliable machine'的资源无需手动调整其他内容 . 加上 nginx 将比纯 aiohttp 更好地提供静态文件 .

    如果您没有非常高的应用程序,我认为上面会做得更好 .

    否则您仍然可能面临当前机器资源的限制 . 然后,您应该检测瓶颈在哪里(是HDD,RAM,CPU,网络容量?)并决定选择哪种解决方案:

    • 增加当前机器资源("Vertical scaling")

    • 在多台计算机上运行应用程序("Horizontal scaling")

    • 优化您的应用代码("profiling" "optimization")

    上面的每一个方面都是一个巨大的单独主

相关问题