使用perl脚本插入了900万条记录文件。没有使用批量插入/ mongoimport,因为在插入之前需要对每条记录进行一些处理。
该程序需要40分钟才能完成,但出于某种原因,它会不时地暂停(换出?),因此运行时间增加一倍,三倍,有时甚至变得难以忍受。我有7 GB RAM,当我使用free -m检查时,它表示我在程序运行时有大约5 GB的可用RAM。我没有运行任何耗费资源的进程。这种缓慢的原因是什么?它会是mongo问题还是操作系统问题?我该如何解决这个问题?谢谢。
答案 0 :(得分:2)
默认情况下,Mongo每分钟都会将写入与光盘同步,因此插入速度很快,每分钟都需要在磁盘上刷新它们,从而导致I / O增加。这导致每分钟减速。
您可以将default setting更改为更高,但是如果停电,您将丢失数据,或者您可以每秒fsync - 在这种情况下,整个操作将会慢得多,但是
持续的速度。