mongo的优化环境

时间:2014-02-17 05:21:11

标签: mongodb

我的RHEL linux服务器(VM)运行4核处理器,8GB内存运行以下应用程序

- an Apache Karaf container
- an Apache tomcat server
- an ActiveMQ server
- and the mongod server(either primary of secondary).

我常常看到mongo消耗了近80%的cpu。现在我看到我的CPU和内存大部分时间都在超调,这让我怀疑我的硬件配置是否太低而无法运行这么多组件。

如果可以在共享服务器上运行这样的mongo,请告诉我。

2 个答案:

答案 0 :(得分:0)

问题是要广泛,答案取决于太多的变数,但我会尝试让你全面了解它。

您是否可以在最小负载下在同一台计算机上一起使用所有这些服务? - 当然。虽然不清楚其他分片的位置,但它会以任何一种方式工作。您没有提供对于数据库服务器非常重要的硬盘规格,但它再次以最小负载工作。

你可以在重载下使用这个设置 - 不是最好的主意。也许让单独的服务器处理这些服务会更好。

监控整体服务器负载,如:CPU,内存,IO。检查mongo日志以查找慢查询。如果您的查询运行速度很快而且他们没有,那么您将需要更多硬件。

没有人真的能够告诉您特定服务器配置可以处理多少负载。这些天你需要至少512Mb RAM和1个CPU才能开始,但很快你就会达到极限。这完全取决于您拥有多少用户,他们运行的查询类型以及他们覆盖的数据量。

答案 1 :(得分:0)

您可以在单个服务器上的其他应用程序上运行MongoDB吗?好吧,如果您在当前配置中遇到内存问题或CPU问题,那么您可能需要解决一些问题。但是"可以吗?",如果影响你,那么你当然可以。

应该你,这样做吗?大多数人坚定地同意你不应该这样做,这也代表你在一台机器上运行的大多数其他应用程序。

有很多原因,进程隔离,资源分配,安全性,以及太多的短主题响应,以了解为什么不应该具有这种配置。当然,它成为一个问题,你应该通过寻求新的配置来解决这个问题。

仅对于Mongo,大多数人都不会在专用硬件上运行SQL数据库。 Mongo的选择应该没有什么不同。

还建议将其移至ServerFault,因为它不是适合堆栈溢出的编程问题。