Thanks to everyone sharing information. Basically that’s what I expected, too, 
except this:
I run about 10 instances of the timer, and all 10 instances are started at the 
same second. My initial expectation wad that systemd might spread the instances 
in the 6 hour windows somehow.
Maybe starting the next instance once the previous instance had finished.
I’m somewhat unsure about the energy saving: Will 10 jobs run simultaneously 
consume less power than the 10 jobs run sequentially? My guess is that the 
timer overhead may be negligible.

Regards,
Ulrich

From: Adrian Vovk <adrianv...@gmail.com>
Sent: Monday, August 19, 2024 10:45 AM
To: Andrei Borzenkov <arvidj...@gmail.com>
Cc: Barry <ba...@barrys-emacs.org>; Windl, Ulrich <u.wi...@ukr.de>; Systemd 
Devel <systemd-devel@lists.freedesktop.org>
Subject: [EXT] Re: [systemd-devel] Re: Understanding the effect of AccuracySec=


I don't have the initial email for some reason (got caught in spam filter? Idk) 
so I don't have the full context.
On Mon, Aug 19, 2024, 03:55 Andrei Borzenkov 
<arvidj...@gmail.com<mailto:arvidj...@gmail.com>> wrote:
On Mon, Aug 19, 2024 at 10:11 AM Barry 
<ba...@barrys-emacs.org<mailto:ba...@barrys-emacs.org>> wrote:
>
>
>
> On 19 Aug 2024, at 06:55, Windl, Ulrich 
> <u.wi...@ukr.de<mailto:u.wi...@ukr.de>> wrote:
>
>
> Despite of the fact that my version of systemd does not know that setting, 
> can you explain what the effect of AccuracySec= really is?
>
>
> The docs https://www.man7.org/linux/man-pages/man5/systemd.timer.5.html say 
> this
>
>  Note that this setting is primarily a power saving option
>            that allows coalescing CPU wake-ups. It should not be
>            confused with RandomizedDelaySec= (see below) which adds a
>            random value to the time the timer shall elapse next and
>            whose purpose is the opposite: to stretch elapsing of timer
>            events over a longer period to reduce workload spikes. For
>            further details and explanations and how both settings play
>            together, see below.
>
> So if you have 5 timers that expire about the same time this allows them to 
> all run at the sane time thus saving power.

It does explain why timers are run at the same time. It does not
explain why "daily" + accuracy 6h runs at midnight, not close to 6am

When your timer is scheduled for 00:00 but accuracy is 6h, then systemd will 
try to fire the timer at 00:00 but is allowed to be up to 6 hours "late" to 
save power. So the timer will fire at any time between 00:00 and 06:00.

Let's say you have another timer set to fire at 01:00 + 6hr accuracy. systemd 
will likely fire both timers at around 01:00. The first timer is allowed to 
start anywhere between 00:00 and 06:00 and the second between 01:00 and 07:00. 
These ranges intersect from 01:00 to 06:00, so systemd will fire both timers at 
some point in that range. It's free to pick exactly when and I'm not looking at 
the code, but I wouldn't be surprised if it'll pick a time closer to 01:00 to 
minimize the amount of time it's "late".

Reply via email to