Sophie

Sophie

distrib > Mandriva > 2010.2 > i586 > media > contrib-release > by-pkgid > 8a287b5dce70f6839a9746cc1abaf142 > files > 16

mongo-2004.08.17-5mdv2010.0.i586.rpm


       MONGO BENCHMARK.

Mongo is a program to test linux filesystems for performance and
functionality.
The way to run a Mongo test is runing the mongo.pl script. The mongo.pl 
creates output files can be parsed by mongo_parse.pl script. 

The mongo.pl script:

#./mongo.pl opt11=val11 opt12=val12 ... RUN [opt21=val21 opt22=val22 
... RUN opt31=val31 opt32=val32 ... RUN ...] | @<file to include> 

 Required options:
FSTYPE - filesystem type (e.g. ext3)
DEV - device file name (e.g. /dev/hda9)
DIR - mount-point for the filesystem (e.g. /mnt/testfs)
FILE_SIZE - file size in bytes (e.g. 10000) this is a reiser_fract_tree()
parameter that means the range of main "uniform chunk" of distribution 
used by this function (see 
http://www.namesys.com/benchmarks/mongo_readme.html for details).
BYTES - file set size in bytes (e.g. 250000000) created by all instances
of reiser_fract_tree in one pass. 

 Other options:
MKFS - path to the executable file that creates testing filesystem (e.g.
/sbin/mkreiserfs). By default (if it is not reiserfs or ext2 mongo try to
create it by the command "mkfs.filesystem_name", so make sure it is available. 
MOUNT_OPTIONS - list of mount options separated as usual by commas 
(e.g. rw,notail).
NPROC - number of processes running simultaneuously (1 by default).
REP_COUNTER - number of passes for each mongo phase (3 by default).
SYNC - this option requires one of two strings : "on"/"off" ("off" by default).
"on" means forcing of syncing of regular files during create.
WRITE_BUFFER - read/write buffer size in bytes for mongo utilities (4096 
by default).
GAMMA - the exponent of the core file size distribution used in
mongo_fract_tree(). Its values are in [0,1] (e.g. 0.2, default value is 0.0).
JOURNAL_DEV - journal device name. This is an option only for reiserfs 
with non-standard journal support. By default mkreiserfs creates journal 
on main device DEV.
JOURNAL_SIZE - journal size in blocks including journal header (e.g. 513).
This is an option only for reiserfs with non-standard journal support. 
By default mkreiserfs creates journal of standard size 8193.
DD_MBCOUNT - size in megabytes of the large file that we want to read (write)
by "dd" program. If this option specified mongo executes two
special phases "dd_reading_largefile" and "dd_writing_largefile".


 Special options:
LOG - the name of the file where you wish to store your results that
mongo.pl writes in stdout by default. For each 'RUN' (see below)
we recommend specify its own log, as it will enable you to create 
html-table by mongo_parser.pl script.
INFO_R4 - string information the benchmarked reiser4 version about. This is
required option if FSTYPE=reiser4 is set.
 
 Mongo phases settings options  
PHASE_CREATE - setting for create phase : "on"/"off" ("on" by default).
PHASE_COPY - setting for copy phase. This option requires one of the following
values : "off"/"cp"/"list". In "cp" mode cp(1) is invoked to copy files. In
"list" mode (deafult) uses mongo_copy to copy files. See mongo_copy.c for
details.
PHASE_APPEND - setting for append phase : "on"/"off" ("on" by default).
PHASE_MODIFY - setting for modify phase : "on"/"off" ("on" by default).
PHASE_OVERWRITE - setting for overwrite phase : "on"/"off" ("on" by default).
PHASE_READ - setting for read phase. The required values are
"off"/"find"/"list". In "find" mode find(1) is used to read the files. In
"list" mode (deafult) mongo_read is used. See mongo_read.c for details.
PHASE_STATS - setting for stats phase : "on"/"off" ("on" by default).
PHASE_DELETE - setting for delete phase. This option requires one of the
following values : "off"/"rm"/"list". In "cp" mode rm(1) is used to delete
the working file set. In "list" mode (deafult) mongo_delete is used. See
mongo_delete.c for details.

 Special required command:
RUN - starts the test with the options specified before. The parameters
specified before the "RUN" keep their value, so if you want to restart, 
just respecify the options you want to change and then use one more "RUN". 
And so on...
 
For example:
./mongo.pl LOG=/tmp/logfile1 file_size=10000 bytes=10000000 fstype=reiserfs
dev=/dev/hda9 dir=/mnt/testfs RUN log=/tmp/logfile2 mount_options=notail RUN
 
<File to include>
- you can place any set of options (except special ones) in one file 
and specify it instead.

For example:
./mongo.pl log=/tmp/logfile1 @mongo.opts log=/tmp/logfile2 mount_options=notail RUN
 
Be careful :
DEV=/dev/xxx - test device and all info on it will be erased.
The needed size of this device should be estimated to prevent overflow. 
Note, that if you plan to run reiserfs in "notail" mode, you may need much more than 
this. Mongo benchmark use /var/tmp directory to write temporary files, 
be sure that there is enough space for it.

The mongo_parse.pl script:

#./mongo_parser.pl <file1> [<file2> <file3>...]

<file1>, ... -  filenames of mongo.pl output files.

Creates an html-table with results and writes it in stdout. If you specify two, or 
more files, this table will present the comparative results (referred to the results of
the file1).
NOTE! Each specified file has to contain only one tree of results (for single "RUN").