菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
185
0

mongoperf用法

原创
05/13 14:22
阅读数 61688

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

发表评论

0/200
185 点赞
0 评论
收藏