[英]MongoDB degrading write performance over time
随着时间的推移,我正在导入大量数据(18GB,300 万个文档),几乎所有数据都已编入索引,因此正在进行大量索引。 该系统由单个客户端(单独机器上的单个进程)组成,建立单个连接(使用 pymongo)并批量执行 1000 个文档的insertMany
。
MongoDB 设置:
当我启动服务器(完全重新启动后)并插入集合时,需要 1.5 小时。 如果服务器运行一段时间插入一些其他数据(来自单个客户端),它会完成插入数据,我删除集合并运行相同的数据插入 - 插入需要 6 个小时(仍然有足够的磁盘超过 60%,没有其他东西可以连接到数据库)。 感觉服务器性能会随着时间的推移而下降,可能是特定于操作系统的。 有没有类似的经历、想法?
我遇到过类似的问题,问题是RAM。 完全重新启动后,服务器的所有 RAM 均可用,但插入后 RAM 已满。 删除收集和再次插入相同的数据可能需要一些时间,因为一些 RAM 仍在使用中,而 mongo 的可用内存更少。 删除集合后尝试释放 RAM 和缓存,并检查相同的行为是否仍然存在。
由于您没有提供任何具体细节,我建议您启用分析; 这将允许您检查性能瓶颈。 在 mongo shell 运行:
db.setProfilingLevel(2)
然后运行:
db.system.profile.find( { "millis": { "$gt": 10 } }, { "millis": 1, "command": 1 }) // find operations over 10 milliseconds
一旦完成设置重置分析模式:
db.setProfilingLevel(0)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.