RSTREAM(1)
β¨ RSTREAM π
okay bestie, listen UP, this is rstream from the librdmacm manual, section 1, and it is literally the streaming over RDMA ping-pong test and I'm obsessed π
πΈ NAME πΈ
rstream β streaming over RDMA ping-pong test, no cap π
π¦ SYNOPSIS π¦
rstream [-s server_address] [-b bind_address] [-f address_format]
[-B buffer_size] [-I iterations] [-C transfer_count]
[-S transfer_size] [-p server_port] [-T test_option]
π DESCRIPTION π
So basically? It uses the streaming over RDMA protocol (rsocket) to connect and exchange data between a client and a server application. Two little apps, vibing, talking over RDMA. That's it, that's the whole thing. Periodt. β¨
π OPTIONS π
-sserver_address β the network name or IP address of the server system that's listening for connections. The name or address you use must route over an RDMA device, okay? And this one is on the client β the client HAS to specify it. Non-negotiable fr fr.-bbind_address β the local network address to bind to. Yours, your little home address π‘-faddress_format β the address formats we support areip,ipv6,gid, orname. Pick your fighter π-Bbuffer_size β tells you the size of the send and receive network buffers. That's the size of the vibe containers π¦-Iiterations β how many times the specified number of messages gets exchanged between the client and the server. (default1000)-Ctransfer_count β how many messages get transferred from the client to the server and back again on each iteration. (default1000)-Stransfer_size β the size of each send transfer, in bytes. (default1000) And if you pass'all',rstreamwill run a series of tests of various sizes. β¨ variety is the spice of life β¨-pserver_port β the server's port number. the door number, iykyk πͺ-Ttest_option β specifies test parameters. Available options are:s|socketβ uses standard socket calls to transfer dataa|asyncβ uses asynchronous operation (e.g.select/poll)b|blockingβ uses blocking callsf|forkβ fork server processing (forces-T soption)n|nonblockingβ uses non-blocking callsr|resolveβ use rdma cm to resolve addressv|verifyβ verifies data transfers
π NOTES π
Basic usage, the tutorial level, the main character energy move: start rstream on a server system, then run rstream -s server_name on a client system. That's it. By default, rstream will run a series of latency and bandwidth performance tests. But if you specify a different iterations, transfer_count, or transfer_size, it'll run a user customized test using default values wherever you didn't specify anything. Cute, right? π«Ά
okay so important one, bestie β because this test maps RDMA resources to userspace, users must make sure they have available system resources and permissions. Please check that. See the libibverbs README file for additional details. Not me being responsible for once π
π SEE ALSO π
and that's the whole page, angel π this was librdmacm, version dated 2011-11-16, and honestly? iconic behavior. go slay your ping-pong test πβ¨
π¦ where this page comes from
- alpine 3.24: rdma-core-doc 61.0-r0 Β· GPL-2.0-only OR BSD-2-Clause
- arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
- centos-stream 10: librdmacm-utils 62.0-3.el10 Β· GPLv2 or BSD
- centos-stream 9: librdmacm-utils 61.0-3.el9 Β· GPLv2 or BSD
- debian bookworm: rdmacm-utils 44.0-2 Β· BSD-MIT OR GPL-2.0-only
- debian trixie: rdmacm-utils 56.1-1 Β· BSD-MIT OR GPL-2.0-only
- fedora 43: librdmacm-utils 58.0-4.fc43 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: librdmacm-utils 61.0-2.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- fedora 44: librdmacm-utils 61.1^20260812git975bdaf-1.fc44 Β· GPL-2.0-only OR BSD-2-Clause AND BSD-3-Clause
- nixos 26.05: rdma-core 62.0
- nixpkgs unstable: rdma-core 65.0
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- opensuse-leap 16.0: librdmacm-utils 56.1-160000.2.2 Β· BSD-2-Clause OR GPL-2.0-only
- ubuntu jammy: rdmacm-utils 39.0-1 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: rdmacm-utils 50.0-2build2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu noble: rdmacm-utils 50.0-2ubuntu0.2 Β· BSD-MIT OR GPL-2.0-only
- ubuntu questing: rdmacm-utils 56.1-1ubuntu1
- ubuntu resolute: rdmacm-utils 61.0-2ubuntu3 Β· BSD-MIT OR GPL-2.0-only
- ubuntu stonking: rdmacm-utils 64.0-1ubuntu1 Β· BSD-MIT OR GPL-2.0-only
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms