mongodb 服务器内存控制(WSRM)
由于碰到过mongodb吃掉所有闲置内存的情况,导致服务器操作越来越慢。虽然对mongodb的读操作没有太多影响,但是此时写入的性能却极剧下降(怀疑内存不够引起的)。由于要收集大量的历史文件数据,每次多线程收集到一定的程度时,写入文件速度越来越慢,经过多次测试发现,均与服务内存的使用峰值有关。当服务器内存使用率较低时,多线程写入较快,当服务器内存被mongodb 映射耗尽时,多线程写入速度慢到惨不忍赌了,即使是单线程情况这种情况表现也很明显。虽然mongodb提供了runCommnad({closeAllDatabase:1})或关闭数据库释放缓存,但是这却影响到了正常读写操作。因此给服务器预留一定的内存空间成了保障快速写入的一个方案,当然在正常情况下不会出现如此频率的文件写入操作,只是现在面对的情况特殊,是要收集大量历史的文件。为了验证这个问题,今天就借助于一下Windows System Resource Manager(WSRM) 实现对服务器运行程序的内存与CPU使用控制 (windows2003/windows2008),这里使用的windows2008,在控制管理器面板添加功能里选择Windows System Resource Manager 安装即可。详细见链接 WSRM使用 。