-
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
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 |
| Zope-Clients | Zope-Client ZEO Cache | ZEO-Cache settings | req/s |
| 8 | 500 (default) | default | 3,87 |