Anyhow, here are some informal test results:
soap_client - uses SOAP::Lite to connect to SOAP server yoap_client - uses LWP::UserAgent to connect to YOAP server yoap_poe_client - uses PoCo::UserAgent to connect to YOAP server in parallel
*Test 1: Apache based - 10 requests* soap_client: 38.35 seconds yoap_client: 32.62 seconds - 15% faster than SOAP yoap_poe_client: 15 seconds -- 60% faster than SOAP due to parallel requests
*Test 2: yoapd based - 10 requests* yoap_client: 12.49 seconds -- 67% faster than Apache/SOAP, -- 61% faster than Apache/YOAP yoap_poe_client: 8.32 seconds -- 78% faster than Apache/SOAP, -- 74% faster than Apache/YOAP
We have also added gzip compression, Blowfish symmetric encryption, object caching, sla logging, request logging and vhost support. The YOAP client is working in Linux, win32 and OS X.
This is obviously not under full load, although we have tried firing off multiple yoap_poe_clients simultaneously (each one firing off multiple parallel requests) with no noticeable impact on response time. Also, some of the time is for the logic that was being performed for the tests, but we have been pretty happy with the responsiveness thus far.
Here is a sample of some SLA data (yoapd logs the elapsed time for each request to MySQL and then exposes the summarized stats as an RSS feed) we collect for every module/method:
Number of Requests: 896 Minimum Response Time: 0.0401399992406368 Average Response Time: 0.34166623725988 Maximum Response Time: 1.64588105678558
Sorry I don't have more load data for you -- I'll keep you posted when we get that done. Let me know if you are interested in YOAP and I'll see if I can package it up for CPAN.
Regards,
Mike Schroeder DonorWare LLC
Bas Schulte wrote:
Hi all,
On donderdag, maa 24, 2005, at 22:04 Europe/Amsterdam, John Napiorkowski wrote:
I'm wondering if anyone has used any of the HTTP servers that come with POE in a semiproduction/medium to heavy use environment? What I mean by this is something that might server 40-60 connections per minute, including some database driven pages, etc.
Ok, I have a similar question, yet my definition of medium to heavy is different ;)
How do POE::Component::Server::HTTP and/or POE::Component::Server::TCP
handle loads of 40-60 connections/requests *per second* on a reasonably (r)(d)ecent intel box with linux on it?
I'm using apache 1.x/mod_perl as an application server for this now (doesn't serve html and stuff), with POE on the backend for different stuff. Might be nice to use POE to build a lean and mean app server...
Anyone care to comment on this? I'd love to try it out but as always: short on time to actually do it and load-test it.
Thanks,
Bas.