[systemd-devel] Parent slices and resource control

Lennart Poettering lennart at poettering.net
Mon Jun 1 10:22:03 UTC 2020


On So, 31.05.20 14:36, Patrick Dimond (me at ptrckd.com) wrote:

> Hi,
> I was reading the documentation for systemd.resource-control and came
> across this sentence under accounting settings.
>
> "Note that turning on memory accounting for one unit will also
> implicitly turn it on for all units contained in the same slice
> and for all its parent slices and the units contained therein."
>
> What exactly is a parent slice?
>
> >From systemd.slice
> "Slices are organized hierarchically in a tree. The name of the slice
> encodes the location in the tree. The name consists of a dash-separated
> series of names, which describes the path to the slice from the root
> slice. The root slice is named -.slice. Example: foo-bar.slice is a
> slice that is located within foo.slice, which in turn is located in the
> root slice -.slice."
>
> Does turning on accounting in one slice or service end up turning it on
> for everything? Does every slice exist under the root slice?


Consider this tree:

-.slice
`- foo.slice
|  `- miau.service
`- bar.slice
|  `- bar-quux.slice
|  |  `- daemon.service
|  |  `- otherdaemon.service
|  `- bar-uuu.slice
|     ` rumpel.service
`- zzz.slice
   `- zzz-yyy.slice
      `- wuff.service

And now you turn on memory accounting in daemon.service. This would
then propagate up the three, so you get memory accounting on all its
parents too: bar-quux.slice, bar.slice and -.slice. And you will get
it turned on forthe units immediately in throse, i.e. also in
otherdaemon.service, bar-uuu.slice, foo.slice, zzz.slice. However, it
will not be turned on in: miau.service, rumpel.service, zzz-yyy.slice
and wuff.service, since those are neither in the path to the root
slice nor immediately inside any of those slices.

Makes sense?

Lennart

--
Lennart Poettering, Berlin


More information about the systemd-devel mailing list