I used PoCo::Server::SimpleHTTP to create an application server that uses YAML for serialization (we call it YOAP since it is replacing SOAP which is just getting too slow to use).

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.

Reply via email to