Personal tools
You are here: Home H. Himmelbauer Miscellaneous Plone Benchmarks
Document Actions

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 Cache
RAM: 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/(unreleased
Server 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:      5
Time 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:      5
Time 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:      1
Time 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:      5
Time 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:      5
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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:      1
Time 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