Re: [[email protected]: POE as a light HTTP recorder !?]
[email protected] (Stefan Parvu) Sun, 25 Jul 2010 20:15:37 +0300
| Newsgroups | 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