我在部署vj4的时候需要导入历史数据, 具体来说, 就是用mongorestore命令恢复数据库备份, 之后用一个脚本处理一下。
然而, 我运行的时候, 在mongorestore的最后一步, 也就是恢复index(索引)的这步, mongorestore卡住了, 进而整个系统都卡了。经过查看log发现mongod输出过too slow等字样, 仔细查看log, 可以发现log输出过index恢复的进度。而index恢复到一定进度的时候就卡住了。
我尝试开启swap, 无效; 尝试更换mongo的存储引擎, 无效; 尝试调整文件系统格式, 把系统弄坏了。于是重装, 然后重新运行mongorestore, 还是卡住。这个时候Mrw提出可以增加内存, 于是他为这个服务器增加了1GB内存(原来是1GB), 我再次运行mongorestore, 成功。
事后, 我想到这可能是我之前读到csapp中说的内存抖动问题(9.3.6), 也就是工作集大小超出了物理内存, 页面不断换入换出, 程序慢的像爬一样的问题。
发表评论