RIOSTREAM(1)

πŸ’– RIOSTREAM(1) πŸ’–

okay bestie, so this is a page from the librdmacm manual, and today we're talking about riostream ✨ β€” literally zero-copy streaming over RDMA, ping-pong style. no cap, it's giving network test main character energy πŸ‘‘


🌸 NAME 🌸

riostream β€” zero-copy streaming over RDMA ping-pong test. periodt. πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

riostream [-s server_address] [-b bind_address] [-B buffer_size]
               [-I iterations] [-C transfer_count]
               [-S transfer_size] [-p server_port] [-T test_option]

πŸ¦‹ DESCRIPTION πŸ¦‹

So the way this works is: it uses the streaming over RDMA protocol (aka rsocket, iykyk) to connect a client and a server application, and then they exchange data. that's it, that's the whole vibe 🌈


✨ OPTIONS ✨

  • -s server_address β€” the network name or IP address of the server system that's out here listening for connections πŸ‘‚ the name or address you use must route over an RDMA device, fr fr. this one is required if you're the client, bestie β€” you gotta specify it πŸ’–
  • -b bind_address β€” the local network address to bind to πŸŽ€
  • -B buffer_size β€” tells you the size of the send and receive network buffers 🫢
  • -I iterations β€” how many times that specified number of messages gets exchanged between the client and the server. default is 1000 ⭐
  • -C transfer_count β€” the number of messages transferred from client β†’ server β†’ back again on each and every iteration. default is 1 πŸ’…
  • -S transfer_size β€” the size of each send transfer, in bytes. default is 1000 ✨ and if you pass all, rstream will run a whole series of tests at various sizes πŸ‘‘
  • -p server_port β€” the server's port number 🌸
  • -T test_option β€” specifies the test parameters. the available options are:
    • a | async β€” uses asynchronous operation (e.g. select / poll) 🧚
    • b | blocking β€” uses blocking calls 😴
    • n | nonblocking β€” uses non-blocking calls πŸƒ
    • v | verify β€” verifies data transfers πŸ”

πŸ“ NOTES πŸ“

the basic usage bestie is: start riostream on a server system first, then run riostream -s server_name on a client system πŸ’– by default, riostream will run a series of latency and bandwidth performance tests πŸ”₯ and if you specify a different iterations, transfer_count, or transfer_size, it'll run a user-customized test, using the default values wherever you didn't specify anything πŸŽ€

okay important one, listen up 🚨 because this test maps RDMA resources into userspace, users must make sure they have available system resources and permissions. see the libibverbs README file for the additional deets. don't skip this, it's not a vibe check you wanna fail πŸ’€

πŸ‘€ SEE ALSO πŸ‘€

rdma_cm(7) rstream(1)


and that's the whole page, bestie 🫢 this was librdmacm, dated 2012-10-24 β€” iconic, timeless, slay πŸ’œ bye bye, go run your tests πŸ¦‹

πŸ“¦ where this page comes from