- Reference >
- MongoDB Package Components >
mongoperf
mongoperf
¶
On this page
Synopsis¶
mongoperf
is a utility to check disk I/O performance
independently of MongoDB.
It times tests of random disk I/O and presents the results. You can
use mongoperf
for any case apart from MongoDB. The
mmf
true
mode is completely generic. In
that mode it is somewhat analogous to tools such as bonnie++ (albeit mongoperf is
simpler).
Specify options to mongoperf
using a JavaScript document.
Run mongoperf
from the system command line, not the mongo
shell.
See also
Options¶
-
mongoperf
¶
-
mongoperf
¶
-
--help
,
-h
¶
Returns information on the options and use of
mongoperf
.
-
<jsonconfig>
¶
mongoperf
accepts configuration options in the form of a file that holds a JSON document. You must stream the content of this file intomongoperf
, as in the following operation:mongoperf < config
In this example
config
is the name of a file that holds a JSON document that resembles the following example:{ nThreads:<n>, fileSizeMB:<n>, sleepMicros:<n>, mmf:<bool>, r:<bool>, w:<bool>, recSizeKB:<n>, syncDelay:<n> }
See the Configuration Fields section for documentation of each of these fields.
Configuration Fields¶
-
mongoperf.
nThreads
¶ Type: Integer.
Default: 1
Defines the number of threads
mongoperf
will use in the test. To saturate your system’s storage system you will need multiple threads. Consider settingnThreads
to16
.
-
mongoperf.
fileSizeMB
¶ Type: Integer.
Default: 1 megabyte (i.e. 10242 bytes)
Test file size.
-
mongoperf.
sleepMicros
¶ Type: Integer.
Default: 0
mongoperf
will pause for the number of specifiedsleepMicros
divided by thenThreads
between each operation.
-
mongoperf.
mmf
¶ Type: Boolean.
Default:
false
Set
mmf
totrue
to use memory mapped files for the tests.Generally:
- when
mmf
isfalse
,mongoperf
tests direct, physical, I/O, without caching. Use a large file size to test heavy random I/O load and to avoid I/O coalescing. - when
mmf
istrue
,mongoperf
runs tests of the caching system, and can use normal file system cache. Usemmf
in this mode to test file system cache behavior with memory mapped files.
- when
-
mongoperf.
r
¶ Type: Boolean.
Default:
false
Set
r
totrue
to perform reads as part of the tests.Either
r
orw
must betrue
.
-
mongoperf.
w
¶ Type: Boolean.
Default:
false
Set
w
totrue
to perform writes as part of the tests.Either
r
orw
must betrue
.
-
mongoperf.
recSizeKB
¶ New in version 2.4.
Type: Integer.
Default: 4 kb
The size of each write operation.
-
mongoperf.
syncDelay
¶ Type: Integer.
Default: 0
Seconds between disk flushes.
mongoperf.syncDelay
is similar to--syncdelay
formongod
.The
syncDelay
controls how frequentlymongoperf
performs an asynchronous disk flush of the memory mapped file used for testing. By default,mongod
performs this operation every 60 seconds. UsesyncDelay
to test basic system performance of this type of operation.Only use
syncDelay
in conjunction withmmf
set totrue
.The default value of
0
disables this.
Use¶
mongoperf < jsonconfigfile
Replace jsonconfigfile
with the path to the mongoperf
configuration. You may also invoke mongoperf
in the
following form:
echo "{nThreads:16,fileSizeMB:10000,r:true,w:true}" | mongoperf
In this operation:
mongoperf
tests direct physical random read and write io’s, using 16 concurrent reader threads.mongoperf
uses a 10 gigabyte test file.
Consider using iostat
, as invoked in the following example to
monitor I/O performance during the test.
iostat -xtm 1