getc_putc(8) System Manager's Manual getc_putc(8)NAME
getc_putc - program to test hard drive performance.
getc_putc [-d dir] [-s size(KiB)] [-m machine-name] [-u uid-to-use:gid-to-use] [-g gid-to-use]
This manual page documents briefly the getc_putc, program.
This is a simple adjunct to the bonnie++ benchmark. It is used to test various ways of doing IO one byte at a time, usually you don't need
to do enough of this for it to be a performance issue for it to matter much which way you do it. But sometimes it's necessary (for example
whan parsing IO from a terminal and then launching another process which will take over all IO, such as a simple shell).
The real benefits of this are to help settle some arguements about the performance of such things, and to educate novices about how bad
per-byte IO really is.
For getc_putc every option is of the form of a hyphen followed by a letter and then the next parameter contains the value.
-d the directory to use for the tests.
-s the size of the file for byte IO performance measured in kilobytes. NB You can specify the size in mega-bytes if you add 'm' to the
end of the number.
The default for this test is to test with a 40MiB file. Of the file only 1/32 of it will be used for write() and read() system
calls (anything else takes too long), and only 1/4 of it will be used for locked getc() and putc().
-m name of the machine - for display purposes only.
-u user-id to use. When running as root specify the UID to use for the tests. It is not recommended to use root, so if you really
want to run as root then use -u root. Also if you want to specify the group to run as then use the user:group format. If you spec-
ify a user by name but no group then the primary group of that user will be chosen. If you specify a user by number and no group
then the group will be nogroup.
-g group-id to use. Same as using :group for the -u parameter, just a different way to specify it for compatibility with other pro-
-q quiet mode. If specified then some of the extra informational messages will be suppressed. Also the csv data will be the only output
on standard out and the plain text data will be on standard error. This means you can run getc_putc -q >> file.csv to record your
The primary output is plain-text in 80 columns which is designed to fit well when pasted into email and which will work well with Braille
The second type of output is CSV (Comma Seperated Values). This can easily be imported into any spread-sheet or database program.
For every test the result is a speed in KiB/s. I do not display the CPU time because it presumably is 99% of the power of a single CPU (or
something very close to that).
This program, it's manual page, and the Debian package were written by Russell Coker <firstname.lastname@example.org>.
The documentation, the Perl scripts, and all the code for testing the creation of thousands of files was written by Russell Coker, but the
entire package is under joint copyright with Tim Bray.
Handles SIGINT and does a cleanup (which may take some time), a second SIGINT or a SIGQUIT will cause it to immidiately die.
SIGXCPU and SIGXFSZ act like SIGINT.
The source is available from http://www.coker.com.au/bonnie++ .
See http://etbe.coker.com.au/category/benchmark for further information.
Check Out this Related Man Page
bon_csv2html(1) General Commands Manual bon_csv2html(1)NAME
bon_csv2html program to convert CSV format Bonnie++ data to a HTML form using tables suitable for display on a web page. NB Lynx can't dis-
play this properly, and due to the size it probably requires 1024x768 monitor to display properly.
bon_csv2txt program to convert CSV format Bonnie++ data to plain-text format suitable for pasting into an email or reading on a Braille
They take CSV format (comma-delimited spreadsheet files AKA Comma Seperated Values in MS land) data on standard input and produce HTML or
plain text on standard output respectively.
This is a list of the fields used in the CSV files format version 2. Format version 1 was the type used in Bonnie++ < 1.90. Before each
field I list the field number as well as the name given in the heading
Version of the output format in use (1.96)
2 name Machine Name
The number of copies of each operation to be run at the same time
4 seed Random number seed
Size in megs for the IO tests
Size of chunks in bytes
Results for writing a character at a time K/s,%CPU
Results for writing a block at a time K/s,%CPU
Results for reading and re-writing a block at a time K/s,%CPU
Results for reading a character at a time K/s,%CPU
Results for reading a block at a time K/s,%CPU
Results for the seek test seeks/s,%CPU
Number of files for file-creation tests (units of 1024 files)
The maximum size of files for file-creation tests. Or the type of files for links.
The minimum size of files for file-creation tests.
The number of directories for creation of files in multiple directories.
The size of blocks for writing multiple files.
Rate of creating files sequentially files/s,%CPU
Rate of reading/stating files sequentially files/s,%CPU
Rate of deleting files sequentially files/s,%CPU
Rate of creating files in random order files/s,%CPU
Rate of deleting files in random order files/s,%CPU
Rate of deleting files in random order files/s,%CPU
Latency (maximum amount of time for a single operation) for putc, put_block, and reqrite
Latency for getc, get_block, and seeks
Latency for seq_create, seq_stat, and seq_del
Latency for ran_create, ran_stat, and ran_del
A string that starts with '#' is a comment.
These programs were written by Russell Coker <email@example.com>. May be freely used and distributed without restriction.