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次。

mongoperf用法的更多相关文章

  1. 使用mongoperf评估磁盘随机IO性能

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

  2. EditText 基本用法

    title: EditText 基本用法 tags: EditText,编辑框,输入框 --- EditText介绍: EditText 在开发中也是经常用到的控件,也是一个比较必要的组件,可以说它是 ...

  3. jquery插件的用法之cookie 插件

    一.使用cookie 插件 插件官方网站下载地址:http://plugins.jquery.com/cookie/ cookie 插件的用法比较简单,直接粘贴下面代码示例: //生成一个cookie ...

  4. Java中的Socket的用法

                                   Java中的Socket的用法 Java中的Socket分为普通的Socket和NioSocket. 普通Socket的用法 Java中的 ...

  5. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法

    一.C#中MessageBox.Show用法 MessageBox.Show (String) 显示具有指定文本的消息框. 由 .NET Compact Framework 支持. MessageBo ...

  6. python enumerate 用法

    A new built-in function, enumerate() , will make certain loops a bit clearer. enumerate(thing) , whe ...

  7. [转载]Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结

    本文对Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法进行了详细的总结,需要的朋友可以参考下,希望对大家有所帮助. 详细解读Jquery各Ajax函数: ...

  8. 【JavaScript】innerHTML、innerText和outerHTML的用法区别

    用法: <div id="test">   <span style="color:red">test1</span> tes ...

  9. chattr用法

    [root@localhost tmp]# umask 0022 一.chattr用法 1.创建空文件attrtest,然后删除,提示无法删除,因为有隐藏文件 [root@localhost tmp] ...

随机推荐

  1. poj 3280 Cheapest Palindrome

    链接:http://poj.org/problem?id=3280 思路:题目给出n种m个字符,每个字符都有对应的添加和删除的代价,求出构成最小回文串的代价 dp[i][j]代表区间i到区间j成为回文 ...

  2. Linux常用命令学习4---(挂载命令mount umount、用户登陆查看和用户交互命令 w who last lastlog)

    紧接着上一篇Linux的命令行的学习:Linux学习3---(文件的压缩和解压缩命令zip unzip tar.关机和重启命令shutdown reboot……) 1.挂载命令     简介      ...

  3. Linux常用命令学习3---(文件的压缩和解压缩命令zip unzip tar、关机和重启命令shutdown reboot……)

    1.压缩和解压缩命令    常用压缩格式:.zip..gz..bz2..tar.gz..tar.bz2..rar .zip格式压缩和解压缩命令        zip 压缩文件名 源文件:压缩文件   ...

  4. vs2008所有DTE.ExecuteCommand命令

    下面列表中为我当前机器上visual studio 2008所有DTE.ExecuteCommand命令的内容: 其中:Build.开头对应“编译”菜单下命令(如:Build.RebuildSolut ...

  5. UVALive5031 Graph and Queries(Treap)

    反向操作,先求出最终状态,再反向操作. 然后就是Treap 的合并,求第K大值. #include<cstdio> #include<iostream> #include< ...

  6. tomcat组成以及工作原理

    1 - Tomcat Server的组成部分 1.1 - Server A Server element represents the entire Catalina servlet Containe ...

  7. 未能加载文件或程序集“System.Data.SQLite”或它的一个依赖。试图加载格式不正确的程序

    Go to the IIS7 Application Pool -> advanced settings and set the 32-bit application to true.

  8. iOS ReactiveCocoa简单使用笔记

    涉及对象: 两个输入框,一个按钮. 代码功能: 随时监测输入框内容的长度变化,并在输入内容不符合预设要求时,立即改变输入框背景色. 在两个输入框的内容都符合预设要求时,按钮才可用. RACSignal ...

  9. 【转】java-String中的 intern()

    转自:http://blog.sina.com.cn/s/blog_69dcd5ed0101171h.html 1. 首先String不属于8种基本数据类型,String是一个对象. 因为对象的默认值 ...

  10. [我的试题]Test of String

    1.前言 这是我出的第一套题目,话说感觉有点晚了,还是在向总安排下出的.我被安排的是字符串方面的内容,这应该相对而言是比较小众的知识点吧,但是一样的有作用的,也有很神的题目.所谓是NOIP模拟题,其实 ...