Plone Benchmarks
I was always curious how Plone 2 performs and what hardware is necessary for a plone site. Therefore I did some benchmarks with Apache Bench (ap2).
Test configuration:
I simply added a default plone site to my Zope root instance. Then I benchmarked it from a remote system (100Mbit Ethernet connection) with Apache Bench 2 (ab2) like this: "ab2 -n 100 http://plone-url". I tested it with zope debug-mode on and off, moreover also with simultaneous requests. Next I removed various portlets and benchmarked it again.Conclusion:
The most CPU-Hungry Plone elements are the calendar and the navigation portlets. Removing these two double the speed of a plone site. Enabling/disabling debugging has no significant performance impact.System specifications:
CPU: Intel(R) Pentium(R) 4 CPU 2.80GHz, 512kb CacheRAM: 1GB ECC CL2.5
Mainboard: Gigabyte GA8KNXP
Harddisk: 2* WD-Raptor 36GB, Software RAID-0
OS: SuSE Linux 9.1, kernel version 2.6.4-54.5-default
Python: Python 2.3.3 [GCC 3.3.3 (SuSE Linux)]
Zope: 2.7.2
Plone: 2.0.4
Result 1: Debug on, Concurrent Queries: 1, Zope Threads: 2
Server Software: Zope/(unreleasedServer Hostname: violin.qwer.tk
Server Port: 9081
Document Path: /test/
Document Length: 25859 bytes
Concurrency Level: 1
Time taken for tests: 4.182808 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.78 [#/sec] (mean)
Time per request: 209.140 [ms] (mean)
Time per request: 209.140 [ms] (mean, across all concurrent requests)
Transfer rate: 121.93 [Kbytes/sec] received
Result 2: Debug on, Concurrent Queries: 5, Zope Threads: 2
Concurrency Level: 5Time taken for tests: 4.545807 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.40 [#/sec] (mean)
Time per request: 1136.452 [ms] (mean)
Time per request: 227.290 [ms] (mean, across all concurrent requests)
Transfer rate: 112.19 [Kbytes/sec] received
Result 3: Debug on, Concurrent Queries: 5, Zope Threads: 10
Concurrency Level: 5Time taken for tests: 4.553236 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.39 [#/sec] (mean)
Time per request: 1138.309 [ms] (mean)
Time per request: 227.662 [ms] (mean, across all concurrent requests)
Transfer rate: 112.01 [Kbytes/sec] received
Result 4: Debug off, Concurrent Queries: 1, Zope Threads: 2
Concurrency Level: 1Time taken for tests: 4.179624 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.79 [#/sec] (mean)
Time per request: 208.981 [ms] (mean)
Time per request: 208.981 [ms] (mean, across all concurrent requests)
Transfer rate: 122.02 [Kbytes/sec] received
Result 5: Debug off, Concurrent Queries: 5, Zope Threads: 2
Concurrency Level: 5Time taken for tests: 4.611759 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.34 [#/sec] (mean)
Time per request: 1152.940 [ms] (mean)
Time per request: 230.588 [ms] (mean, across all concurrent requests)
Transfer rate: 110.59 [Kbytes/sec] received
Result 6: Debug off, Concurrent Queries: 5, Zope Threads: 10
Concurrency Level: 5Time taken for tests: 4.585260 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 523240 bytes
HTML transferred: 517180 bytes
Requests per second: 4.36 [#/sec] (mean)
Time per request: 1146.315 [ms] (mean)
Time per request: 229.263 [ms] (mean, across all concurrent requests)
Transfer rate: 111.23 [Kbytes/sec] received
Result 7: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login"
Concurrency Level: 1Time taken for tests: 3.974289 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 478060 bytes
HTML transferred: 472000 bytes
Requests per second: 5.03 [#/sec] (mean)
Time per request: 198.714 [ms] (mean)
Time per request: 198.714 [ms] (mean, across all concurrent requests)
Transfer rate: 117.25 [Kbytes/sec] received
Result 8: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent"
Concurrency Level: 1Time taken for tests: 3.943892 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 477020 bytes
HTML transferred: 470960 bytes
Requests per second: 5.07 [#/sec] (mean)
Time per request: 197.195 [ms] (mean)
Time per request: 197.195 [ms] (mean, across all concurrent requests)
Transfer rate: 117.90 [Kbytes/sec] received
Result 9: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related"
Concurrency Level: 1Time taken for tests: 3.879537 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 475980 bytes
HTML transferred: 469920 bytes
Requests per second: 5.16 [#/sec] (mean)
Time per request: 193.977 [ms] (mean)
Time per request: 193.977 [ms] (mean, across all concurrent requests)
Transfer rate: 119.60 [Kbytes/sec] received
Result 10: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related,review"
Concurrency Level: 1Time taken for tests: 3.836532 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 474960 bytes
HTML transferred: 468900 bytes
Requests per second: 5.21 [#/sec] (mean)
Time per request: 191.827 [ms] (mean)
Time per request: 191.827 [ms] (mean, across all concurrent requests)
Transfer rate: 120.68 [Kbytes/sec] received
Result 11: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related,review,news"
Concurrency Level: 1Time taken for tests: 3.768465 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 473940 bytes
HTML transferred: 467880 bytes
Requests per second: 5.31 [#/sec] (mean)
Time per request: 188.423 [ms] (mean)
Time per request: 188.423 [ms] (mean, across all concurrent requests)
Transfer rate: 122.60 [Kbytes/sec] received
Result 12: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related,review,news,events"
Concurrency Level: 1Time taken for tests: 3.688465 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 472920 bytes
HTML transferred: 466860 bytes
Requests per second: 5.42 [#/sec] (mean)
Time per request: 184.423 [ms] (mean)
Time per request: 184.423 [ms] (mean, across all concurrent requests)
Transfer rate: 124.98 [Kbytes/sec] received
Result 13: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related,review,news,events,calendar"
Concurrency Level: 1Time taken for tests: 2.540035 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 300760 bytes
HTML transferred: 294700 bytes
Requests per second: 7.87 [#/sec] (mean)
Time per request: 127.002 [ms] (mean)
Time per request: 127.002 [ms] (mean, across all concurrent requests)
Transfer rate: 115.35 [Kbytes/sec] received
Result 14: Debug off, CQ: 1, ZT: 10, Portlets-removed: "login, recent,related,review,news,events,calendar, navigation,(no portlets)"
Concurrency Level: 1Time taken for tests: 2.187942 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 277800 bytes
HTML transferred: 271740 bytes
Requests per second: 9.14 [#/sec] (mean)
Time per request: 109.397 [ms] (mean)
Time per request: 109.397 [ms] (mean, across all concurrent requests)
Transfer rate: 123.86 [Kbytes/sec] received
Result 15: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions"
Concurrency Level: 1Time taken for tests: 2.119815 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 268380 bytes
HTML transferred: 262320 bytes
Requests per second: 9.43 [#/sec] (mean)
Time per request: 105.991 [ms] (mean)
Time per request: 105.991 [ms] (mean, across all concurrent requests)
Transfer rate: 123.60 [Kbytes/sec] received
Result 16: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch"
Concurrency Level: 1Time taken for tests: 2.59306 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 257480 bytes
HTML transferred: 251420 bytes
Requests per second: 9.71 [#/sec] (mean)
Time per request: 102.965 [ms] (mean)
Time per request: 102.965 [ms] (mean, across all concurrent requests)
Transfer rate: 121.89 [Kbytes/sec] received
Result 17: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch,portal_logo"
Concurrency Level: 1Time taken for tests: 2.33978 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 255520 bytes
HTML transferred: 249460 bytes
Requests per second: 9.83 [#/sec] (mean)
Time per request: 101.699 [ms] (mean)
Time per request: 101.699 [ms] (mean, across all concurrent requests)
Transfer rate: 122.42 [Kbytes/sec] received
Result 18: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch,portal_logo,skin_tabs"
Concurrency Level: 1Time taken for tests: 2.21965 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 254480 bytes
HTML transferred: 248420 bytes
Requests per second: 9.89 [#/sec] (mean)
Time per request: 101.098 [ms] (mean)
Time per request: 101.098 [ms] (mean, across all concurrent requests)
Transfer rate: 122.65 [Kbytes/sec] received
Result 19: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch,portal_logo,skin_tabs,portal_tabs"
Concurrency Level: 1Time taken for tests: 1.907185 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 241580 bytes
HTML transferred: 235520 bytes
Requests per second: 10.49 [#/sec] (mean)
Time per request: 95.359 [ms] (mean)
Time per request: 95.359 [ms] (mean, across all concurrent requests)
Transfer rate: 123.22 [Kbytes/sec] received
Result 20: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch,portal_logo,skin_tabs,portal_tabs,personal_bar"
Concurrency Level: 1Time taken for tests: 1.808183 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 230860 bytes
HTML transferred: 224800 bytes
Requests per second: 11.06 [#/sec] (mean)
Time per request: 90.409 [ms] (mean)
Time per request: 90.409 [ms] (mean, across all concurrent requests)
Transfer rate: 124.43 [Kbytes/sec] received
Result 21: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "site-actions,quicksearch,portal_logo,skin_tabs,portal_tabs,personal_bar,breadcrumbs"
Concurrency Level: 1Time taken for tests: 1.719888 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 228780 bytes
HTML transferred: 222720 bytes
Requests per second: 11.63 [#/sec] (mean)
Time per request: 85.994 [ms] (mean)
Time per request: 85.994 [ms] (mean, across all concurrent requests)
Transfer rate: 129.66 [Kbytes/sec] received
Result 22: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,"
Concurrency Level: 1Time taken for tests: 1.710357 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 225520 bytes
HTML transferred: 219460 bytes
Requests per second: 11.69 [#/sec] (mean)
Time per request: 85.518 [ms] (mean)
Time per request: 85.518 [ms] (mean, across all concurrent requests)
Transfer rate: 128.63 [Kbytes/sec] received
Result 23: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,left column, right column"
Concurrency Level: 1Time taken for tests: 1.715068 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 219640 bytes
HTML transferred: 213580 bytes
Requests per second: 11.66 [#/sec] (mean)
Time per request: 85.753 [ms] (mean)
Time per request: 85.753 [ms] (mean, across all concurrent requests)
Transfer rate: 124.78 [Kbytes/sec] received
Result 23: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,left column, right column,footer"
Concurrency Level: 1Time taken for tests: 1.661304 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 214140 bytes
HTML transferred: 208080 bytes
Requests per second: 12.04 [#/sec] (mean)
Time per request: 83.065 [ms] (mean)
Time per request: 83.065 [ms] (mean, across all concurrent requests)
Transfer rate: 125.80 [Kbytes/sec] received
Result 24: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,left column, right column,footer,colophon"
Concurrency Level: 1Time taken for tests: 1.560405 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 165520 bytes
HTML transferred: 159480 bytes
Requests per second: 12.82 [#/sec] (mean)
Time per request: 78.020 [ms] (mean)
Time per request: 78.020 [ms] (mean, across all concurrent requests)
Transfer rate: 103.18 [Kbytes/sec] received
Result 25: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,left column, right column,footer,colophon,if-border"
Concurrency Level: 1Time taken for tests: 1.559381 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 165160 bytes
HTML transferred: 159120 bytes
Requests per second: 12.83 [#/sec] (mean)
Time per request: 77.969 [ms] (mean)
Time per request: 77.969 [ms] (mean, across all concurrent requests)
Transfer rate: 103.25 [Kbytes/sec] received
Result 26: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole portal-top,left column, right column,footer,colophon,if-border,status,sub"
Concurrency Level: 1Time taken for tests: 1.496546 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 162640 bytes
HTML transferred: 156600 bytes
Requests per second: 13.36 [#/sec] (mean)
Time per request: 74.827 [ms] (mean)
Time per request: 74.827 [ms] (mean, across all concurrent requests)
Transfer rate: 105.58 [Kbytes/sec] received
Result 27: Debug off, CQ: 1, ZT: 10, All Portlets removed, Plone elements removed: "whole html-body(empty page)"
Concurrency Level: 1Time taken for tests: 1.108907 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 98500 bytes
HTML transferred: 92460 bytes
Requests per second: 18.04 [#/sec] (mean)
Time per request: 55.445 [ms] (mean)
Time per request: 55.445 [ms] (mean, across all concurrent requests)
Transfer rate: 86.57 [Kbytes/sec] received
Result 28: Debug off, CQ: 1, ZT: 10, all removed except macro:master, macro:defines"
Concurrency Level: 1Time taken for tests: 0.752959 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 6320 bytes
HTML transferred: 2120 bytes
Requests per second: 26.56 [#/sec] (mean)
Time per request: 37.648 [ms] (mean)
Time per request: 37.648 [ms] (mean, across all concurrent requests)
Transfer rate: 7.97 [Kbytes/sec] received
Result 29: Debug off, CQ: 1, ZT: 10, all removed except macro:master"
Concurrency Level: 1Time taken for tests: 0.210016 seconds
Complete requests: 20
Failed requests: 0
Write errors: 0
Total transferred: 6260 bytes
HTML transferred: 2060 bytes
Requests per second: 95.23 [#/sec] (mean)
Time per request: 10.501 [ms] (mean)
Time per request: 10.501 [ms] (mean, across all concurrent requests)
Transfer rate: 28.57 [Kbytes/sec] received
For the last test, I benchmarked that Zope root site itself (Debug off, CQ:1, ZT:10):
Concurrency Level: 1Time taken for tests: 1.618079 seconds
Complete requests: 200
Failed requests: 0
Write errors: 0
Total transferred: 654000 bytes
HTML transferred: 611800 bytes
Requests per second: 123.60 [#/sec] (mean)
Time per request: 8.090 [ms] (mean)
Time per request: 8.090 [ms] (mean, across all concurrent requests)
Transfer rate: 394.29 [Kbytes/sec] received