Systemd Timer in Intervallen laufen lassen

  • Moin,

    ich versuche aktuell, ein paar Systemd Timer in Intervallen laufen zu lassen. Natürlich könnte ich es mir einfach machen und meinen Timer z.B. mit einem

    Code
    OnCalendar=*:00/10

    ausstatten, wodurch der Job um 10, 20, 30, ... läuft.


    Allerdings ist mir das relativ egal, ob der Timer z.B. 10, 20, 30, ... oder z.B. 07, 17, 27, 37, ... läuft - wichtig ist, dass der Intervall eingehalten wird. Hintergrund ist einfach eine bessere Lastverteilung - wir reden hier von mindestens 10 Servern, die das machen. Laufen die alle um genau 10, 20, 30, ... gibt es Peaks auf den darunterliegenden Hostsystemen. Laufen die alle zu random Zeiten, kann ich die Peaks ein wenig abfedern.


    Leider werde ich da gerade auch nicht so 100% schlau, wie so etwas geht, wenn ich das Internetz befrage. Vielleicht hat das Schwarmwissen hier ja eine Idee. :)


    Danke schon einmal!


    - who

    "Denn der radikalste Zweifel ist der Vater der Erkenntnis."

    -Max Weber

  • Zur hilfreichsten Antwort springen
  • wie wäre es wenn Du das von einer zentralen Stelle aus triggerst

    z.B. so

    auf einem host hast einen Cronjob der jede Minute läuft

    und der hat in einer Tabelle stehen, dass z.B.

    um hh:m3 Server 7 dran is

    um hh:m7 Server 2 dran is

    und so weiter


    je nachdem welcher Server dran is

    wird das dann per ssh remote gestartet

    Grüße / Greetings

    Walter H.


    RS, VPS, Webhosting - was man halt so braucht;)

    • Hilfreichste Antwort

    Hi,


    da dürften die Optionen RandomizedDelaySec und eventuell FixedRandomDelay helfen. Damit wird der Timer um eine zufällige Zeit verschoben und die Hosts verteilen sich. Mit FixedRandomDelay bleibt dabei das Intervall trotzdem konstant.


  • whoami0501

    Hat einen Beitrag als hilfreichste Antwort ausgewählt.