几天前,我们在虚拟机上安装了一个graylog2专用服务器(带有rails独角兽、mongodb和eleasticsearch),其中包含2G的ram。
拉姆的消费量一直在上升,我经常得到很高的消费警惕。
我试图评估我需要多少内存来集中所有用于25+服务器的syslog和rails日志,谁有这方面的经验?
或者,有没有人有办法将graylog2和他的依赖应用程序(独角兽、mongodb、eleasticsearch)保持在2G的内存中?
编辑2013-02-20:事实证明,内存不是真正的问题后,一点点提高到2.25GB。问题是现在的CPU负载,我们有灰色日志服务器消耗几乎100%的所有8个cpu核心。
发布于 2013-02-14 20:24:03
随着时间的推移,只要数据集(数据加索引)超过可用内存,MongoDB将倾向于100%驻留内存。它最终会发现一种“稳定状态”,新的(最近接触到的)数据被分页到RAM中或保存在RAM中,旧数据(最少最近使用的数据)被分页。避免这种情况的唯一方法是拥有一个比可用内存更小的数据集,否则最终会发生这种情况(尽管可能需要几个小时/天/周/月,这取决于您访问数据的速度)。
这没什么好担心的,它类似于内存映射文件周围的错误报告和内存消耗--内核管理内存分配,如果其他进程需要的话,将分页删除MongoDB数据。但是,在编写诸如高内存利用率警报之类的东西时,最好记住--在大多数情况下,对于MongoDB系统来说,它们是毫无意义的。您最好将页面错误率或磁盘IO作为代理(请参阅彩信中的指标以获得更多信息)。
https://serverfault.com/questions/476483
复制相似问题