- Notifications
You must be signed in to change notification settings - Fork2
axboe/netbench
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
will put some more stuff here, but some example cmd lines:
netbench requires both boost and liburing to be available.
Typically you should run simply to produce ./netbench:
$ make
to build an ASAN version (for development) you can run:
$ make sanitized
which produces netbench.asan.
To use a custom liburing for example you can run:
$ make CXXFLAGS_EXTRA="-I<path_to_liburing>/src/include" LDFLAGS_EXTRA="-L <path_to_liburing>/src/ -l:liburing.a"
To use clang for example you can run $ make CXX=clang++
You can run netbench in single process mode, and it will connect to itself
run a simple benchmark for io_uring and epoll in one process $ ./netbench
run for 60 seconds epoll only $ ./netbench --rx epoll --time 60
run for io_uring in two parameterisations $ ./netbench --rx "io_uring --provide_buffers 0" --rx "io_uring --provide_buffers 1"
see options for io_uring engine $ ./netbench --rx "io_uring --help"
prepare an io_uring listener on port 10001 $ ./netbench --server_only 1 --rx io_uring --use_port 10001
prepare anIPv4 io_uring and epoll listener starting on port 10001epoll will then get port 10002 $ ./netbench --v6 0 --server_only 1 --rx io_uring --rx epoll --use_port 10001
run tests to a prepared host. the host has 2 ports (eg io_uring and epoll) so useboth $ ./netbench --tx small --tx burst --client_only 1 --host $(dig +short aaaa foo) --use_port 10001 --use_port 10002
run a test to a IPv4 prepared host $ ./netbench --v6 0 --tx small --tx burst --client_only 1 --use_port 10001 --host $(dig +short a foo)
By default it uses IPv6, in order to use IPv4 set the v6 flag to 0: $ ./netbench --v6 0