上次在一台两G内存的win server 2008电脑上运行一个程序,一段时间后mongod自动停止,发现日志文件最后有这样的错误:
2014-11-30T00:32:32.914+0800 [conn30751] command taskdb.$cmd command: count { count: "result25", fields: null, query: { md5: "c390a22da3d411675883d6f692f266de" } } planSummary: COLLSCAN keyUpdates:0 numYields:0 locks(micros) r:312476 reslen:48 312ms
2014-11-30T00:32:32.921+0800 [conn30751] VirtualProtect for D:/data/db/taskdb/taskdb.3 chunk 4122 failed with errno:1455 页面文件太小,无法完成操作。 (chunk size is 67108864, address is 4068000000) in mongo::makeChunkWritable, terminating
2014-11-30T00:32:32.922+0800 [conn30751] taskdb.result25 Fatal Assertion 16362
然后看来是需要将虚拟内存加大才可以运行。
页面文件太小,就增大虚拟内存: 1、右键点【我的电脑】-【属性】-【高级】选项卡, 2、在【性能】栏内点【设置】-继续点【高级】选项卡, 3、在【虚拟内存】栏内点【更改】-弹出【虚拟内存】对话框,就可以设置了。 4、单选【自定义大小】,在【初始大小】里设置1024,在【最大值】里设置2048(不能超过32位操作系统的内存寻址范围——4GB)。 最后点一下【设置】可生效。如有必要,可重启电脑。 建议将虚拟内存移动到除C盘之外的其它盘,例如D盘。以减轻对系统盘的压力。 方法:仍在【虚拟内存】对话框,点击C盘卷标,单选【无分页大小】。 再选D盘卷标,单选【自定义大小】,设置【初始大小】和【最大值】即可。
From: http://blog.csdn.net/wang1144/article/details/41717993