Ich bin ein Webanwendungsentwickler, der mein Notebook als eigenständige Entwicklungsumgebung (WAMP-Stack) verwendet. Ich habe gerade von einem Core2 Duo Vista 32-Bit-Notebook mit 2 GB RAM und SATA-Festplatte auf ein i5-2520M Windows 7 64-Bit mit 4 GB RAM und 128 GB SSD (Corsair P3 128) umgestellt.
Meine anfängliche Erfahrung war das, was ich erwartet hatte, schneller Start, schnelles Laden aller Anwendungen (Eclipse dauert jetzt 5 Sekunden im Gegensatz zu 30 Sekunden auf meinem alten Notebook), insgesamt eine großartige Erfahrung. Dann begann ich meinen Entwicklungsstapel aufzubauen, sowohl als LAMP (unter Verwendung von VirtualBox mit einem Debian-Gast) als auch als WAMP (Windows-nativer Apache + MySQL + PHP). Ich wollte diese beiden vergleichen.
Das hat immer noch gut geklappt, dann habe ich angefangen, meine Projekte in diese Stapel zu ziehen. Und hier kam die böse Überraschung, dass eines dieser Projekte viel schlechtere Reaktionszeiten verursachte als auf meinem alten Notebook (das galt sowohl für die VirtualBox als auch für den WAMP-Stack). Apache-, PHP- und MySQL-Konfigurationen waren in allen Umgebungen praktisch identisch. Ich habe angefangen, viel Benchmarking und Profiling durchzuführen, und hier ist, was ich gefunden habe:
Alle allgemeinen Benchmarks (Leistungstest 7.0, HDTune Pro, wPrime2 und einige mehr) gaben dem neuen Notebook einen großen Vorteil. Hier ist nichts überraschend. Disc-spezifische Tests zeigten, dass die Lese- / Schreibvorgänge für die SSD einen Spitzenwert von 380 M / 160 M erreichten und alle Blockoperationen unterschiedlicher Größe ebenfalls sehr gut abschnitten.
Startete das Apache Performance Benchmarking mit Apache Benchmark für eine kleine statische HTML-Datei (10 gleichzeitige Threads, 500 Iterationen).
- Altes Notizbuch: min 47ms, median 111ms, max 156ms
- Neuer WAMP-Stapel: min. 71 ms, Median 135 ms, max. 296 ms
- Neuer LAMP-Stack (in VirtualBox): min 6 ms, median 46 ms, max 175 ms
Genau hier verstehe ich nicht, warum der native WAMP-Stack so schlecht lief, aber zumindest die LAMP-Umgebung brachte die erwartete Geschwindigkeit.Apache-Leistungsmessung für nicht zwischengespeicherten PHP-Inhalt. Das PHP führt eine Schleife von 1000 aus und generiert sha1 (uniqid ()) inisde. Wiederum wurden 10 gleichzeitige Threads und 500 Iterationen für den Benchmark verwendet.
- Altes Notizbuch: min 0ms, median 39ms, max 218ms
- Neuer WAMP-Stapel: min 20 ms, median 61 ms, max 186 ms
- Neuer LAMP-Stack (in VirtualBox): min. 124 ms, Median 704 ms, max. 2463 ms
Was zum Teufel? Die neue LAMP zeigte eine miserable Leistung, und selbst die neue native WAMP wurde vom alten Notebook übertroffen.PHP + MySQL Test. Der Test besteht aus dem Herstellen einer Verbindung zu einer Datenbank und dem Lesen eines einzelnen Datensatzes aus einer Tabelle mit INNER JOIN für drei weitere (indizierte) Tabellen, die 100 Mal innerhalb einer Schleife wiederholt werden. Datenbanken waren identisch. 10 gleichzeitige Threads, 100 Iterationen wurden für den Benchmark verwendet.
- Altes Notizbuch: min 1201 ms, Median 1734 ms, max 3728 ms
- Neuer WAMP-Stapel: min 367 ms, median 675 ms, max 1893 ms
- Neuer LAMP-Stack (in VirtualBox): min. 1410 ms, median 3659 ms, max. 5045 ms
Und der gleiche Test mit Parallelität auf 1 (statt 10):- Altes Notizbuch: min 1201 ms, median 1261 ms, max 1357 ms
- Neuer WAMP-Stapel: min 399 ms, median 483 ms, max 539 ms
- Neuer LAMP-Stack (in VirtualBox): min. 285 ms, median 348 ms, max. 444 ms
Streng genommen könnte ich mit dem Ergebnis des zweiten Tests zufrieden sein, da ich eine in sich geschlossene Entwicklungsumgebung (= geringe Parallelität) verwende. Obwohl ich keine Ahnung habe, warum die VirtualBox-Umgebung bei höherer Parallelität so schlecht abschneidet.Schließlich habe ich einen Test mit vielen PHP-Dateien durchgeführt. Die Anwendung, die ich am Anfang erwähnt habe und die so schlecht lief, hat einen schweren Bootstrap, lädt beim Initialisieren Hunderte kleiner Bibliotheks- und Konfigurationsdateien. Dieser Test enthält also nichts anderes als etwa 100 Dateien. Parallelität auf 1, 100 Iterationen festgelegt:
- Altes Notizbuch: min 140ms, median 168ms, max 406ms
- Neuer WAMP-Stapel: min. 434 ms, median 488 ms, max. 604 ms
- Neuer LAMP-Stack (in VirtualBox): min. 413 ms, median 1040 ms, max. 1921 ms
Selbst wenn ich bedenke, dass VirtualBox diese Dateien über freigegebene Ordner erreicht hat und dies die Dinge etwas verlangsamt, sehe ich immer noch nicht, wie das alte Notebook beide neuen Konfigurationen so stark übertreffen kann. Und ich denke, dies ist die eigentliche Wurzel der langsamen Leistung, da die Anwendung noch mehr Includes verwendet und der gesamte Bootstrap innerhalb einer Seitenanforderung mehrmals auftritt (z. B. für jeden AJAX-Aufruf).
Zusammenfassend bin ich hier mit einem brandneuen Hochleistungs-Notebook, das in 20 Sekunden dieselbe Seite lädt wie mein altes Notebook in 5-7 Sekunden. Unnötig zu erwähnen, dass ich momentan kein sehr glücklicher Mensch bin.
Warum habe ich diese schlechten Leistungswerte? Welche Möglichkeiten habe ich, um diese Situation zu beheben?
Es scheint, als hätte ich endlich die Wurzel des Problems gefunden. Anscheinend können SSDs Leistungseinbußen erleiden, wenn sie in Laptops mit Intel HM55- oder PM55-Chipsätzen verwendet werden. Bitte sehen Sie meine vollständige Antwort unten.