topline(1)
π topline β a disk/per-core CPU grapher/logger π
okay bestie, gather round, because topline is genuinely that girl. it graphs your disks AND your per-core CPU, live, and it does it in a way that actually fits on your screen. the manual page calls this thing topline(1) from the General Commands Manual, and honestly? iconic.
β¨ SYNOPSIS β¨
topline [ -l ] [ -i 1.0 ] [ -o logfile ] [ program arg1 arg2 ... ]
that's it. that's the whole vibe. π«Ά
πΈ DESCRIPTION πΈ
so like, here's the situation. tools like htop can totally show you per-core loads, but they do it interactively β you gotta sit there and stare. and then there's loggers like dstat, but they're working with numeric data, so they have zero chance of fitting per-CPU info inside a single line on a modern many-core processor. it's giving crowded. it's giving 128 cores and one sad terminal. π
so topline said "not me" and decided to use Unicode graphing symbols to squash all that data into a terse form β two hyperthreads per character, no cap. which means you can actually eyeball NUMA separation, CPU hopping, etc. main character energy fr fr. π
Once per second, topline plots stats for that interval:
- per every disk β one character with two columns of dots gives that disk's utilization time percentage. the left column shows reads, the right one shows writes. disks are grouped into parenthesised groups by interface type (
NVMe,SATA,eMMC, ...). - per every non-hyperthreaded CPU or a pair of hyperthreaded siblings β a character with one or two columns is given. non-HT CPUs are drawn with bars, HT ones with dots, offline cores are marked with
'o'. the parentheses group CPUs by their NUMA node.
π OPTIONS π
<program> <arg1> <arg2> ...β runs a program and terminates the graph once the program exits. heads up though: the graph still exhibits the global state of the system rather than just the program you chose and its children. so it's not a spotlight, it's the whole group photo. πΈ
If no program is given, topline will keep logging forever (ie, until you press ^C or similar). forever-ever. π¦
-l,--line-output,--linearizeβ marshalls the program's output line-by-line, avoiding mix-ups withtopline's data. they will be interspersed in separate lines. the program will know it is being piped; if you want it to believe it's ran on a terminal (to get colors, etc) you may use a tool likepipetty. sneaky little makeover, love that for it. π-i <interval>β sets the interval between data samples; the default is1s. floating-point values are allowed; the number may be suffixed by a"s"(seconds, default),"m"(minutes),"h"(hours),"d"(days),"ms"(milliseconds),"us"or"Β΅s"(microseconds). so go off, pick your own tempo. β±οΈ-o <file>,--output <file>β redirectstopline's output to the given file. the program being ran can then use stdout and stderr unimpeded. everybody gets their own lane. π£οΈ-d,--dump-after,--delay-dumpβ suppresses the graph output until after the program exits, then dumps the logged graph all at once tostderr. good for non-interactive builds. NB.^Cassumes you want to abort both the program andtopline, please kill the former some other way if that is not the case. read that twice, bestie. π
β οΈ CAVEATS β οΈ
bestie. bestie. listen. these are the "read before you @ me" notes.
- If the machine's CPUs are hyperthreaded with more than one or two per core, the graph won't make it obvious which columns share a core. all siblings are still given consecutively, unless forced into separate NUMA nodes with
fakenumasettings. - Machines above circa 140 CPUs may not fit on an 80-column terminal. that's a lot of core. she's doing her best. π₯²
- All utilization figures are global to the machine even if caused by something else than the program you run.
π SEE ALSO π
htop, dstat, VTUNE.
go read those too, they're the friend group. π
and that's the whole page, babe π this one's from the General Commands Manual, dated 2019-12-29, and it's topline(1) β so go graph something pretty. slay, log, and hydrate. β¨π«Ά
π¦ where this page comes from
- debian trixie: topline 0.6-1 Β· GPL-2+noA
- fedora 43: topline 0.6-5.fc43 Β· GPL-2.0-or-later
- fedora 44: topline 0.6-6.fc44 Β· GPL-2.0-or-later
- ubuntu questing: topline 0.6-1
- ubuntu resolute: topline 0.6-1build1 Β· GPL-2+noA
- ubuntu stonking: topline 0.6-1build1 Β· GPL-2+noA
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms