weighty) is a lightweight and small benchmarking tool for webservers.
It was designed to be very fast and easy to use and only supports a tiny fraction of the HTTP protocol in order to be lean and simple.
weighttp supports multithreading to make good use of modern CPUs with multiple cores as well as asynchronous i/o
for concurrent requests within a single thread.
For event handling, weighty relies on libev which fits the design perfectly, being lightweight and fast itself.
Thanks to that, weighty supports all modern high-performance event interfaces like epoll or kqueue, that the major OSs provide.
Use git to fetch the latest source:
$ git clone git://git.lighttpd.net/weighttp
or download a .tar.gz from http://cgit.lighttpd.net/weighttp/snapshot/weighttp-master.tar.gz
Use waf (included, needs python) to build:
$ ./waf configure $ ./waf build
See ./waf --help for available configure options and other commands available.
Alternatively, you can just use gcc directly too (but you will have to (un)install it manually:
$ gcc -g2 -O2 -lev -lpthread src/*.c -o weighttp
Depending on your configure arguments, you might need root to (un)install.
$ ./waf install
$ ./waf uninstall
weighttp uses similar commandline arguments as
apache bench (ab):
weighttp <options> <url> -n num number of requests (mandatory) -t num threadcount (default: 1) -c num concurrent clients (default: 1) -k keep alive (default: no) -h show help and exit -v show version and exit