Warum Ihr neuer Server im Benchmark langsamer misst als der alte, obwohl er es nicht ist.
Ein niedrigerer bogomips-Wert nach einer Migration ist kein langsamerer Server, sondern ein Artefakt der Virtualisierung. Was er wirklich misst, und wie Sie echte Arbeit testen.
In diesem Artikel 5 Abschnitte
Eine häufige Frage nach einer Migration ist, ob ein niedrigerer bogomips-Wert einen langsameren Server bedeutet. Tut er nicht. So haben wir sie beantwortet.
- Ein Kunde, der gerade auf unsere Plattform migriert war, bemerkte, dass ein Wert namens bogomips niedriger ausfiel als auf seiner alten Maschine, und fragte, ob der neue Server langsamer sei.
- bogomips misst nichts, was Sie kaufen wollen würden. Es ist eine Kalibrierungsschleife, die der Kernel beim Booten laufen lässt, um seine eigenen internen Verzögerungen zu bemessen. Auf einem virtuellen Host spiegelt der Wert den präsentierten Takt des Gasts wider, während der physische Kern darunter weiter mit vollem Turbo läuft.
- Nehmen Sie den Stellvertreterwert nicht auf Treu und Glauben. Führen Sie die echten Benchmarks selbst aus, kryptografische und CPU-Workloads, auf beiden Maschinen: Eine neuere Prozessorgeneration ist schneller, mit breiteren Instruktionen. Die echte Arbeit beantwortet die Frage.
- Die Lektion: Eine Messung ist nur so gut wie das, was sie misst. Streiten Sie nicht über den Stellvertreterwert. Benennen Sie, was er wirklich misst, und lassen Sie dann echte Arbeit entscheiden.
Die Zahl hinter der Frage
Er hatte bogomips auf seiner alten und seiner neuen Maschine verglichen, und der neue Wert fiel niedriger aus. Wörtlich genommen sieht das nach einem Abstieg aus. Ist es nicht, und um zu sehen, warum, müssen Sie wissen, was diese Zahl ist.
$ grep -m1 bogomips /proc/cpuinfoWas bogomips tatsächlich misst
bogomips ist kein Benchmark. Es ist eine Kalibrierungsschleife, die der Kernel beim Booten einmal laufen lässt, um seine eigenen internen Zeitverzögerungen zu bemessen, damit er ungefähr weiß, wie viele Busy-Loops in ein gegebenes Intervall passen. Der Name ist ein Scherz, den die Kernel-Entwickler auf eigene Kosten gemacht haben: bogus millions of instructions per second. Auf einem virtualisierten Host ist die Zahl noch mehr bogus als sonst, weil sie den präsentierten Takt des Gasts widerspiegelt, den Wert, den der Hypervisor der VM übergibt, während der physische Kern darunter weiter mit vollem Turbo läuft. Ein niedrigerer bogomips-Wert ist eine Eigenheit davon, wie die Virtualisierung den Takt darstellt, kein Verlust von irgendetwas Realem.
“bogomips misst nichts, was Sie kaufen wollen würden.”
Der Wert ist gesunken. Das Silizium nicht.
Der Stellvertreterwert gegen die echte Arbeit
Jede Diskussion der Art «mein Server ist langsamer geworden» ist in Wirklichkeit ein Streit darüber, was Sie zu messen beschlossen haben. Legen Sie den Stellvertreterwert neben die Arbeit, und der Streit endet.
| DER STELLVERTRETER: BOGOMIPS | DIE ECHTE ARBEIT: EIN BENCHMARK | |
|---|---|---|
| Was es tatsächlich ist | Eine Kalibrierungsschleife, die der Kernel beim Booten einmal laufen lässt, um seine Zeitverzögerungen zu bemessen | Kryptografische und CPU-Workloads, die für das stehen, was Ihre Anwendung unter Last tut |
| Was es auf einem virtuellen Host anzeigt | Den präsentierten Takt des Gasts, eine Zahl, die der Hypervisor der VM übergibt | Ausgeführte Instruktionen auf dem physischen Kern, der weiter mit vollem Turbo läuft |
| THE ONE THAT MATTERSBewegt es sich, wenn die Hardware neuer wird? | Nicht zuverlässig. Es folgt einem virtualisierten Taktwert, nicht dem Silizium | Ja. Eine neuere Generation mit breiteren Instruktionen erledigt mehr pro Takt |
| Wann es gemessen wird | Einmal, beim Booten, dann nie wieder | Auf Abruf, so oft Sie wollen, von Ihnen |
| Können Sie es kaufen? | Niemand verkauft bogomips, und kein Nutzer hat je eines gespürt | Ja. Das ist die Arbeit, für deren schnellere Erledigung Sie bezahlen |
Messen Sie die Arbeit, nicht den Stellvertreter
Der verlierende Zug ist, zu sagen, bogomips sei bedeutungslos, und es dabei zu belassen, denn das verlangt von einem Kunden, seine Zahl gegen unser Wort zu tauschen. Also haben wir das Gegenteil getan. Wir haben benannt, was bogomips wirklich misst, und ihm dann die Benchmarks gegeben, die er selbst ausführen konnte: echte kryptografische und CPU-Workloads, von der Art, die für das steht, was eine Anwendung tatsächlich tut. Wir haben eine Anmerkung hinzugefügt. Die neuere Prozessorgeneration unter seiner VM ist schneller, mit breiteren Instruktionen, sodass die echte Arbeit sehr wahrscheinlich vorne liegen würde, nicht hinten.
# stop measuring the proxy. measure the work.
$ openssl speed -evp aes-256-gcm # cryptographic throughput
$ sysbench cpu --cpu-max-prime=20000 run # raw CPU work
# run on the old box and the new one, then compare the work, not the clock.Messen Sie die Arbeit, nicht den Takt
: Wählen Sie Workloads, die Ihrer Anwendung ähneln. Kryptografischer Durchsatz und ein CPU-Test sind ein fairer, ehrlicher Anfang. bogomips, MHz und «Scores» aus einer einzigen Zahl sind Stellvertreter. Überspringen Sie sie.
Führen Sie identische Befehle auf beiden Maschinen aus
: Das Einzige, was Sie vergleichen, ist, wie viel echte Arbeit jede in derselben Wanduhrzeit erledigt.
Lassen Sie das Ergebnis entscheiden
: Wenn die neue Maschine mehr Arbeit erledigt, war die Migration ein Upgrade und der bogomips-Wert Rauschen. Wenn sie wirklich weniger erledigt, haben Sie jetzt eine echte Zahl, und wir haben jetzt etwas, das sich gemeinsam zu untersuchen lohnt.
Die Lektion
Eine Messung ist nur so gut wie das, was sie tatsächlich misst. Wenn ein Kunde mit einem Stellvertreterwert kommt, ist der Zug nicht, über die Zahl zu streiten. Er ist, zu benennen, was die Zahl wirklich misst, und dann echte Arbeit entscheiden zu lassen. Die Maschine darunter war die ganze Zeit ruhig und schnell. Das Einzige, was langsamer wurde, war der Benchmark.
Klare Antworten
Ist ein niedrigerer bogomips-Wert auf meinem neuen Server ein Problem?+
Fast nie. bogomips ist eine Kalibrierungsschleife des Kernels beim Booten, kein Performance-Benchmark. Auf einer virtuellen Maschine spiegelt es den präsentierten Takt des Gasts wider, während der physische Kern darunter weiter mit vollem Turbo laufen kann. Ein niedrigerer Wert ist meist ein Virtualisierungsartefakt, keine verlorene Leistung.
Warum ist bogomips auf einer virtuellen Maschine oder nach dem Umzug auf einen VPS niedriger?+
Weil der Hypervisor dem Gast einen Taktwert präsentiert und der Kernel beim Booten gegen diesen präsentierten Wert kalibriert. Der physische Kern läuft weiter mit seiner echten, oft höheren Turbo-Geschwindigkeit. Der Wert hat sich geändert. Das Silizium nicht.
Mein neuer Server fühlt sich nach der Migration langsamer an. Was soll ich zuerst prüfen?+
Vergewissern Sie sich zuerst, dass Sie die Arbeit messen und nicht einen Stellvertreter wie bogomips, Takt-MHz oder einen synthetischen Score aus einer einzigen Zahl. Prüfen Sie dann die echten Verursacher aus unserem Diagnose-Playbook: Latenz der Datenbankabfragen, Tiefe der Festplattenwarteschlange, Sättigung der PHP-Worker oder Wartezeit im Netzwerk. Nach einer Migration prüfen wir als Erstes, ob sich die Metrik geändert hat, nicht die Maschine.
Wie erkenne ich tatsächlich, ob mein neuer Server langsamer ist?+
Führen Sie die Arbeit aus, nicht den Stellvertreter. Benchmarken Sie Workloads, die Ihrer Anwendung ähneln, einen Test für kryptografischen Durchsatz (openssl speed) und einen CPU-Test (sysbench), und führen Sie identische Befehle auf beiden Maschinen aus. Echte Arbeit entscheidet es in Minuten.
Ist ein niedrigerer Takt der neuen CPU nicht ein Abstieg?+
Nicht für sich allein. Der Takt ist eine Eingangsgröße. Eine neuere Generation mit breiteren Instruktionen erledigt mehr Arbeit pro Takt und kann daher bei niedrigerem Nenntakt schneller fertig sein. Genau deshalb führt Sie ein Wert aus einer einzigen Zahl in die Irre.
Ich bin gerade migriert und etwas zeigt sich langsamer. Helfen Sie mir beim Prüfen?+
Ja. Schicken Sie uns die Zahl. Wir sagen Ihnen, was sie tatsächlich misst, und geben Ihnen den Benchmark, den Sie selbst ausführen. Wenn die echte Arbeit wirklich langsamer ist, ist das ein echtes Ticket, und wir graben gemeinsam mit Ihnen nach. Wenn nicht, haben Sie in ein paar Minuten den Beweis.
Gerade migriert, und etwas zeigt sich langsamer?
Schicken Sie uns die Zahl, und wir sagen, was sie misst. Kein Vertrauen nötig.
Mit einem Ingenieur sprechenSie haben das Ende erreicht.
Setzen Sie das Gelesene um
Was betreiben Sie?
Erzählen Sie uns von Workload, Traffic und Anforderungen an die Wiederherstellung. Beginnen Sie mit dem Server-Konfigurator oder besprechen Sie die Details mit einem Ingenieur.
Geschrieben von den Ingenieuren, die die beschriebene Infrastruktur bauen und betreiben.Mit einem Ingenieur sprechen
