Postmark is a benchmark designed to simulate the behavior of mail servers. Postmark consists of three phases. In the first phase a pool of files are created. In the next phase four types of transactions are executed: files are created, deleted, read, and appended to. In the last phase, all files in the pool are deleted. See http://www.netapp.com/tech_library/3022.html for more information on Postmark.
Postmark is a single threaded benchmark, but Auto-pilot can automatically run several concurrent processes and analyze the results. Postmark generates a small workload by default: only 500 files are created and 500 transactions performed. Auto-pilot increases the workload to a pool of 20,000 files, and performs 200,000 transactions by default.
Several environment variables control how Postmark behaves when running under Auto-pilot that you can set in local.inc:
|BUFFERING||false||Use C library functions like
|CREATEBIAS||5||What fraction (out of 1) of create/delete operations are create. -1 turns off creation and deletion.|
|INITFILES||20000||How many files are in the initial pool.|
|MINSIZE||512||The minimum file size.|
|MAXSIZE||10240||The maximum file size.|
|MYINITFILES||$INITFILES/$THREADS||Number of initial files in this process's pool.|
|MYSUBDIRS||$SUBDIRS/$THREADS||Number of subdirectories for this process.|
|MYTRANSACTIONS||$TRANSACTIONS/$THREADS||Number of transactions this process executes.|
|POSTMARKDIR||$TESTDIR/postmark/$APTHREAD||What directory to run in.|
|READBIAS||5||What fraction (out of 10) of read/append operations are read. -1 turns off read and append.|
|READSIZE||4096||The unit (in bytes) that read operations are executed in.|
|SEED||42||The seed for random number generation.|
|THREADS||1||How many concurrent processes to run (this variable is automatically set by the Auto-pilot |
|TRANSACTIONS||200000||How many total transactions to execute.|
|WRITESIZE||4096||The unit (in bytes) that write operations are executed in.
The Postmark script generates a configuration based on these variables,
and then decrements the semaphore specified by APIPCKEY.
Decrementing this semaphore using semdec ensures that all threats
begin processing and measuring at approximately the same time. After
semdec returns, postmark is run via
Finally, the configuration and any left over files are removed.