Chia-Che Tsai 9aee3dcb69 new compilation logistic: always use the Runtime directory 7 years ago
..
html 10c06ad723 The first official release 10 years ago
.gitignore 10c06ad723 The first official release 10 years ago
Makefile 9aee3dcb69 new compilation logistic: always use the Runtime directory 7 years ago
README 10c06ad723 The first official release 10 years ago
lighttpd-1.4.30.tar.gz 10c06ad723 The first official release 10 years ago
lighttpd-angel.manifest.template 1a1e199c79 release v0.4beta 8 years ago
lighttpd-generic.conf 10c06ad723 The first official release 10 years ago
lighttpd.manifest.template c2c92723b9 bugfix: process forking in LibOS 8 years ago

README

Running lighttpd tests is conceptually straightforward. You start a
server, then make requests from a remote host. There are some good
websites/blogs that discuss properly benchmarking a webserver. We want
to test how efficiently Graphene handles requests, not the speed of
the network stack in the OS. So we are using very small static files.
See the wiki page for more details.

7/23/13:

To start a server in graphene,
make start-graphene-server

To start a server on any other platform,
make start-native-server

Now that your server is up and running, it is time to test it. From a
remote host, you can use the run-apachebench.sh script to programatically submit
requests at various loads. The usage of that script is as follows:
./run-apachebench.sh

The script will append the output to a file "ab.n.c"

The output will look something like this:

*** BEGIN OUTPUT ***

This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking 130.245.153.32 (be patient)


Server Software: lighttpd/1.4.30
Server Hostname: 130.245.153.32
Server Port: 8000

Document Path: /random/100.1.html
Document Length: 100 bytes

Concurrency Level: 100
Time taken for tests: 4.110 seconds
Complete requests: 50000
Failed requests: 0
Write errors: 0
Total transferred: 16650000 bytes
HTML transferred: 5000000 bytes
Requests per second: 12164.64 [#/sec] (mean)
Time per request: 8.221 [ms] (mean)
Time per request: 0.082 [ms] (mean, across all concurrent requests)
Transfer rate: 3955.88 [Kbytes/sec] received

Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 0 0.0 0 1
Processing: 1 8 8.7 7 202
Waiting: 1 8 8.7 7 202
Total: 2 8 8.7 8 203

Percentage of the requests served within a certain time (ms)
50% 8
66% 8
75% 8
80% 8
90% 8
95% 8
98% 8
99% 8
100% 203 (longest request)

*** END OUTPUT ***

The number we were reporting is the transfer rate. So for this
example, the we would report a bandwidth of 3.95588 Mbytes/second.



NOTES:

To run kvm and lxc, you need to set up a bridge. But you do not want
extraneous interfaces when you are not using them, so make
sure to bring them down before testing native linux or graphene.

If you are within kvm or lxc, your ip will not be that of your
host. Make sure your ip matches the ip in the conf file.

If you have a lot of time and want to do a good job, throw out the top
and the low numbers, and report the mean of your large sample.