test/vsock: vsock_perf utility
This adds utility to check vsock rx/tx performance. Usage as sender: ./vsock_perf --sender <cid> --port <port> --bytes <bytes to send> Usage as receiver: ./vsock_perf --port <port> --rcvlowat <SO_RCVLOWAT> Signed-off-by: Arseniy Krasnov <AVKrasnov@sberdevices.ru> Reviewed-by: Stefano Garzarella <sgarzare@redhat.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
committed by
Paolo Abeni
parent
685a21c314
commit
8abbffd27c
@@ -35,3 +35,37 @@ Invoke test binaries in both directions as follows:
|
||||
--control-port=$GUEST_IP \
|
||||
--control-port=1234 \
|
||||
--peer-cid=3
|
||||
|
||||
vsock_perf utility
|
||||
-------------------
|
||||
'vsock_perf' is a simple tool to measure vsock performance. It works in
|
||||
sender/receiver modes: sender connect to peer at the specified port and
|
||||
starts data transmission to the receiver. After data processing is done,
|
||||
it prints several metrics(see below).
|
||||
|
||||
Usage:
|
||||
# run as sender
|
||||
# connect to CID 2, port 1234, send 1G of data, tx buf size is 1M
|
||||
./vsock_perf --sender 2 --port 1234 --bytes 1G --buf-size 1M
|
||||
|
||||
Output:
|
||||
tx performance: A Gbits/s
|
||||
|
||||
Output explanation:
|
||||
A is calculated as "number of bits to send" / "time in tx loop"
|
||||
|
||||
# run as receiver
|
||||
# listen port 1234, rx buf size is 1M, socket buf size is 1G, SO_RCVLOWAT is 64K
|
||||
./vsock_perf --port 1234 --buf-size 1M --vsk-size 1G --rcvlowat 64K
|
||||
|
||||
Output:
|
||||
rx performance: A Gbits/s
|
||||
total in 'read()': B sec
|
||||
POLLIN wakeups: C
|
||||
average in 'read()': D ns
|
||||
|
||||
Output explanation:
|
||||
A is calculated as "number of received bits" / "time in rx loop".
|
||||
B is time, spent in 'read()' system call(excluding 'poll()')
|
||||
C is number of 'poll()' wake ups with POLLIN bit set.
|
||||
D is B / C, e.g. average amount of time, spent in single 'read()'.
|
||||
|
||||
Reference in New Issue
Block a user