Machnet performance report

December 16, 2023 ยท View on GitHub

Important note: The performance results should be compared across platforms, since the intra-platform variability (e.g., different pairs of VMs in the same cloud) is high.

Single-connection request-response benchmark

Description: A client sends a request to a server, and the server sends a response back to the client. The client keeps a configurable number messages in flight for pipelining.

Start the Machnet Docker container on both client and server

# Server
./machnet.sh --mac <server_DPDK_MAC> --ip <server_DPDK_IP>

# Client
./machnet.sh --mac <client_DPDK_MAC> --ip <client_DPDK_IP>

Run the msg_gen benchmark:

MSG_GEN="docker run -v /var/run/machnet:/var/run/machnet ghcr.io/microsoft/machnet/machnet:latest release_build/src/apps/msg_gen/msg_gen"

# Server
${MSG_GEN} --local_ip <server_DPDK_IP> --msg_size 1024

# Client: Experiment E1: latency
${MSG_GEN} --local_ip <client DPDK IP> --remote_ip <server DPDK IP> --msg_window 1 --tx_msg_size 1024

# Client: Experiment E2: message rate
${MSG_GEN} --local_ip <client DPDK IP> --remote_ip <server DPDK IP> --msg_window 32 --tx_msg_size 1024
ServerNIC, DPDK PMDRound-trip p50 99 99.9RPCs/sNotes
Azure F8s_v2CX4-Lx, netvscE1: 18 us, 19 us, 25 us54KNo proximity groups
Ubuntu 22.03E2: 41 us, 54 us, 61 us753K
AWS c5.xlargeENA, enaE1: 42 us, 66 us, 105 us22KProximity groups
Amazon LinuxE2: 61 us, 132 us, 209 us122K--msg_window 8
GCP XXX, XXXgVNICE1: XXXXXX
XXXE2: XXXXXX
Bare metalE810 PF, iceE1: 18 us, 21 us, 22 us55K
Mariner 2.0E2: 30 us, 33 us, 37 us1043K
Bare metalE810 VF, iavfE1: 18 us, 22 us, 22 us55K
Mariner 2.0E2: 31 us, 35 us, 41 us1003K
Bare metalBluefield-2, mlx5E1: 9 us, 12 us, 13 us99K
Ubuntu 22.04E2: 24 us, 26 us, 28 us1320K
Bare metal jCX5, mlx5E1: XXXXXX
Ubuntu 20.04E2: XXXXXX
Bare metalCX6-Dx, mlx5E1: XXXXXX
Ubuntu 20.04E2: XXXXXX