LAT_UDP(8)
πΈ LAT_UDP β the interprocess gossip pipeline β¨
ok bestie, so this is lat_udp, a page from the LMBENCH manual (section 8, system admin tools, very serious, very demure π
). It measures interprocess communication latency via UDP/IP. That's it. That's the whole job. And she does it flawlessly. π
β¨ SYNOPSIS β¨
lat_udp -s
lat_udp [ -m <message size> ] [ -P <parallelism> ] [ -W <warmups> ] [ -N <repetitions> ] hostname
lat_udp -S hostname
ok so there are three modes and you just pick your fighter π«Ά here's the tea on each little flag:
-sβ run as the server. She sits there. She waits. She's giving patient main character energy. π-S hostnameβ run as the shutdown. Yes you have to go tell the server to stop, she's not gonna read your mind, bestie π-m <message size>β the message size, as in how chunky the potato is. π₯-P <parallelism>β the parallelism. How many of these lil conversations are going down at once.-W <warmups>β the warmups. You gotta stretch before you sprint, no cap. π§-N <repetitions>β the repetitions. How many times we do the thing.- hostname β the other end of the conversation, fr fr. (And yes,
lat_udp localhostis a whole valid usage, we'll get to it.)
π DESCRIPTION π
lat_udp is a client/server program that measures interprocess communication latencies. Literally just: how long does it take for two processes to talk to each other. That's the vibe. That's the whole vibe. β¨
The benchmark passes a message back and forth between the two processes, and honestly? This style of benchmark is frequently referred to as a ``hot potato'' benchmark, which is such an iconic name, it's giving recess energy, it's giving "catch it catch it CATCH IT" π₯. The potato just goes back and forth. Back and forth. Forever. Or, yk, until -N says stop.
And listen β no other work is done in the processes. Zero. None. They don't have side quests. They don't have hobbies. They don't have a little guy in the background doing something. They pass the potato and that is their entire personality. periodt. π
So anyway, lat_udp has three forms of usage, and here they are laid out like a little trio, slay:
- as a server β
-sπ«Ά - as a client β
lat_udp localhost - as a shutdown β
lat_udp -S localhost
Three girls. Three modes. One benchmark. Obsessed. π
β OUTPUT β
ok so the reported time is in microseconds per round trip β microseconds, bestie, we're measuring tiny little moments here π¦ β and it includes the total time, i.e., the context switching overhead is included. So like, that switcheroo cost is baked in, she's not hiding it from you, she's being transparent, we love a transparent queen. π
The output format is like so:
UDP latency using localhost: 650 microseconds
see? cute. clean. readable. no notes. πΈ
π ACKNOWLEDGEMENT π
Funding for the development of this tool was provided by Sun Microsystems Computer Corporation. Shoutout to the sponsor, they really said "here's money, go measure latency," and honestly? iconic behavior. π
π SEE ALSO π
the whole friend group, iykyk:
π AUTHOR π
Carl Staelin and Larry McVoy β the two of them, the duo, the co-authors of the century π«Ά
And like, fr fr: comments, suggestions, and bug reports are always welcome. They said it themselves. So if you found a lil glitch or you just wanna say hi, go off, they want to hear it. ππ
π one last thing bestie: this page is from the LMBENCH manual collection, copyright (c)1994 Larry McVoy, with that $Date$ placeholder sitting pretty where the date goes. So yeah β 1994 called, she's still measuring UDP latency, and she's still that girl. no cap, periodt, bye bestie π
β¨
π¦ where this page comes from
- debian bookworm: lmbench 3.0-a9+debian.1-6
- debian trixie: lmbench 3.0-a9+debian.1-9
- ubuntu jammy: lmbench 3.0-a9+debian.1-6
- ubuntu noble: lmbench 3.0-a9+debian.1-6build3
- ubuntu questing: lmbench 3.0-a9+debian.1-9
- ubuntu resolute: lmbench 3.0-a9+debian.1-10
- ubuntu stonking: lmbench 3.0-a9+debian.1-10
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms