Re: [[email protected]: POE as a light HTTP recorder !?]

Stefan Parvu <[email protected]> Sun, 25 Jul 2010 20:15:37 +0300
Newsgroups gmane.comp.lang.perl.poe
Message-ID <[email protected]>
thanks a lot for comments. The main idea is to have a recorder
which simple 'plays' a number of HTTP actions: GET, POST grouped
in workloads. For each workload a raw log file stores all response
times in ms (would be just enough, not getting into us).

> - testing the server under load. To do this you need to run a tool in parallel to generate the workload. httperf does this.
>
> - breaking down what's happening at the TCP level. tcpdump uses very little cpu and by capturing the packet headers you can then look at
how much time was spend doing the handshake, waiting for the server to process the request, slow start, etc. You can write tools to
extract this data automatically, do statistics across many runs, etc.
>
> - predicting real browser performance. What happens in firefox when it's downloading a page full of embedded images and such, is quite
different from the individual requests issues by a command line tool. Now you have pipelining, keepalive, and simultaneous connections to
think about, plus whatever work the browser has to do to render the page. You can use javascript and frames to create a tool that measures
start-to-finsih load time for a whole page. There are probably off-the-shelf products that do this now - it's been many years since I've
done this.
>
> In any case if you are going to be counting in microseconds I think it's unlikely that POE is your best solution. It would be a good
choice for something like a web crawler where you are throttled by your ISP's connection anyway, and must handle a potentially large
number of simultaneous connections waiting for server response.
>

the main idea of webrec is to record simple response times at this stage,
implementing a dummy browser. Currently we are using Java and the results
are more than ok. I was thinking to have a Perl version for systems where
Java is non present. So milliseconds are more than enough for this work.

Has anyone done such thing using POE ? The best figures I obtained in
Perl were using LWP, 2ms response times for certain GET actions,
local server. Java had a lower footprint 1ms or less for same actions.

stefan