BOOTCHART.CONF(5)

πŸ“¦
version 235 Β· 2 versions
  • 235 Β· arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 234 Β· debian bookworm, ubuntu jammy
, in arch rolling, debian trixie, fedora 43, fedora 44, nixos 26.05, nixpkgs unstable, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’– BOOTCHART.CONF(5) πŸ’–

okay bestie, gather round, because today we're talking about bootchart.conf and bootchart.conf.d β€” the configuration files for the Boot performance analysis graphing tool πŸŽ€βœ¨ yes, that's literally the whole vibe. it's giving "your boot process, but make it a graph."


✨ SYNOPSIS ✨

/etc/systemd/bootchart.conf

/etc/systemd/bootchart.conf.d/*.conf

/run/systemd/bootchart.conf.d/*.conf

/usr/lib/systemd/bootchart.conf.d/*.conf

🌸 DESCRIPTION 🌸

so when systemd-bootchart starts up, it reads the config file /etc/systemd/bootchart.conf, and then it reads the files in the bootchart.conf.d directories. these config files are the ones deciding your logging parameters and your graph output. no cap, that's their entire job πŸ’…


πŸ‘‘ CONFIGURATION DIRECTORIES AND PRECEDENCE πŸ‘‘

the default configuration gets defined during compilation, so you only need a config file when you wanna deviate from those defaults. by default, the config file in /etc/systemd/ contains commented out entries showing the defaults, as a little guide for the administrator 🫢. you can edit that file to create local overrides.

when packages need to customize the configuration, they can install configuration snippets in /usr/lib/systemd/*.conf.d/. files in /etc/ are reserved for the local administrator, who may use this logic to override the config files installed by vendor packages. so here's the tea:

  • the main configuration file is read before any of the configuration directories, and it has the lowest precedence.
  • entries in a file in any configuration directory override entries in that single main configuration file.
  • files in the *.conf.d/ configuration subdirectories are sorted by their filename in lexicographic order, regardless of which of the subdirectories they reside in.
  • if multiple files specify the same option, the entry in the file with the lexicographically latest name takes precedence.

it is recommended to prefix all filenames in those subdirectories with a two-digit number and a dash, to simplify the ordering of the files. like 10-my-thing.conf, you know? iconic behavior πŸ”₯

to disable a configuration file supplied by the vendor, the recommended way is to place a symlink to /dev/null in the configuration directory in /etc/, with the same filename as the vendor configuration file. poof, gone πŸ’€


⭐ OPTIONS ⭐

  • Samples=500 β€” configure the amount of samples to record in total before bootchart exits. each sample will record at intervals defined by Frequency=. so like, how many lil snapshots do we take before we dip πŸ“Έ
  • Frequency=25 β€” configure the sample log frequency. this can be a fractional number, but it must be larger than 0.0. most systems can cope with values under 25-50 without impacting boot time severely. don't go wild, bestie.
  • Relative=no β€” configures whether the left axis of the output graph equals time=0.0 (CLOCK_MONOTONIC start). this is useful for using bootchart at post-boot time to profile an already booted system, otherwise the graph would become extremely large 😭. if set to yes, the horizontal axis starts at the first recorded sample instead of time=0.0.
  • Filter=no β€” configures whether the resulting graph should omit tasks that did not contribute significantly to the boot. processes that are too short-lived (only seen in one sample) or that do not consume any significant CPU time (less than 0.001sec) will not be displayed in the output graph. bye girl, you didn't do enough πŸ‘‹
  • Output=[path] β€” configures the output directory for writing the graphs. by default, bootchart writes the graphs to /run/log.
  • Init=[path] β€” configures bootchart to run a non-standard binary instead of /usr/lib/systemd/systemd. this option is only relevant if bootchart was invoked from the kernel command line with init=/usr/lib/systemd/systemd-bootchart.
  • PlotMemoryUsage=no β€” if set to yes, enables logging and graphing of processes' PSS memory consumption. memory tea β˜•
  • PlotEntropyGraph=no β€” if set to yes, enables logging and graphing of the kernel random entropy pool size. chaos, but measured 🌈
  • ScaleX=100 β€” horizontal scaling factor for all variable graph components.
  • ScaleY=20 β€” vertical scaling factor for all variable graph components.
  • ControlGroup=no β€” display process control group.
  • Cmdline=no β€” display the full command line of each process.

πŸ¦‹ SEE ALSO πŸ¦‹


and that's the whole page, bestie!! πŸ’– this lil manual came from systemd 235, and yeah, it's BOOTCHART.CONF(5) fr fr β€” go graph that boot, you absolute main character πŸ‘‘βœ¨

πŸ“¦ where this page comes from