systemdspawner
systemdspawner copied to clipboard
Allow setting nice (process scheduling priority)
Proposed change
systemd-run
allows to set the niceness level with systemd-run --nice=19 ...
. Would be nice if we could spawn kernels with reduced niceness to reduce their priority.
Alternative options
- it might be possible to start a slice with a given niceness and start the kernels in this slice
- or jupyterhub itself could be run with reduced niceness and the kernels would inherit this (although this is not desirable)
- I think it's not possible to set the niceness via
--property=Nice=19
- Let me know if I am wrong.
Who would use this feature?
Sysadmins who'd like to reduce the priority of the kernels run on the system.
(Optional): Suggest a solution
- add a
Nice
traitlet toSystemdSpawner
, defaulting toNone
- expand the
systemd-run
command instart_transient_service
if nice is not None:
run_cmd += ['--nice={}'.format(nice)]
I am happy to open a PR if there's a chance to get this in.
It might actually work via property
. However, I could not really test it as the systemd version of my servers is still too old (currently: systemd 234; required systemd 244 (or 246) and higher). For a quick test:
systemd-run --user --pty --quiet --nice=19 nice
systemd-run --user --pty --quiet --property=Nice=19 nice
both lines should return 19. Neither version works in systemd 234 but work on systemd 246. Thus the issue can be closed.