Getting started with PostMark

Intro

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.

Installation

The PostMark can be run with phoronix-test-suite. Refer to this blog on how to install phoronix-test-suite.

The first run

When you have first run of PostMark, it will have the additional dependent packages installed automatically.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[root@vm1 phoronix-test-suite]# phoronix-test-suite benchmark postmark

Evaluating External Test Dependencies ......

The following dependencies are needed and will be installed:

- gcc
- gcc-c++
- make
- autoconf
- automake
- patch
- expat-devel
- unzip
- bzip2

This process may take several minutes.
Please enter your SUDO password below:
Password:

[...]

Installed:
autoconf.noarch 0:2.69-11.el7 automake.noarch 0:1.13.4-3.el7
expat-devel.x86_64 0:2.1.0-15.el7_9 gcc.x86_64 0:4.8.5-44.el7
gcc-c++.x86_64 0:4.8.5-44.el7 patch.x86_64 0:2.7.1-12.el7_7
unzip.x86_64 0:6.0-24.el7_9

Dependency Installed:
cpp.x86_64 0:4.8.5-44.el7
glibc-devel.x86_64 0:2.17-326.el7_9
glibc-headers.x86_64 0:2.17-326.el7_9
kernel-headers.x86_64 0:3.10.0-1160.102.1.el7
libmpc.x86_64 0:1.0.1-3.el7
libstdc++-devel.x86_64 0:4.8.5-44.el7
m4.x86_64 0:1.4.16-10.el7
mpfr.x86_64 0:3.1.1-4.el7
perl-Data-Dumper.x86_64 0:2.145-3.el7
perl-Test-Harness.noarch 0:3.28-3.el7
perl-Thread-Queue.noarch 0:3.02-2.el7

Dependency Updated:
expat.x86_64 0:2.1.0-15.el7_9 glibc.x86_64 0:2.17-326.el7_9
glibc-common.x86_64 0:2.17-326.el7_9

Complete!

Phoronix Test Suite v10.8.4

To Install: pts/postmark-1.1.2

Determining File Requirements ........................................................................................................................................................................................................
Searching Download Caches ............................................................................................................................................................................................................

1 Test To Install
1 File To Download [0.01MB]
1MB Of Disk Space Is Needed
2 Seconds Estimated Install Time

pts/postmark-1.1.2:
Test Installation 1 of 1
1 File Needed [0.01 MB]
Downloading: postmark_1.51.orig.tar.gz [0.01MB]
Downloading ......................................................................................................................................................................................................................
Approximate Install Size: 1 MB
Estimated Install Time: 2 Seconds
Installing Test @ 23:56:49
[...]

Result file location

By default, the result from benchmarking is saved under /var/lib/phoronix-test-suite.

1
2
3
4
5
6
7
8
9
10
11
12
[root@vm1 phoronix-test-suite]# ls -la /var/lib/phoronix-test-suite
total 20
drwxr-xr-x. 8 root root 167 Nov 14 03:07 .
drwxr-xr-x. 34 root root 4096 Nov 13 23:31 ..
-rw-------. 1 root root 8290 Nov 14 03:07 core.pt2so
-rw-r--r--. 1 root root 979 Nov 14 03:07 graph-config.json
drwxr-xr-x. 3 root root 17 Nov 13 23:32 installed-tests
drwxr-xr-x. 2 root root 6 Nov 13 23:31 modules
drwxr-xr-x. 2 root root 6 Nov 13 23:31 modules-data
drwxr-xr-x. 6 root root 55 Nov 13 23:31 test-profiles
drwxr-xr-x. 3 root root 38 Nov 13 23:57 test-results
drwxr-xr-x. 4 root root 30 Nov 13 23:31 test-suites

This can be modified by editing /etc/phoronix-test-suite.xml

1
2
[root@vm1 phoronix-test-suite]# vim /etc/phoronix-test-suite.xml
<ResultsDirectory>/root/phoronix-test-suite/test-results/</ResultsDirectory>

Batch mode

If you don’t want to answer the prompted questions during the test execution, you can setup batch mode before test execution.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@vm1 phoronix-test-suite]# phoronix-test-suite batch-setup

These are the default configuration options for when running the Phoronix Test Suite in a batch mode (i.e. running phoronix-test-suite batch-benchmark universe). Running in a batch mode is designed to be as autonomous as possible, except for where you'd like any end-user interaction.

Save test results when in batch mode (Y/n): y
Open the web browser automatically when in batch mode (y/N): n
Auto upload the results to OpenBenchmarking.org (Y/n): n
Prompt for test identifier (Y/n): n
Prompt for test description (Y/n): n
Prompt for saved results file-name (Y/n): n
Run all test options (Y/n): n

Batch settings saved.

After setting up batch mode, you can run the test as below.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
[root@vm1 phoronix-test-suite]#  phoronix-test-suite batch-benchmark pts/postmark

Evaluating External Test Dependencies ......

Phoronix Test Suite v10.8.4

Installed: pts/postmark-1.1.2

System Information

PROCESSOR: 2 x Intel Xeon Gold 5317 @ 3.60GHz
Core Count: 24
Thread Count: 48
Extensions: SSE 4.2
+ AVX512_VNNI
+ AVX512CD
+ AVX2
+ AVX
+ RDRAND
+ FSGSBASE
Cache Size: 18 MB
Microcode: 0xd000390
Core Family: Ice Lake
Scaling Driver: acpi-cpufreq conservative (Boost: Enabled)

GRAPHICS: ASPEED
Screen: 1024x768

MOTHERBOARD: Supermicro X12DDW-A6 v1.01
BIOS Version: 1.5
Chipset: Intel Device 0998
Network: 2 x Mellanox MT27800 + 4 x Intel I350 + 2 x Mellanox MT2892

MEMORY: 8 x 64 GB DDR4-2933MT/s Samsung M393A8G40BB4-CWE

DISK: 4 x 1600GB Micron_7450_MTFDKCC1T6TFS + 6 x 1920GB Micron_5400_MTFD
File-System: xfs
Mount Options: attr2 inode64 logbsize=32k logbufs=8 noquota relatime rw seclabel
Disk Scheduler: NONE
Disk Details: Block Size: 4096

OPERATING SYSTEM: CentOS Linux 7
Kernel: 5.7.12-1.el7.elrepo.x86_64 (x86_64)
Compiler: GCC 4.8.5 20150623
Security: SELinux
+ itlb_multihit: Not affected
+ l1tf: Not affected
+ mds: Not affected
+ meltdown: Not affected
+ spec_store_bypass: Mitigation of SSB disabled via prctl and seccomp
+ spectre_v1: Mitigation of usercopy/swapgs barriers and __user pointer sanitization
+ spectre_v2: Mitigation of Enhanced IBRS IBPB: conditional RSB filling
+ srbds: Not affected
+ tsx_async_abort: Not affected

PostMark 1.51:
pts/postmark-1.1.2
Test 1 of 1
Estimated Trial Run Count: 3
Estimated Time To Completion: 3 Minutes [01:15 UTC]
Started Run 1 @ 01:13:06
Started Run 2 @ 01:14:02
Started Run 3 @ 01:14:58

Disk Transaction Performance:
4901
4807
4901

Average: 4870 TPS
Deviation: 1.11%

Compare multiple runs

In the case you need to tweak some settings and run it again, and you want to compare the results for multipe runs. You can use the phoronix-test-suite merge-results command.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@vm1 phoronix-test-suite]# ls -ltr test-results/
total 0
drwxr-xr-x. 5 root root 88 Nov 14 01:15 2023-11-14-0113
drwxr-xr-x. 5 root root 88 Nov 14 01:25 2023-11-14-0122

[root@vm1 phoronix-test-suite]# phoronix-test-suite merge-results 2023-11-14-0113 2023-11-14-0122

Merged Results Saved To: /home/wali/phoronix-test-suite/test-results/merge-7632/composite.xml

Do you want to view the test results? (Y/n): n

[root@vm1 phoronix-test-suite]# ls -ltr test-results/
total 0
drwxr-xr-x. 5 root root 88 Nov 14 01:15 2023-11-14-0113
drwxr-xr-x. 5 root root 88 Nov 14 01:25 2023-11-14-0122
drwxr-xr-x. 2 root root 27 Nov 14 02:11 merge-7789

Export result

The test result can be exported to the following format.

1
2
3
4
5
6
7
8
9
[root@vm1 phoronix-test-suite]# phoronix-test-suite -h
[...]
result-file-raw-to-csv [Test Result]
result-file-to-csv [Test Result]
result-file-to-html [Test Result]
result-file-to-json [Test Result]
result-file-to-pdf [Test Result]
result-file-to-suite [Test Result]
result-file-to-text [Test Result]

To export it as html, you can run the following command.

1
[root@vm1 phoronix-test-suite]# phoronix-test-suite result-file-to-html merge-7789

Image
Image

Reference