Skip to content

qperf tool#1600

Open
valtersg wants to merge 3 commits into
5.3.0from
issue-1581
Open

qperf tool#1600
valtersg wants to merge 3 commits into
5.3.0from
issue-1581

Conversation

@valtersg

@valtersg valtersg commented Nov 3, 2025

Copy link
Copy Markdown
Contributor

#1581

For now only throughput tests are available.
RDMA not tested - don`t have the infra for that.

pscheduler task --tool qperf throughput --dest 192.168.56.106 --qperf-test tcp_bw --source 192.168.56.104

@mfeit-internet2

Copy link
Copy Markdown
Member

This will probably have to wait until after the first of the year for me to get to it.

@valtersg

valtersg commented Mar 3, 2026

Copy link
Copy Markdown
Contributor Author

While testing on RDMA enabled machines, noticed that I have to implement additionl params for the qperf tool.
(will do in near future)

@mfeit-internet2

Copy link
Copy Markdown
Member

Thought about this some after our discussion last week:

Throughput

Protocols supported by Qperf:

  • rds_bw - RDS streaming one way bandwidth
  • sctp_bw - SCTP streaming one way bandwidth
  • sdp_bw - SDP streaming one way bandwidth
  • tcp_bw - TCP streaming one way bandwidth
  • udp_bw - UDP streaming one way bandwidth
  • rc_bw - RC streaming one way bandwidth
  • rc_bi_bw - RC streaming two way bandwidth
  • uc_bi_bw - UC streaming two way bandwidth
  • uc_bw - UC streaming one way bandwidth
  • ud_bi_bw - UD streaming two way bandwidth
  • ud_bw - UD streaming one way bandwidth
  • rc_rdma_read_bw - RC RDMA read streaming one way bandwidth
  • rc_rdma_write_bw - RC RDMA write streaming one way bandwidth
  • uc_rdma_write_bw - UC RDMA write streaming one way bandwidth

New throughput test parameters:

  • protocol - I want to migrate toward that anyway since the udp switch was a mistake. This tool would recognize rds, sctp, sdp, tcp (the traditional default), udp, rc, uc, ud.
  • bidirectional - Returns forward throughput as the primary result, reverse as bonus material when that exists.
  • rdma - Use RDMA if available with the protocol.

I don't see any difficulties in getting Qperf integrated for measuring throughput.

Latency Tests

Protocols supported by Qperf:

  • rds_lat - RDS one way latency
  • sctp_lat - SCTP one way latency
  • sdp_lat - SDP one way latency
  • tcp_lat - TCP one way latency
  • udp_lat - UDP one way latency
  • rc_lat - RC one way latency
  • uc_lat - UC one way latency
  • ud_lat - UD one way latency
  • rc_rdma_read_lat - RC RDMA read one way latency
  • rc_rdma_write_lat - RC RDMA write one way latency
  • rc_rdma_write_poll_lat - RC RDMA write one way polling latency
  • uc_rdma_write_lat - UC RDMA write one way latency
  • uc_rdma_write_poll_lat - UC RDMA write one way polling latency

Parameters:

  • protocol - Already exists in the latency test.
  • reverse - For RDMA read vs. write

The latency and latencybg tests are single-participant because they were built under the assumption that the far end will have an always-on server. In the case of TWAMP, that's useful because some routers implement it and don't run pScheduler. The same goes for OWAMP+Powstream, where hosts can participate in a lot of latencybg with just one server. We can't make Qperf do that because it doesn't have a way to be told to do latency only.

I don't think we'd have to make any major architectural changes to get Qperf running two-participant latency tests. There would have to be some implementation changes that are not trivial but aren't a show-stopper. Worst case, we put Qperf latency on the back burner until pScheduler can handle tool-dependent participant counts.

Other Tests

I'm going to hand-wave these for the moment:

  • rc_compare_swap_mr - RC compare and swap messaging rate
  • rc_fetch_add_mr - RC fetch and add messaging rate
  • ver_rc_compare_swap - Verify RC compare and swap
  • ver_rc_fetch_add - Verify RC fetch and add

@valtersg

valtersg commented Mar 9, 2026

Copy link
Copy Markdown
Contributor Author

Throughput

New throughput test parameters:

  • protocol - I want to migrate toward that anyway since the udp switch was a mistake. This tool would recognize rds, sctp, sdp, tcp (the traditional default), udp, rc, uc, ud.
  • bidirectional - Returns forward throughput as the primary result, reverse as bonus material when that exists.
  • rdma - Use RDMA if available with the protocol.

I don't see any difficulties in getting Qperf integrated for measuring throughput.

Will update the code to reflect this.

Latency Tests

For now - skipping latency integration for qperf.

Will ping you when changes are made.

@valtersg

valtersg commented Apr 7, 2026

Copy link
Copy Markdown
Contributor Author

@mfeit-internet2
Added the new params protocol, bidirectional, rdma to the throughput test.
qperf tool will infer which underlying test to run from those parameters

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add qperf tool to the list of supported throughput tools

2 participants