对高级服务器配置有些陌生,并试图弄清楚如何决定是否应该将我的小实例拆分为两个独立的小机器(一个数据库和一个应用服务器)或一个更大的机器。基本上我不知道我应该查看哪些指标来指导我的决定。
- 我可以使用哪些工具来查看指标(当前正在运行 graphite/collectd/statsd)
- 哪些指标可以告诉我更有效的解决方案?
我试图尽可能具体,如果问题看起来太宽泛,请原谅。
编辑:有关应用程序的详细信息
我在一个小实例上运行了 4 个 django 应用程序。其中一个根据用户输入从数据库中提取大量记录(最多约 60,000 条)
此应用程序往往会消耗大量内存,并在处理视图中返回的所有数据时开始进行机器交换。
答案1
我会先查看顶部。您的应用程序是否花费更多时间等待 IO 或 CPU/RAM 受限?
横向扩展还是纵向扩展是一个难题,而且非常依赖于应用程序,但总的来说,一个拥有 2 倍资源的盒子比两个只有 1/2 功率的盒子更高效,因为在第二种情况下,你只需支付两次操作系统开销,而且不必处理 ACID 问题(除非你可以处理最终一致性,但仍然存在同步数据的开销)。
但这取决于情况——有关应用程序的更多细节以及您预计它的瓶颈会有所帮助。