类似问题:Mongodb 上的高全局锁定百分比
我们在 v2.4.8 mongodb 中有一个生产设置副本集,它运行在五个 4 核、28gb RAM 虚拟机上,标准 azure 数据磁盘 HDD 运行在 64 位 CentOS 6 上。我们以大约 600-700 ops/sec/secondary 的速度在辅助节点上分配读取。每个辅助节点的 CPU 使用率约为 15%。主服务器上的 CPU 使用率约为 5-10%。我们目前在我们的主服务器上遇到高全局写锁和后台刷新平均值的问题。尽管每秒只有大约 200 次插入/更新/删除(请参阅下面的 MMS 输出),但我们的主服务器上的全局写锁定在 30-40% 之间。我们还注意到,我们的后台刷新平均值在 2 到 15 秒之间。不幸的是,这会导致大量缓慢的查询(每秒最多 50 次更新/插入 > 100 毫秒)。我们已经考虑过分片,但觉得 mongodb 应该表现得比这更好。
这告诉我,我们在写入 HDD 时遇到问题,但运行一个简单的 iostat 显示我们在 sdc(我们正在写入的磁盘)上的利用率没有达到最大值,并且在 20% 到 40% 之间:
$ iostat -x 1
Run Code Online (Sandbox Code Playgroud)
4秒结果:
Linux 2.6.32-279.14.1.el6.openlogic.x86_64 (mongodb3-wus) 05/08/2014 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
5.28 0.00 1.82 …Run Code Online (Sandbox Code Playgroud)