现在的位置: 首页 > 综合 > 正文

mongodb磁盘性能调优

2017年12月23日 ⁄ 综合 ⁄ 共 653字 ⁄ 字号 评论关闭

最近在使用mongodb,mongodb在大部分情况下性能还是很好的,但当其内存不够时就会导致性能急剧下降,但如何发现内存不够了呢?

主要是可以通过看
a) vmstat 1 999 ,如果其中si,so数值较大说明内存是不够了,需要加大内存
b) 执行mongostat 命令,如果其中faults值较大,那也说明内存上有问题,因为它的失页中断发生次数太多了导致有很多数据是要从硬盘中换入到内存中
在上述情况下就会有大量的数据需要从硬盘交换到内存中,导致硬盘性能跟不上,直接就导致整个mongodb性能低下。
用iostat -x查看,发现目前我们的系统iowait:37.33%,一般在25%以上就会有可能在硬盘上存在性能问题,await值:2069.10,说明应用磁盘队列要等2秒以上,等待的时间太长了,说明硬盘上明显存在性能问题。同时svctm值超过15,util值100%,这样就说明目前时间就耗在硬盘上了。
await值的大小一般取决与svctm的值和I/O队列长度以及I/O请求模式,如果svctm的值与await很接近,表示几乎没有I/O等待,磁盘性能很好,如果await的值远高于svctm的值,则表示I/O队列等待太长,系统上运行的应用程序将变慢,此时可以通过更换更快的硬盘来解决问题。
类似的命令sar -d 2 3也能得到相关的数据
用hdparam -tT /dev/sda这样的命令可以得到硬盘的速度报告
 

抱歉!评论已关闭.