我一直在 Heroku 托管的环境中运行一些 Facebook 应用程序,流量相当大。
这些是使用 2 个 php 文件(一个单页应用程序加上一个 AJAX 数据入口点)的简单应用程序,它们非常简单,对服务器内存没有真正的需求,大部分资源用于提供图像,而它们最重的东西'将在 CPU 负载方面做的是对 Web API 的 curl 请求,或对数据库的调用以获取一些数据。
由于服务器并发的流量和需求(平均 10-20 dynos),我一直在研究如何配置应用程序以获得最大性能,并发现最大的瓶颈来自 Heroku 的默认boot.sh
apache 部署脚本所施加的限制默认情况下MaxClients=1
在我的应用程序上设置。
这具有将 Apache 限制为1 个线程来处理 HTTP 请求的效果。
新的和改进的2x dynos来了,它的成本是原来的两倍,而且 RAM 和 CPU 性能也有望提高一倍。
现在我可以理解,当主要瓶颈是处理 HTTP 请求时,RAM 不会有太大的不同,但我会假设新的 dynos 将设置MaxClients=2
(尚未能够检查),所以我想知道我是否'最好使用我通常使用的 1x dyno 数量的一半来运行我的应用程序。有人知道答案吗?