So, ich habe mich nun endlich entschieden einen eigenen Thread dafür zu eröffnen. Es soll hier um die Frage gehen, inwiefern die CPU die Leistung einer SSD im Alltag limitiert und wie sich dies in Startzeiten von Applikationen niederschlägt.
1. Einleitung / Worum geht's?
Durch SSDs wurde das Arbeiten am PC für viele extrem erleichtert, indem Start- und Reaktionszeiten von Programmen gegenüber HDDs erheblich reduziert wurden. Bei Verwendung einer HDD ist diese der klare Flaschenhals, wenn es um das Öffnen von Programmen geht - nichts ist nerviger als eine "rödelnde Platte" und eine "Sanduhr".
In diesem Thread soll geklärt werden, inwiefern dies bei SSDs noch zutrifft. Ist nach wie vor das Speichermedium der Flaschenhals? Wieso existieren in der Praxis praktisch keine Unterschiede zwischen SSDs, welche in synthetischen, sowie "Realworld" Benchmarks erhebliche Unterschiede aufzeigen? Diese Fragen interessieren mich brennend, da sie schlussendlich darüber entscheiden, ob ein Upgrade auf eine "neue" SSD sinnvoll ist oder nicht. Es werden nicht verschiedene SSDs getestet, sondern aufgezeigt, und teilweise bestätigt (darüber soll im Thread diskutiert werden), was eigentlich längst jedem Reviewer klar sein sollte: die Unterschiede zwischen SSDs sind minim, weil eine andere Komponente limitierend auf die Leistung wirkt und die meisten (synthetischen) Benchmarks von grösseren Seiten irreführend sind, wenn es um die "Gesamtperformance" des Systems geht. Dies soll nicht "die Wahrheit" darstellen, aber das Thema soll damit endlich mal besprochen werden...
2. Weiterer Hintergrund (wen's interessiert)
Auf die Idee, dass nicht die SSD der Flaschenhals ist, sondern die CPU, kam ich bereits vor fast 2 Jahren. Damals wollte ich eigentlich den Vorteil einer SSD gegenüber einer HDD aufzeigen und habe deshalb eine Batchdatei erstellt, in der über 30 Programme gleichzeitig gestartet werden. Dies habe ich mit dem Programm "CamStudio" direkt aufgenommen. Das habe ich damals in diesem Video festgehalten. Die Tests wurden natürlich ohne Aufnahme gemacht. Als ich das Ganze aufzeichnen wollte, fiel mir auf, dass die Prozedur bei der SSD plötzlich signifikant länger gedauert hat. Nun - es konnte nur an CamStudio liegen, da dieses den QuadCore um bis zu 25% auslastet. Ich habe dann festgestellt, dass die Startzeiten mit dem Takt der CPU korrelieren: senkte ich den Takt um x%, so erhöhten sich die Startzeiten um fast dieselben x%.
Ich wollte schon vor einem Jahr dem Ganzen etwas näher auf den Grund gehen (irgendwer muss es ja tun ), liess es aber bleiben. Da es diese Woche in diesem Thread wieder um dasselbe Thema ging und in einem anderen Thread, der nicht weiter erwähnt werden soll, die Vermutung eines CPU-Limits als lachhaft abgestempelt wurde, entschloss ich mich, mich dem Thema doch nochmals etwas näher zu widmen - schliesslich war es erst eine Vermutung und das Thema interessiert mich, da in dutzenden Reviews in synthetischen und scheinbaren "RealWorld" Benchmarks, wie den Tracebenchmarks von Anandtech, riesige Unterschiede zwischen den SSDs festgestellt werden, in der Praxis davon jedoch praktisch nichts zu sehen ist. Zudem berichten die Kollegen von XtremeSystems, welche zugegebenermassen etwas extremere Setups als ein "Normalo" fahren auch immerwieder von Limits der CPU.
Im bereits erwähnten Thread habe ich nun wieder einige Tests durchgeführt - und kam auch mit der Intel X25-M G2 80GB zum selben Schluss wie zuvor: die CPU hat einen extremen Einfluss auf die Startzeit von Programmen.
Um es etwas wissenschaftlicher zu gestalten und die Problematik genau aufzuzeigen habe ich denselben Test wie verlinkt nochmals durchgeführt. Diesmal habe ich das Prozedere aber in einem Trace festgehalten.
2. Testsystem
Gigabyte EP45-Extreme
Q9550 @ [333x6=[B]2.0GHz[/B]; 333x8=2.66GHz; 471x7=3.30GHz; 471x8=3.76GHz] - EIST off
2x2GB Mushkin EP-8500
Intel X25-M G2 80GB @ ICH10R (@AHCI)
Windows 7 Professional x64
3. Testablauf
Der Test besteht darin, eine Liste von Programmen zu starten und die Startzeit zu messen. Dies wird mit verschiedenen Taktraten der CPU durchgeführt. Gemessen wird die Zeit, bis die aufgelisteten Programme gestartet sind. Festgelegt wird die Start- und Endzeit über die CPU-Auslastung im Trace (welches nach meinen Vergleichstests definitiv Start- und Endzeit der Programmstarts repräsentieren).
Diese Prozedur wurde für 2.0GHz, 2.66Ghz, 3.30GHz und 3.76GHz jeweils 3x durchgeführt. Es kann vorkommen, dass gleichzeitig ein Prozess Leistung beansprucht - z.B. Autoupdates. Im Trace ist dies jedoch sofort ersichtlich - diese Messungen wurden wiederholt, damit 3 eindeutig gültige Messungen vorliegen.
4. Programmliste und I/O Verteilung
Das Skript startet folgende Programme "gleichzeitig". Das heisst die Befehle werden nacheinander abgearbeitet, die Programme starten in dieser Reihenfolge innerhalb von ~0.1s:
Die Liste sollte weder zu lang noch zu kurz werden. Es sind alles sehr "leichte" Programme (was sich in der Startzeit widerspiegelt). Die SSD als auch die CPU sollten etwas gefordert werden, um eine kurze Lastphase aufzuzeigen. Der Start von solchen Programmen, oder auch einigen gleichzeitig ist durchaus legitim und sollte die Vorteile von SSDs ausspielen.
Folgend die Grössenverteilung der I/Os und deren Queue Depths. Auf Wunsch kann ich auch die komplette Statistik einfügen, aber ein grober Überblick sollte reichen.
Insgesamt gibt es ~4550 lesende I/Os und insgesamt ~91 schreibende. Dies sollte bei der Betrachtung der Diagramme berücksichtigt werden. Überhalb von 64k kann es noch vereinzelt Operationen geben, aber der Übersichtlichkeit halber habe ich diese abgeschnitten - sie stehen in keinem Verhältnis zu den Operationen im abgebildeten Bereich.
5. Resultate
Die Balken zeigen die I/Os des Laufwerks an, die Graphen die Auslastung der einzelnen CPU-Kerne (Minimum = 0%, Maximum = 100%).
Für jede Taktung folgend ein Beispieltrace mit angegebener Start- und Endzeit:
2.00GHz
2.67GHz
3.30GHz
3.76GHz
Folgend die "Disk Utilization" bei 3.76GHz
Durchschnittliche Startzeiten und IOPS nach CPU-Takt
2.00GHz (100%) : 3.08s / 1495 IOPS (100%)
2.67GHz (134%) : 2.43s / 1895 IOPS (126%)
3.30GHz (165%) : 2.12s / 2170 IOPS (145%)
3.76GHz (188%) : 1.75s / 2630 IOPS (175%)
6. Schlussfolgerung
7. Einschränkungen
Dies waren Tests auf (m)einem System, mit einem Skript. Dies soll nicht "die Wahrheit" aufzeigen, sondern einen Aspekt beim Testen und Bewerten von SSDs einbringen, welcher meiner Meinung nach in der Vergangenheit zu wenig Aufmerksamkeit geschenkt wurde (falls denn meine Messungen korrekt sind). Ich kann nicht sagen, ob es auf anderen Systemen genau so aussieht oder inwiefern eine schnellere CPU eine SSD noch ausbremst oder inwiefern eine schnellere SSD die Startzeiten beschleunigt. Da die Auslastung der CPU extrem hoch war, diejenige der SSD jedoch gering und nur selten das Maximum erreichte, gehe ich davon aus, dass eine schnellere SSD nur sehr kleine Vorteile mit sich bringt, im Gegensatz zu einer schnelleren CPU.
Ich bin mehrfach über die Messungen und die Methodik durchgegangen und konnte keinen Fehler entdecken. Auch sehe ich keinen Denkfehler oder ähnliches in meiner Betrachtung. Falls dem so ist, ruhig sagen - dafür ist der Thread da.
1. Einleitung / Worum geht's?
Durch SSDs wurde das Arbeiten am PC für viele extrem erleichtert, indem Start- und Reaktionszeiten von Programmen gegenüber HDDs erheblich reduziert wurden. Bei Verwendung einer HDD ist diese der klare Flaschenhals, wenn es um das Öffnen von Programmen geht - nichts ist nerviger als eine "rödelnde Platte" und eine "Sanduhr".
In diesem Thread soll geklärt werden, inwiefern dies bei SSDs noch zutrifft. Ist nach wie vor das Speichermedium der Flaschenhals? Wieso existieren in der Praxis praktisch keine Unterschiede zwischen SSDs, welche in synthetischen, sowie "Realworld" Benchmarks erhebliche Unterschiede aufzeigen? Diese Fragen interessieren mich brennend, da sie schlussendlich darüber entscheiden, ob ein Upgrade auf eine "neue" SSD sinnvoll ist oder nicht. Es werden nicht verschiedene SSDs getestet, sondern aufgezeigt, und teilweise bestätigt (darüber soll im Thread diskutiert werden), was eigentlich längst jedem Reviewer klar sein sollte: die Unterschiede zwischen SSDs sind minim, weil eine andere Komponente limitierend auf die Leistung wirkt und die meisten (synthetischen) Benchmarks von grösseren Seiten irreführend sind, wenn es um die "Gesamtperformance" des Systems geht. Dies soll nicht "die Wahrheit" darstellen, aber das Thema soll damit endlich mal besprochen werden...
2. Weiterer Hintergrund (wen's interessiert)
Auf die Idee, dass nicht die SSD der Flaschenhals ist, sondern die CPU, kam ich bereits vor fast 2 Jahren. Damals wollte ich eigentlich den Vorteil einer SSD gegenüber einer HDD aufzeigen und habe deshalb eine Batchdatei erstellt, in der über 30 Programme gleichzeitig gestartet werden. Dies habe ich mit dem Programm "CamStudio" direkt aufgenommen. Das habe ich damals in diesem Video festgehalten. Die Tests wurden natürlich ohne Aufnahme gemacht. Als ich das Ganze aufzeichnen wollte, fiel mir auf, dass die Prozedur bei der SSD plötzlich signifikant länger gedauert hat. Nun - es konnte nur an CamStudio liegen, da dieses den QuadCore um bis zu 25% auslastet. Ich habe dann festgestellt, dass die Startzeiten mit dem Takt der CPU korrelieren: senkte ich den Takt um x%, so erhöhten sich die Startzeiten um fast dieselben x%.
Ich wollte schon vor einem Jahr dem Ganzen etwas näher auf den Grund gehen (irgendwer muss es ja tun ), liess es aber bleiben. Da es diese Woche in diesem Thread wieder um dasselbe Thema ging und in einem anderen Thread, der nicht weiter erwähnt werden soll, die Vermutung eines CPU-Limits als lachhaft abgestempelt wurde, entschloss ich mich, mich dem Thema doch nochmals etwas näher zu widmen - schliesslich war es erst eine Vermutung und das Thema interessiert mich, da in dutzenden Reviews in synthetischen und scheinbaren "RealWorld" Benchmarks, wie den Tracebenchmarks von Anandtech, riesige Unterschiede zwischen den SSDs festgestellt werden, in der Praxis davon jedoch praktisch nichts zu sehen ist. Zudem berichten die Kollegen von XtremeSystems, welche zugegebenermassen etwas extremere Setups als ein "Normalo" fahren auch immerwieder von Limits der CPU.
Im bereits erwähnten Thread habe ich nun wieder einige Tests durchgeführt - und kam auch mit der Intel X25-M G2 80GB zum selben Schluss wie zuvor: die CPU hat einen extremen Einfluss auf die Startzeit von Programmen.
Um es etwas wissenschaftlicher zu gestalten und die Problematik genau aufzuzeigen habe ich denselben Test wie verlinkt nochmals durchgeführt. Diesmal habe ich das Prozedere aber in einem Trace festgehalten.
2. Testsystem
Gigabyte EP45-Extreme
Q9550 @ [333x6=[B]2.0GHz[/B]; 333x8=2.66GHz; 471x7=3.30GHz; 471x8=3.76GHz] - EIST off
2x2GB Mushkin EP-8500
Intel X25-M G2 80GB @ ICH10R (@AHCI)
Windows 7 Professional x64
3. Testablauf
Der Test besteht darin, eine Liste von Programmen zu starten und die Startzeit zu messen. Dies wird mit verschiedenen Taktraten der CPU durchgeführt. Gemessen wird die Zeit, bis die aufgelisteten Programme gestartet sind. Festgelegt wird die Start- und Endzeit über die CPU-Auslastung im Trace (welches nach meinen Vergleichstests definitiv Start- und Endzeit der Programmstarts repräsentieren).
- Boot
- Warten bis keinerlei Aktivität mehr feststellbar ist (~10s)
- Starten des Trace mit dem Windows Performance Analysis Tool (xperf -on DiagEasy)
- Skript als Admin ausführen - ~5s warten (da dies Aktivität auslöst und ich den relevanten Teil im Trace genau eingrenzen möchte)
- Im UAC Fenster "OK" drücken
- Nach ~10s Trace speichern (xperf -d G:\..\..)
Diese Prozedur wurde für 2.0GHz, 2.66Ghz, 3.30GHz und 3.76GHz jeweils 3x durchgeführt. Es kann vorkommen, dass gleichzeitig ein Prozess Leistung beansprucht - z.B. Autoupdates. Im Trace ist dies jedoch sofort ersichtlich - diese Messungen wurden wiederholt, damit 3 eindeutig gültige Messungen vorliegen.
4. Programmliste und I/O Verteilung
Das Skript startet folgende Programme "gleichzeitig". Das heisst die Befehle werden nacheinander abgearbeitet, die Programme starten in dieser Reihenfolge innerhalb von ~0.1s:
- Excel 2010
- Word 2010
- PowerPoint 2010
- Acrobat Reader X
- foobar2000
- Internet Explorer 9
Die Liste sollte weder zu lang noch zu kurz werden. Es sind alles sehr "leichte" Programme (was sich in der Startzeit widerspiegelt). Die SSD als auch die CPU sollten etwas gefordert werden, um eine kurze Lastphase aufzuzeigen. Der Start von solchen Programmen, oder auch einigen gleichzeitig ist durchaus legitim und sollte die Vorteile von SSDs ausspielen.
Folgend die Grössenverteilung der I/Os und deren Queue Depths. Auf Wunsch kann ich auch die komplette Statistik einfügen, aber ein grober Überblick sollte reichen.
Insgesamt gibt es ~4550 lesende I/Os und insgesamt ~91 schreibende. Dies sollte bei der Betrachtung der Diagramme berücksichtigt werden. Überhalb von 64k kann es noch vereinzelt Operationen geben, aber der Übersichtlichkeit halber habe ich diese abgeschnitten - sie stehen in keinem Verhältnis zu den Operationen im abgebildeten Bereich.
5. Resultate
Die Balken zeigen die I/Os des Laufwerks an, die Graphen die Auslastung der einzelnen CPU-Kerne (Minimum = 0%, Maximum = 100%).
Für jede Taktung folgend ein Beispieltrace mit angegebener Start- und Endzeit:
2.00GHz
2.67GHz
3.30GHz
3.76GHz
Folgend die "Disk Utilization" bei 3.76GHz
Durchschnittliche Startzeiten und IOPS nach CPU-Takt
2.00GHz (100%) : 3.08s / 1495 IOPS (100%)
2.67GHz (134%) : 2.43s / 1895 IOPS (126%)
3.30GHz (165%) : 2.12s / 2170 IOPS (145%)
3.76GHz (188%) : 1.75s / 2630 IOPS (175%)
6. Schlussfolgerung
- Die Messungen der Traces sind, nach meiner Beurteilung, korrekt - ich habe unabhängig davon zuvor mittels Stoppuhr bei 2.67GHz und 3.76GHz die exakt gleichen durchschnittlichen Zeiten erhalten
- Die Startzeiten korrelieren sehr stark mit der Taktung der CPU.
- Die Ausnutzung des Laufwerks ist relativ tief, währenddem die CPU praktisch die gesamte Zeit zu 100% ausgelastet wird
- Diese Korrelation besteht nicht (oder nur in geringem Ausmass) bei HDDs. Rot, weil dies eigentlich auch noch getestet werden müsste, da sonst die Aussagekraft des Threads relativ gering wäre (schnellere CPU --> schnellere Startzeiten --> nichts neues!). Ich will aber eigentlich aufzeigen, dass dies erst mit der Geschwindigkeit von SSDs der Fall ist und dies deshalb kaum beachtet wurde. Da die Auslastung der CPU in vergangenen Tests (vgl. "2. Weiterer Hintergrund") bei Verwendung einer HDD jedoch sehr gering war (< 50% bei extremster Auslastung der HDD), gehe ich jedoch davon aus!
- Die CPU hat das Speichermedium bei der Nutzung einer (potenteren) SSD als Primärfaktor für Programmstartzeiten und "OS-Responsiveness" abgelöst. Der Flaschenhals ist nicht mehr die "HDD" sondern die CPU - auch dies leite ich nur indirekt von diesem Test ab, da mir zum Vergleich andere SSDs fehlen - bei der Betrachtung von den selten gewordenen Tests von "App-Starts" liegt der Schluss aber nahe, dass der Einfluss der SSD-Geschwindigkeit relativ gering ist.
- Ich stelle hiermit den Nutzen schnellerer SSDs auf heutigen herkömmlichen Systemen bezüglich "Systemperformance" in Frage und bitte Reviewer (mit mehr Ressourcen) von grösseren Seiten diese Thematik aufzugreifen.
7. Einschränkungen
Dies waren Tests auf (m)einem System, mit einem Skript. Dies soll nicht "die Wahrheit" aufzeigen, sondern einen Aspekt beim Testen und Bewerten von SSDs einbringen, welcher meiner Meinung nach in der Vergangenheit zu wenig Aufmerksamkeit geschenkt wurde (falls denn meine Messungen korrekt sind). Ich kann nicht sagen, ob es auf anderen Systemen genau so aussieht oder inwiefern eine schnellere CPU eine SSD noch ausbremst oder inwiefern eine schnellere SSD die Startzeiten beschleunigt. Da die Auslastung der CPU extrem hoch war, diejenige der SSD jedoch gering und nur selten das Maximum erreichte, gehe ich davon aus, dass eine schnellere SSD nur sehr kleine Vorteile mit sich bringt, im Gegensatz zu einer schnelleren CPU.
Ich bin mehrfach über die Messungen und die Methodik durchgegangen und konnte keinen Fehler entdecken. Auch sehe ich keinen Denkfehler oder ähnliches in meiner Betrachtung. Falls dem so ist, ruhig sagen - dafür ist der Thread da.
Zuletzt bearbeitet: