README 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. Running lighttpd tests is conceptually straightforward. You start a
  2. server, then make requests from a remote host. There are some good
  3. websites/blogs that discuss properly benchmarking a webserver. We want
  4. to test how efficiently Graphene handles requests, not the speed of
  5. the network stack in the OS. So we are using very small static files.
  6. See the wiki page for more details.
  7. 7/23/13:
  8. To start a server in graphene,
  9. make start-graphene-server
  10. To start a server on any other platform,
  11. make start-native-server
  12. Now that your server is up and running, it is time to test it. From a
  13. remote host, you can use the run-apachebench.sh script to programatically submit
  14. requests at various loads. The usage of that script is as follows:
  15. ./run-apachebench.sh <ip-of-server> <port-of-server> <concurrency-level>
  16. The script will append the output to a file "ab.n<N>.c<C>"
  17. The output will look something like this:
  18. *** BEGIN OUTPUT ***
  19. This is ApacheBench, Version 2.3 <$Revision: 655654 $>
  20. Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
  21. Licensed to The Apache Software Foundation, http://www.apache.org/
  22. Benchmarking 130.245.153.32 (be patient)
  23. Server Software: lighttpd/1.4.30
  24. Server Hostname: 130.245.153.32
  25. Server Port: 8000
  26. Document Path: /random/100.1.html
  27. Document Length: 100 bytes
  28. Concurrency Level: 100
  29. Time taken for tests: 4.110 seconds
  30. Complete requests: 50000
  31. Failed requests: 0
  32. Write errors: 0
  33. Total transferred: 16650000 bytes
  34. HTML transferred: 5000000 bytes
  35. Requests per second: 12164.64 [#/sec] (mean)
  36. Time per request: 8.221 [ms] (mean)
  37. Time per request: 0.082 [ms] (mean, across all concurrent requests)
  38. Transfer rate: 3955.88 [Kbytes/sec] received
  39. Connection Times (ms)
  40. min mean[+/-sd] median max
  41. Connect: 0 0 0.0 0 1
  42. Processing: 1 8 8.7 7 202
  43. Waiting: 1 8 8.7 7 202
  44. Total: 2 8 8.7 8 203
  45. Percentage of the requests served within a certain time (ms)
  46. 50% 8
  47. 66% 8
  48. 75% 8
  49. 80% 8
  50. 90% 8
  51. 95% 8
  52. 98% 8
  53. 99% 8
  54. 100% 203 (longest request)
  55. *** END OUTPUT ***
  56. The number we were reporting is the transfer rate. So for this
  57. example, the we would report a bandwidth of 3.95588 Mbytes/second.
  58. NOTES:
  59. To run kvm and lxc, you need to set up a bridge. But you do not want
  60. extraneous interfaces when you are not using them, so make
  61. sure to bring them down before testing native linux or graphene.
  62. If you are within kvm or lxc, your ip will not be that of your
  63. host. Make sure your ip matches the ip in the conf file.
  64. If you have a lot of time and want to do a good job, throw out the top
  65. and the low numbers, and report the mean of your large sample.