Postmark benchmark under LFS and ext3
Postmark is a benchmark based on small file operations similar to those used on large mail servers and news servers. A Solaris white paper describes it with the following words:
Network Appliance's PostMark has become an industry-standard benchmark for small file and metadata-intensive workloads. As outlined above, it was designed to emulate Internet applications such as e-mail, netnews, and e-commerce. More detail on the benchmark can be found in PostMark: A New File System Benchmark15.
PostMark works by creating a configurable sized pool of random text files ranging in size between configurable high and low bounds. These files are continually modified. The building of the file pool allows for the production of statistics on small file creation performance. Transactions are then performed on the pool. Each transaction consists of a pair of create/delete or read/append operations. The use of randomization and the ability to parameterize the proportion of create/delete to read/append operations is used to overcome the effects of caching in various parts of the system.
We have run this benchmark twice on both LFS (with roll-forward recovery) and ext3 (with hash b-tree directories), performing five million transactions on ten thousand files. The results show that LFS is 7.5 times as fast. On the other hand, it is important to note no cleaning has been done by LFS in this experiment.
The computer used in this experiment was an AMD Athlon(tm) XP 2500+ with 256MB RAM with two SATA disks. The measured file systems always resided on a 80GB Seagate Barracuda while the rest of the system was placed on a 120GB WD.
LFS postmark session:
PostMark v1.51 : 8/14/01 pm>set location /mnt pm>set number 9999 pm>set transactions 5000000 pm>show Current configuration is: The base number of files is 9999 Transactions: 5000000 Files range between 500 bytes and 9.77 kilobytes in size Working directory: /mnt (weight=1) Block sizes are: read=512 bytes, write=512 bytes Biases are: read/append=5, create/delete=5 Using Unix buffered file I/O Random number generator seed is 42 Report format is verbose. pm>run Creating files...Done Performing transactions..........Done Deleting files...Done Time: 1007 seconds total 1006 seconds of transactions (4970 per second) Files: 2510496 created (2493 per second) Creation alone: 9999 files (9999 per second) Mixed with transactions: 2500497 files (2485 per second) 2499695 read (2484 per second) 2472080 appended (2457 per second) 2510496 deleted (2493 per second) Deletion alone: 10993 files (10993 per second) Mixed with transactions: 2499503 files (2484 per second) Data: 16307.03 megabytes read (16.19 megabytes per second) 16302.64 megabytes written (16.19 megabytes per second)
Ext3 postmark session:
PostMark v1.51 : 8/14/01 pm>set location /mnt pm>set number 9999 pm>set transactions 5000000 pm>show Current configuration is: The base number of files is 9999 Transactions: 5000000 Files range between 500 bytes and 9.77 kilobytes in size Working directory: /mnt (weight=1) Block sizes are: read=512 bytes, write=512 bytes Biases are: read/append=5, create/delete=5 Using Unix buffered file I/O Random number generator seed is 42 Report format is verbose. pm>run Creating files...Done Performing transactions..........Done Deleting files...Done Time: 7577 seconds total 7575 seconds of transactions (660 per second) Files: 2510496 created (331 per second) Creation alone: 9999 files (9999 per second) Mixed with transactions: 2500497 files (330 per second) 2499695 read (329 per second) 2472080 appended (326 per second) 2510496 deleted (331 per second) Deletion alone: 10993 files (10993 per second) Mixed with transactions: 2499503 files (329 per second) Data: 16307.03 megabytes read (2.15 megabytes per second) 16302.64 megabytes written (2.15 megabytes per second)