zoukankan      html  css  js  c++  java
  • mongoperf用法

    mongoperf是mongoDB自带工具,用于评估磁盘随机IO性能。

    官方文档

    使用方法

    作用:用于部署前,评估mongodb所在存储的IO性能
    用法:mongoperf <conffile,从配置文件conffile中读取参数。

    配置文件是Json格式,包含如下参数:

    {
      nThreads:<n>,
      fileSizeMB:<n>,
      sleepMicros:<n>,
      mmf:<bool>,
      r:<bool>,
      w:<bool>,
      recSizeKB:<n>,
      syncDelay:<n>
    }
    

    参数说明:

    • nThreads

    表示IO线程数<n>,默认值是1。为了测试时达到系统最佳性能,推荐设置为16,也可以更大(参考系统配置)。

    • fileSizeMB

    表示测试文件的大小,单位是MB,默认是1MB

    • sleepMicros

    默认值是0sleepMicros/nThreads表示每次操作的间隔(sleep)时间。

    • mmf

    默认值是false
    设置为false时,用direct IO模式,每次直接写物理磁盘,不会有缓存和合并效果。
    可用于测试大文件的随机IO性能。
    设置为true时,写到内存映射文件,一般用于测试系统缓存性能。

    • r

    默认值是false。设置为true时,表示有read操作。

    • w

    默认值是false。设置为true时,表示有write操作。

    • recSizeKB

    默认值是4kb,表示每次写入的数据块大小。

    • syncDelay

    默认值是0,表示不生效。
    设置为非0值时,仅当mmf设置为true时才生效。表示数据从内存刷到磁盘的时间间隔。如果有内存缓存,mongod默认60s间隔将缓存刷到磁盘。

    用法举例:

    # 16个io线程
    # 随机读写10GB的测试文件
    echo "{nThreads:16,fileSizeMB:10000,r:true,w:true}" | mongoperf
    

    执行结果:

    # 先创建10GB的测试文件
    9GB...
    testing...
    ...
    # IO跑满后,得出ops和吞吐量
    new thread, total running : 16
    read:1 write:1
    7670 ops/sec 29 MB/sec
    # 可以使用iostat观察磁盘io状态
    iostat -xmt 1
    

    参考意义:

    用于评估mongodb的性能上限。
    执行echo "{nThreads:16,fileSizeMB:10000,w:true}" | mongoperf结果:
    5205 ops/sec 20 MB/sec
    可以预估在该系统下,16线程每秒可成功操作5205次。

  • 相关阅读:
    如何从你的缓存分析全世界
    Java Collection Framework概述
    用Reveal分析第三方App的UI
    三种经典iPhone上网络抓包方法详解
    HTTPS时代全面到来,你准备好了吗?
    从“埋点技术已死?”开始说起
    访客至上的Web、移动可用性设计--指导原则
    动画原理——图形填充
    动画原理——曲线
    动画原理——绘画API
  • 原文地址:https://www.cnblogs.com/vman/p/5699320.html
Copyright © 2011-2022 走看看