Itamar S.-T. <itamars@ibm.net> writes:
I decided to run torture.pl against Zope 2.0.0a3 using ZServer, with 40 clients running concurrently. Notice that the results were faster than Zope 1.10.2 on ZopeHTTPServer using only 10 clients, my previous test. Last time however I ran against the "Welcome to Zope" page, while this time I ran against a much smaller page (200 bytes.) So the speed difference may be a result of this. I'll try again tommorow.
The reason that I didn't run against the Welcome page is that when I run Zope2 from ZopeHTTPServer I do get this welcome page, but when I run from ZServer (python z2.py) I don't. What did I do wrong? Do they store their databases in different locations?
ZopeHTTPServer runs Zope in ZODB2 mode (single threaded), for which there is default content. The deafult confinguration of ZServer is to run Zope in ZODB3 mode (concurrent), for which there is no default content. Both the concurrency and async socket architecture of ZServer will blow ZopeHTTPServer out of the water. Also, there isn't anything that ZopeHTTPServer can do that ZServer can't do better. Their both python, can both be called from python scripts, can both be used in localhost proxies, and ZServer can run in ZODB2 mode for backward compatability.
GET, 1000 chars of garbage in query string Transactions: 4000 Elapsed time: 143.493 sec Bytes Transferred: 5431436 bytes Response Time: 1.62 sec Transaction Rate: 27.88 trans/sec Throughput: 37851.53 bytes/sec Concurrency: 45.2 Status Code 200: 3954 Status Code 500: 46
What kind of hardware was this? How many threads did you run ZServer with?
This resulted in lots of: Server Error: exceptions.KeyError, uaL: file: /itamar/Zope-2.0.0a3-src/lib/python/ZPublisher/HTTPRequest.py line: 246 errors from ZServer. Someone should really check this out.
Yes this has happened to me on my amateur benchmarking. I'm looking into it.
I then ran with 0 chars of garbage - simply GET the page 100 times, 40 clients: Transactions: 4000 Elapsed time: 113.816 sec Bytes Transferred: 684000 bytes Response Time: 1.10 sec Transaction Rate: 35.14 trans/sec Throughput: 6009.73 bytes/sec Concurrency: 38.7 Status Code 200: 4000
I have no idea why so little bytes were transferred, except noting that the page I tested was tiny - 200 bytes or so (standard "This is index_html" DTML doc.)
Actually smaller pages will probably slow down Zope as opposed larger ones (up to a limit). This is the same reason why lots of little packets will throw certain routers out of their mind. The overhead required to return a small static document equals that of the overhead to return a large one (note the part about 'static', lots of DTML can easily change this). Thus there is probably a 'sweet spot' document size where Zope returns the highest requests per second. -Michel
-- Itamar - itamars@ibm.net -----------------------------o-------------------------------------o Sealingwax Greeting Cards | The only good morning is a dead one | http://www.sealingwax.com/ | --Richard Stallman |
_______________________________________________ Zope maillist - Zope@zope.org http://www.zope.org/mailman/listinfo/zope
(For developer-specific issues, use the companion list, zope-dev@zope.org - http://www.zope.org/mailman/listinfo/zope-dev )