Schaltsekunden Update

4 Juli 2012 4 Kommentare Autor: Thomas (td)

Offenbar waren neben MTux Logo 300x275ozilla und Google auch anderer Betreiber von Rechenzentren von der zum Monatswechsel eingefügten Schaltsekunde betroffen. So forderte beispielsweise Hetzer Online seine Kunden am Montag per E-Mail auf, die CPU-Auslastung ihrer Systeme zu prüfen und diese gegebenenfalls neu zu starten, was die Prozessorlast im Bedarfsfall wieder auf ein normales Maß reduziere. Grund war, dass der Stromverbrauch in den Rechenzentren von Hetzner Online in der Nacht des Monatswechsels um „etwa ein Megawatt“ gestiegen war.

Nachdem ich ausführlich geschildert habe, was die physikalische und gesellschaftliche Notwendigkeit für die Schaltsekunde an sich ist, möchte ich heute nachschieben, worin genau der Bug bei den betroffenen Linux-Kerneln besteht. Doch Eines vorweg: wer bis heute nichts gemerkt hat, hat auch kein Schaltsekunden-Problem, jedenfalls nicht am Rechner und zum Beheben der durch den betreffenden Bug auftretende Lastspitzen genügt es normalerweise, den Rechner neu zu starten. Wer seinen Linux-Server ohnehin täglich ausschaltet ist sowieso fein raus. Wer die Uptime seine Servers nicht beeinträchtigen möchte, kann in den meisten Fällen auch einfach die Systemzeit neu setzen.

High Resolution Timer

Die Rechenzentren von Hetzner Online hatte in der Nacht von Sa auf So rund 1 einen Anstieg des Energieverbrauches von rund 1 Megawatt zu verzeichnen. (Quelle: Hetzner Online)

Dass in vielen Rechenzentren die CPUs einiger Linux-Systeme nach dem Einfügen der Schaltsekunde am Montag früh 2.00 Uhr MEZ unter Volllast liefen, liegt an einem Bug im Kernel-Code für „High-Resolution Timer“ (Hrtimer). Der ist bei den Kerneln zahlreicher Distributionen aktiv, jedenfalls dann, wenn dieser vom Distributor oder RZ-Betreiber mit der Konfigurationsoption „CONFIG_HIGH_RES_TIMERS“ konfiguriert und übersetzt wurden.

Bug Fix

Der Bug wurde wie von mir beschrieben durch den Kernel-Entwickler John Stultz, der seit Jahren für den Timer-Code des Linux-Kernels mit verantwortlich ist, im aktuellen Kernel bereits im März gefixed. Darüber hinaus arbeitet Schultz seit Sonntagabend an einem Korrektur-Patch, der mittlerweile ebenfalls in der dritten Version vorliegt. Solltest Du also einen Root-Server bei Hetzner, Strato oder sonst wo betreiben, kann es nicht schaden zu prüfen, ob der noch läuft. Sollte Dein Server oder Deine Website down sein, solltest Du allerdings schon davon erfahrenen haben, was den Heim-Server angeht sowieso.

Auch „Hetzner Online“ war vom Schaltsekunden-Problem betroffen. (Quelle: Hetzner Online)

Durch den Kernel-Fehler setzt der Hrtimer-Code die Systemzeit beim Einfügen der Schaltsekunde nicht, sodass die Hrtimer-Repräsentation der vom Kernel „angenommenen“ Zeit um eine Sekunde voraus ist. Das wäre im Prinzip nicht tragisch. Ruft aber ein Software-Programm eine Kernel-Funktion mit einem Timeout<1 Sekunde auf, geht der Kernel unmittelbar nach dem Setzen des Timers davon aus, dass der Timeout abgelaufen ist und springt zum Code des Programms zurück. Es liegt in der Natur einer Timeout-Behandlung, dass viele Programme die angeforderte Operation einfach wiederholen wollen und unmittelbar einen  neuen Timer setzen, was letztlich zu einer Endlosschleife führen kann, die den Prozessor voll auslastet.

Apropos Jahr 2600

Sollte die Ersatzteilmedizin, die Entwicklung bionischer Prothesen, sowie die Bio-Informatik bis dahin tatsächlich soweit sein, dass Du die angepeilte Schaltstunde miterleben darfst, wird der bis dahin im Stable-Zweig von Debian 8 angekommene Hrtime-Patch nicht Dein primäres Problem sein, sondern ob Google Dein Androhirn-Update für den KI-Prozessor nicht blockiert, weil Du Deinen Denk-Prozessor illegalerweise gerootet hast, um Dich ohne Bot-Kontrolle durch Big Browser heimlich mit exotischen Systemen Windows zu befassen. Die Älteren unter uns werden sich erinnern. Ob Schalke bis dahin deutscher Meister war und die Nationalelf Italien besiegen konnte?

Du kannst gerne Deinen Senf zu diesem Beitrag geben: Hier geht es zu den Kommentaren




Schreiben macht durstig! Eine kleine Erfrischung kann daher nie schaden. Wem dieser freie Artikel gefallen hat, der darf mir gerne einen frisch gezapften Hopfen-Tee ausgeben (Paypal - der Spenden-Knopf
oder bitcoin - Adresse: 1NacVNwcLLePUVv8uSafu5Ykdwh8QyDfgK). Ich freue mich über jede noch so kleine Spende. Vielen Dank und Prost!
 Alle Kommentare als Feed abonnieren

4 Kommentare zu “Schaltsekunden Update”

  1. senden9 sagt:

    Interessant. Das heißt, dass die Distribution schuld ist, da sie den Patch nicht eingespielt hat?

  2. Gerald sagt:

    Von welchen Schaltsekunden sprechen wir, wenn die nächste erst im Jahr 2600 sein soll?

    Schaltsekunden werden doch ständig eingefügt, da die Erde nicht "rund" läuft. Der Gravitationseinfluss von Mond, Sonne und anderen Planeten sorgt dafür, aber sogar Wetterphänomene (wenn z.B. in der Äquatorregion längere Zeit besonders viel oder wenig Wasserdampf in der Luft ist).

    Dh. im Normalfall gibt es 2 bis 3 Schaltsekunden im Jahr, mal vor, öfter aber zurück, da unser 24-Stunden-"Kalender" ja schon ein paar 100 Jahre alt ist, die Erdrotation Dank Mond aber immer langsamer wird.

    Ich denke, das Problem wird hier eine der selteneren Vorwärts-Schaltsekunden sein, und gerade die ist nicht durch den Mond bedingt.

  3. Gerald sagt:

    OK., lesen bildet. 🙂 Es war also von einer ev. geplanten Schaltstunde im Jahr 2600 die Rede. Und die kurzzeitigen Schwankungen werden offenbar von NTP nicht berücksichtigt.

Antworten