Freebsd amd64 vs apple xserve g5 perf benchmark in zope

From Chaos

Jump to: navigation, search


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

Benchmark Summary
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.

Personal tools
Sponsored Links