Search code examples
phpwebserverbenchmarkingmeasurement

Suggestions for profiling a webserver


I developed a small nifty webserver in C and would like to evaluate its performance. For this I'm doing the following:

Measuring the socket establishment time, file transfer time (for files of random sizes) and socket teardown time in the following scenarios:

  • Single-Threaded
  • Multi-Threaded

And this should give me the throughput/bandwidth... I was planning on setting this up on a bunch of computers and measuring everything... For the client part, I'm using PHP and am making use of simple timing functions in the following manner:

<?php
$time_start = microtime_float();
// COMMAND TO PROFILE
$time_end = microtime_float();
$time = $time_end - $time_start;
echo "Task took $time seconds\n";
?>

Are there any other metrics that I should measure that would give me some valuable insights?


Solution

  • Hmm, I'm not sure it's the best approach to benchmark request performance. Take a look at ab which is provided by the Apache distribution, it's a rudimentary tool, but you should be able to run it on the same server and get a more accurate benchmark for request time. It'll also give you a bunch of other metrics.

    http://httpd.apache.org/docs/2.0/programs/ab.html