numa-preplace(8)

πŸ“¦ version 0.1, in opensuse-leap 16.0

πŸ’– numa-preplace β€” bestie's guide to NUMA placement advice πŸ’–

ok so you found numa-preplace(8) in the Administration section and you're like "what is this" β€” don't worry, I got you. this whole page is gonna make sense, i promise 🫢


🌸 NAME 🌸

numa-preplace β€” a user-level program that hands out NUMA placement advice, no cap ✨


πŸŽ€ SYNOPSIS πŸŽ€

numa-preplace [-w NCPUS[:MB]]

that's it. that's the whole vibe. one optional flag and she's ready to go πŸ’…


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea: numa-preplace scans your NUMA topology and your resource usage, then spits back information to help management applications do that whole initial manual binding of CPU and memory resources for their processes. it's basically the friend who looks at the seating chart and tells you where everyone should sit πŸͺ‘βœ¨


πŸ”₯ OPTIONS πŸ”₯

  • -C <0|1> β€” this one controls whether numa-preplace treats inactive file cache as available memory or not. by default, numa-preplace assumes it can count inactive file cache as "free" memory when it's matching resources up with processes. so if you want it to instead consider inactive file cache a consumed resource, specify -C 0. also important: this does not apply for hugetlbfs pages πŸ™…β€β™€οΈ
  • -d β€” debug output in the log, sets the log level to LOG_DEBUG. literally the same effect as -l 7. she's chatty πŸ’¬
  • -h β€” display usage help info and then exit. the classic "wait what do i do again" button πŸ™ˆ
  • -l <log_level> β€” sets the log level to <log_level>. reasonable choices are 5, 6, or 7. the default value is 5. pick your fighter ⭐
  • -R <CPU_LIST> β€” specify a list of CPUs that numa-preplace should assume are reserved for non-numa-preplace use. no processes will be bound to the specified CPUs by numa-preplace, like, at all. hands off 🚫
  • -t <logical_CPU_percent> β€” specify the resource value of logical CPUs. here's the why: hardware threads typically share most core resources, so logical CPUs only add a fraction of CPU power for many workloads. by default numa-preplace considers logical CPUs to be only 20 percent of a dedicated hardware core. yeah, twenty. she's thrifty πŸ’€
  • -v β€” verbose output in log, sets the log level to LOG_INFO. same effect as -l 6. slightly less chatty than -d πŸ—£οΈ
  • -V β€” display version information and exit. quick vibe check on what version you're running πŸ‘‘
  • -w <NCPUS[:MB]> β€” okay this is the main character option fr fr. it queries numa-preplace for the best NUMA nodes to bind an entity that needs <NCPUS>. the amount of memory (in MBs) is optional, but you should normally specify it too as <:MB> so numa-preplace can recommend NUMA nodes with available CPU capacity and adequate free memory. the output of this option is a string containing a NUMA node list. for example: 2-3,6. 🎯

the recommended node list could be saved in a shell variable (e.g., NODES) and then used as the node list parameter in a

numactl -m $NODES -N $NODES ...

command. see numactl(8). iconic combo, honestly πŸ’–


πŸ“ FILES πŸ“

  • /usr/sbin/numa-preplace

that's where she lives 🏠


🧚 ENVIRONMENT VARIABLES 🧚

None.

literally none. nothing to configure here, go touch some grass 🌱


πŸ’œ EXAMPLES πŸ’œ

/usr/bin/numa-preplace -w 4:4096

four CPUs, 4096 MB of memory, and she'll tell you which nodes to love πŸ₯°


✨ AUTHORS ✨

Claudio Fontana <claudio.fontana@suse.com> derived from numad by Bill Gray <bgray@redhat.com>

shoutout to the lineage, we stan a derived work πŸ‘


🌈 SEE ALSO 🌈

go read that one next, iykyk πŸ“–


lowkey reminder bestie: inactive file cache counting as "free" is the default behavior β€” flip it with -C 0 if that's not your truth. and those -R CPUs? absolutely untouchable. πŸ”’

and that's the whole page!! this one's version 1.0.0, brought to you by Bill Gray, dated back in the day, and filed under numa-preplace(8) in the Administration section β€” mwah, go bind some resources responsibly πŸ’‹πŸ’…

πŸ“¦ where this page comes from