我正在运行使用mongo分片群集的节点(0.10.26)应用程序。我正在使用三个副本集作为分片。这里是我的其他配置细节mongod(v2.6.5)分片群集查询延迟问题?
硬件和操作系统设置
- EC2:m3.large(RAM:7.5G)
- Linux操作系统Ubuntu 12.04(内核:3.2.0-69虚拟64位)
- 磁盘:400g的SSD(EBS)(安装有noatime的和的32预读设定)
应用的负载模式
- 插入率= 20-30 /秒 大多数刀片是日志收集和他们发生 所有的时间。
- 查询率= 50-100 /秒
- 更新=〜30 /第二
蒙戈
- 存储引擎:默认(mmapv1)
- 指数大小:3.5G
- 工作组:270 MB
- 猫鼬版本:3.8.25
- 蒙戈版本:2.6.5
我的应用程序提供下载日志记录为具有一定过滤CSV文件的接口。当我尝试csv下载时,应用程序变得非常慢。
经过一番调查后,我得出结论说,查询日志需要很长时间(> 2分钟,有时长达10分钟) 由于数据库响应速度慢,应用程序也很慢
问题
为什么是需要长时间的日志查询。
如果我做了解释(),我看到它碰到了索引。
mongostat(当以1秒的延迟运行时)表示有 有许多页面错误发生(〜800 - 1100)/秒。查询返回后页面 故障消退。随后的查询在几秒钟内返回 。
工作集+索引大小= 3.7 G
RAM = 7.5 G.
大小日志收集= 50g的
是否频繁写入日志收集影响在同一采集读取操作 。这种担心是否适用于我的工作负荷?
你拥有了一个非常详细的问题(我很高兴看到这从一个新的用户),但你可以保持平均每个职位有一个问题?在你的情况下,有4个。 –