Freebsd amd64 vs apple xserve g5 perf benchmark in zope
From Chaos
Contents |
Summary
Here's some "quick and dirty" benchmarks, outlining the performance of FreeBSD 5.3-AMD64, and a Dual Processor G5 machine running OSX 10.3.8. I am not purporting this to be the "be-all and end-all" of Zope performance benchmarks, but it should give you some idea of the speed differences between the 2 architectures.
System Specifications
Opteron System
- 2 x 1.6GHz Opteron CPU's
- 2GB of PC2700 ECC RAM
- 2 x 146GB U320 SCSI Drives (Software RAID1 via gvinum)
- FreeBSD 5.3-RELEASE-p5 AMD64 (SMP)
Apple G5 Machine
- 2 x 2.3GHz IBM PPC 64Bit CPU's
- 2GB of PC2700 ECC RAM
- 2 x 400GB SATA-150 HardDrives (Software RAID1 via DiskUtility)
- OSX 10.3.8 (latest updates)
Test Machine
- 1 x Intel Pentium III 800MHz
- 1GB PC133 SDRAM
- 2 x 18GB U160 SCSI Drives (No RAID)
- Fedora Core 3 (Linux version 2.6.10-1.770_FC3)
Benchmarks
G5 Machine (localhost)
ZServer Thread Concurrency 4
zope1:~ root# uname -a
Darwin zope1 7.8.0 Darwin Kernel Version 7.8.0: Wed Dec 22 14:26:17 PST 2004; root:xnu/xnu-517.11.1.obj~1/RELEASE_PPC Power Macintosh powerpc
zope1:~ root# ab -c 20 -n 10000 http://127.0.0.1:8100/Plone/labcollector/base_view
Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 172.16.45.197
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 56.518 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 10000
Total transferred: 4990000 bytes
HTML transferred: 0 bytes
Requests per second: 176.93 [#/sec] (mean)
Time per request: 113.04 [ms] (mean)
Time per request: 5.65 [ms] (mean, across all concurrent requests)
Transfer rate: 88.29 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 9
Processing: 25 112 12.8 112 350
Waiting: 24 112 12.8 112 349
Total: 25 112 12.8 112 350
Percentage of the requests served within a certain time (ms)
50% 112
66% 113
75% 114
80% 115
90% 118
95% 119
98% 123
99% 147
100% 350 (last request)
ZServer Thread Concurrency 10
zope1:~ root# uname -a
Darwin zope1 7.8.0 Darwin Kernel Version 7.8.0: Wed Dec 22 14:26:17 PST 2004; root:xnu/xnu-517.11.1.obj~1/RELEASE_PPC Power Macintosh powerpc
zope1:~ root# ab -c 20 -n 10000 http://127.0.0.1:8100/Plone/labcollector/base_view
Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 127.0.0.1
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 56.416 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 10000
Total transferred: 4910000 bytes
HTML transferred: 0 bytes
Requests per second: 177.25 [#/sec] (mean)
Time per request: 112.83 [ms] (mean)
Time per request: 5.64 [ms] (mean, across all concurrent requests)
Transfer rate: 87.03 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 9
Processing: 25 112 6.9 112 185
Waiting: 24 112 7.0 112 185
Total: 25 112 6.9 112 185
Percentage of the requests served within a certain time (ms)
50% 112
66% 113
75% 114
80% 115
90% 117
95% 119
98% 121
99% 130
100% 185 (last request)
G5 Machine (Test Machine)
ZServer Thread Concurrency 4
[root@weatherengine ~]# uname -a
Linux weatherengine 2.6.10-1.770_FC3 #1 Thu Feb 24 14:00:06 EST 2005 i686 i686 i386 GNU/Linux
[root@weatherengine ~]# ab -c 20 -n 10000 http://172.16.45.197:8100/Plone/labcollector/base_view
Benchmarking 172.16.45.197 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 172.16.45.197
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 55.538452 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10001
Total transferred: 4990499 bytes
HTML transferred: 0 bytes
Requests per second: 180.06 [#/sec] (mean)
Time per request: 111.077 [ms] (mean)
Time per request: 5.554 [ms] (mean, across all concurrent requests)
Transfer rate: 87.74 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 1.0 0 9
Processing: 23 110 7.5 110 193
Waiting: 18 102 7.1 103 169
Total: 23 110 7.4 110 193
Percentage of the requests served within a certain time (ms)
50% 110
66% 111
75% 111
80% 112
90% 114
95% 115
98% 119
99% 133
100% 193 (longest request)
ZServer Thread Concurrency 10
[root@weatherengine ~]# uname -a
Linux weatherengine 2.6.10-1.770_FC3 #1 Thu Feb 24 14:00:06 EST 2005 i686 i686 i386 GNU/Linux
[root@weatherengine ~]# ab -c 20 -n 10000 http://172.16.45.197:8100/Plone/labcollector/base_view
Benchmarking 172.16.45.197 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 172.16.45.197
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 56.379100 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10000
Total transferred: 4990000 bytes
HTML transferred: 0 bytes
Requests per second: 177.37 [#/sec] (mean)
Time per request: 112.758 [ms] (mean)
Time per request: 5.638 [ms] (mean, across all concurrent requests)
Transfer rate: 86.43 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 4
Processing: 39 112 7.5 112 205
Waiting: 33 104 7.1 105 164
Total: 39 112 7.5 112 205
Percentage of the requests served within a certain time (ms)
50% 112
66% 112
75% 113
80% 113
90% 115
95% 116
98% 120
99% 141
100% 205 (longest request)
Opteron Machine (localhost)
ZServer Thread Concurrency 4
root@fbsd2.amd64:~# uname -a
FreeBSD fbsd2.amd64.ceriumlabs.com 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #1: Fri Mar 18 14:56:59 CST 2005 administrator@fbsd2.amd64.ceriumlabs.com:/usr/obj/usr/src/sys/SMP amd64
root@fbsd2.amd64:~# ab -c 20 -n 10000 http://127.0.0.1:8100/Plone/labcollector/base_view
Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 127.0.0.1
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 58.955 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 10001
Total transferred: 4930493 bytes
HTML transferred: 0 bytes
Requests per second: 169.62 [#/sec] (mean)
Time per request: 117.91 [ms] (mean)
Time per request: 5.90 [ms] (mean, across all concurrent requests)
Transfer rate: 83.63 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 0
Processing: 25 117 5.0 118 137
Waiting: 24 117 5.0 117 136
Total: 25 117 5.0 118 137
Percentage of the requests served within a certain time (ms)
50% 118
66% 120
75% 121
80% 122
90% 124
95% 125
98% 127
99% 128
100% 137 (last request)
<pre>
====ZServer Thread Concurrency 10====
<pre>
root@fbsd2.amd64:~# uname -a
FreeBSD fbsd2.amd64.ceriumlabs.com 5.3-RELEASE-p5 FreeBSD 5.3-RELEASE-p5 #1: Fri Mar 18 14:56:59 CST 2005 administrator@fbsd2.amd64.ceriumlabs.com:/usr/obj/usr/src/sys/SMP amd64
root@fbsd2.amd64:~# ab -c 20 -n 10000 http://127.0.0.1:8100/Plone/labcollector/base_view
Benchmarking 127.0.0.1 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 127.0.0.1
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 59.305 seconds
Complete requests: 10000
Failed requests: 0
Broken pipe errors: 0
Non-2xx responses: 10000
Total transferred: 4930000 bytes
HTML transferred: 0 bytes
Requests per second: 168.62 [#/sec] (mean)
Time per request: 118.61 [ms] (mean)
Time per request: 5.93 [ms] (mean, across all concurrent requests)
Transfer rate: 83.13 [Kbytes/sec] received
Connnection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 43 118 4.1 118 133
Waiting: 42 118 4.1 118 133
Total: 43 118 4.1 118 133
ERROR: The median and mean for the initial connection time are more than twice the standard
deviation apart. These results are NOT reliable.
Percentage of the requests served within a certain time (ms)
50% 118
66% 120
75% 121
80% 121
90% 123
95% 124
98% 126
99% 127
100% 133 (last request)
Opteron Machine (Test Machine)
ZServer Thread Concurrency 4
[root@weatherengine ~]# uname -a
Linux weatherengine 2.6.10-1.770_FC3 #1 Thu Feb 24 14:00:06 EST 2005 i686 i686 i386 GNU/Linux
[root@weatherengine ~]# ab -c 20 -n 10000 http://172.16.45.198:8100/Plone/labcollector/base_view
Benchmarking 172.16.45.198 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 172.16.45.198
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 62.124447 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10001
Total transferred: 5010501 bytes
HTML transferred: 0 bytes
Requests per second: 160.97 [#/sec] (mean)
Time per request: 124.249 [ms] (mean)
Time per request: 6.212 [ms] (mean, across all concurrent requests)
Transfer rate: 78.76 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 4
Processing: 54 123 4.9 124 143
Waiting: 49 115 5.0 116 133
Total: 54 123 4.9 124 143
Percentage of the requests served within a certain time (ms)
50% 124
66% 125
75% 126
80% 127
90% 129
95% 131
98% 133
99% 134
100% 143 (longest request)
ZServer Thread Concurrency 10
[root@weatherengine ~]# uname -a
Linux weatherengine 2.6.10-1.770_FC3 #1 Thu Feb 24 14:00:06 EST 2005 i686 i686 i386 GNU/Linux
[root@weatherengine ~]# ab -c 20 -n 10000 http://172.16.45.198:8100/Plone/labcollector/base_view
Benchmarking 172.16.45.198 (be patient)
Completed 1000 requests
Completed 2000 requests
Completed 3000 requests
Completed 4000 requests
Completed 5000 requests
Completed 6000 requests
Completed 7000 requests
Completed 8000 requests
Completed 9000 requests
Finished 10000 requests
Server Software: Zope/(Zope
Server Hostname: 172.16.45.198
Server Port: 8100
Document Path: /Plone/labcollector/base_view
Document Length: 0 bytes
Concurrency Level: 20
Time taken for tests: 63.487222 seconds
Complete requests: 10000
Failed requests: 0
Write errors: 0
Non-2xx responses: 10000
Total transferred: 5010000 bytes
HTML transferred: 0 bytes
Requests per second: 157.51 [#/sec] (mean)
Time per request: 126.974 [ms] (mean)
Time per request: 6.349 [ms] (mean, across all concurrent requests)
Transfer rate: 77.05 [Kbytes/sec] received
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.1 0 3
Processing: 54 126 4.6 126 146
Waiting: 49 118 4.7 119 134
Total: 54 126 4.6 126 146
Percentage of the requests served within a certain time (ms)
50% 126
66% 128
75% 129
80% 129
90% 131
95% 133
98% 135
99% 136
100% 146 (longest request)
Conclusion
| Test Host | Machine | ZServer Thread Concurrency | Requests / Second | Time / Request |
| Localhost | G5 | 4 | 176.93 | 113.040 |
| Localhost | G5 | 10 | 177.25 | 112.830 |
| Test Machine | G5 | 4 | 180.06 | 111.077 |
| Test Machine | G5 | 10 | 177.37 | 112.758 |
| Localhost | Opteron | 4 | 169.62 | 117.910 |
| Localhost | Opteron | 10 | 168.62 | 118.610 |
| Test Machine | Opteron | 4 | 160.97 | 124.249 |
| Test Machine | Opteron | 10 | 157.51 | 126.974 |
As we can see, the G5 machine beat out the Opteron on pretty much every test. However, this test is NOT 100% accurate. This test is without any special Zope and/or OS tweaks (aside from the Thread Concurrency settings in zope.conf). This also does not take into account the fact that the G5 was running 2 x 2.3GHz processors, when the Opteron was only running 2 x 1.6GHz processors (with an overall difference of 1.4GHz). Based on what I see here, my guess is that the Opteron would beat the G5 if it was running the same processor speeds, but it wouldn't be by much.
