High performance HTTP server stress & benchmark utility.
Inspired by weighttp tool.
Originally written by yarosla at Bitbucket and modified by Parallels Performance Team.
- event driven (low memory footprint, large number of connections)
- multi-threaded (uses all cores of your CPU)
- SSL support (via GNUTLS library) with cipher suite selection
Compared to weighttp, httpress offers the following improvements:
- evenly distributes load between threads; does not allow one thread to finish much earlier than others
- promptly timeouts stucked connections, forces all hanging connections to close after the main run, does not allow hanging or interrupted connections to affect the measurement
- SSL support
httpress <options> <url>
-n num number of requests (default: 1)
-t num number of threads (default: 1)
-c num concurrent connections (default: 1)
-k keep alive (default: no)
-z pri GNUTLS cipher priority (default: NORMAL)
-h show this help
example: httpress -n 10000 -c 100 -t 4 -k http://localhost:8080/index.html
- Depends on libev library
- Depends on http-parser library
- Depends on LibParserUtils library
- Depends on uchardet library
- Depends on GnuTLS library (if compiled with SSL support)
- Prerequisite (your distro might have these in repo; otherwise build from source):
- libev 4 library
- http-parser 2 library
- LibParserUtils 0.2.0 library
- uchardet library
- SSL prerequisite: GnuTLS 3.0 library (better build from source)
- Download httpress source
- Run
make
ormake -f Makefile.nossl
- Collect executable from bin subdirectory