• testing environment

  last modified November 2, 2007 by wam

I will setup a server with that configuration (roughly):

  • 2x Quadcore Intel Xeon E5335 @2GHz, 4MB Cache (=8 cores)
  • 8GB double buffered RAM
  • SAS 15krpm RAID1 HDD (reading is PRETTY fast ;)), writing via DRBD to a second node, so expect only ~50MB/s when writing
It will have anything necessary to run zope/zeo/plone. I'll provide a user-account so anyone willing can do whatever she likes on the server.
The machine will have nothing else to do and is only used for the sprint, so we can benchmark on it.
If anyone needs some special software or setup, please tell me in irc.freenode.net#sprint or via mail dk@d9t.de

Maybe a possible outcome of the sprint could be some documentation how to setup a fast plone-site (e.g. with CacheFu, nginx, varnish, pound, ...) with some advices what patterns should be considered or avoided.

Here's how the current setup looks like. I think, this could be a good starting point for discussions on how a good performance can be reached. Of course, the failover-part is not included in this graph.
So what this is: You have the free choice of connecting to the proxy AND the loadbalancer, to only the loadbalancer or directly to the zope-instances. Where "directly" means through nginx. This is just for security reasons. Usually the firewall blocks all but port 80 - and there can be only one - except you have really a lot of free IP-Addresses.



Here are the first results when testing against the number of zeo-clients for the front-page with ab with a concurrency of 10:

Zope-Clients Debug-Mode Zope-Client ZEO Cache ZEO-Cache settings req/s
1 X 500 (default) default 7,97
2 X 500 (default) default 14,76
3 X 500 (default) default 19,69
4 X 500 (default) default 24,93
5 X 500 (default) default 28,2
6 X 500 (default) default 31,07
7 X 500 (default) default 32,49
8 X 500 (default) default impossible
1
500 (default) default 8,03
2
500 (default) default 15,29
3
500 (default) default 20,18
4
500 (default) default 24,44
5
500 (default) default 27,14
6
500 (default) default 33,6
7
500 (default) default 34,31
8
500 (default) default 38,05

I think, it's interesting that debug mode really doesn't make so much difference - at least for the frontpage.
Maybe I should test with more than 8 zeo-clients.
Also interesting: zope alone really scales terribly bad on SMP. Only a zeo-clients/zeo setup gets the performance.

Testsetup was nginx in front of pound in front of the zeo-clients (see green path above).


This test is against opening the front-page authenticated.

Zope-Clients Zope-Client ZEO Cache ZEO-Cache settings req/s
8 500 (default) default 22,75


This test is against opening the edit-view of a ATDocument (500 requests, concurrency 10)
Zope-Clients Zope-Client ZEO Cache ZEO-Cache settings req/s
8 500 (default) default 14,46
This test is against saving an ATDocument (calling atct_edit with POST) (50 requests, concurrency 1 to avoid conflicterrors)

Zope-Clients Zope-Client ZEO Cache ZEO-Cache settings req/s
8 500 (default) default 3,87