DT Performance Messung
Wenn Sie primär einmal eine einfache Festplatte in ihrem Desktop einem Test untersuchen wollen, dann ist die Freeware HDTUNE http://www.hdtune.com/ einfacher und besser geeignet.
Einer der wesentlichen Faktoren für einen Server ist der Durchsatz des Festplattensubsystems. Prozessorleistung, Hauptspeicher und Netzwerkleistung nehmen sehr schnell zu, aber die Zugriffszeit von Festplatten steigt seit einiger Zeit kaum noch. Mechanik ist der limitierende Faktor. Auch wenn Drehzahl und Datendichte zunehmen, so bleibt die Bewegungsgeschwindigkeit der Köpfe auf dem gleichen Niveau und damit die Positionierungszeit im Millisekundenbereich.
Hier helfen dann ausgefeilte Cache Algorithmen und RAID-Controller weiter. Trotzdem ist es wichtig, die installierten Systeme auch zu testen und mit bestehenden Systemen zu vergleichen. Besonders interessant sind hierbei die Auswirkungen von Veränderungen in der Konfiguration. (Write Back vs. Write Through, RAID-Stripesetgröße, RAID-Level) Wenn Sie hier die Zeit zum experimentieren haben, dann sollten Sie diese nutzen.
Unter der Vielzahl von Testprogrammen haben ich hier DT.EXE ausgewählt, weil es ohne Installation einfach aufzurufen ist und unter Windows läuft. Damit wird auch der Treiber und das Gesamtsystem einem Test unterzogen.
So arbeitet DT
DT ist primär ein Testprogramm zum müssen des lokalen Festplattensubsystems auf logischer Ebene. Es erfolgt kein physikalischer Zugriff auf einzelne Festplatten oder Blöcke, sondern auf die logische Festplatten, wie die das Betriebssystem präsentiert. Der Test kann lokal und über das Netzwerk durchgeführt werden, wobei dann der Durchsatz des Clients und des LANs der begrenzende Faktor sind.
DT wird auf dem angegebenen Laufwerk eine Testdatei anlegen, die die angegebene Größe hat. In der Folge führt DT dann die Tests aus, indem er in diese Datei Informationen in der gewünschten Blockgröße, Bitmuster und mit dem angegebenen Zugriffsverhalten schreibt.
Damit der Test ist um so vergleichbarer, wenn die Bedingungen beachtet werden:
- Kein Virenscanner
Diese kosten je nach Hersteller Performance und verfälschen das Ergebnis. Allerdings ist DT hier auch natürlich genial um genau diesen Leistungsverlust mit einem Vorher/Nachher Vergleich auf dem gleichen System zu müssen. - wenig Fragmentierung
Die Testdatei sollte möglichst nicht fragmentiert sein, um zusätzliche Unterbrechungen durch Kopfbewegungen zu vermeiden. - Keine sonstigen Festplattenaktivitäten
Natürlich sollte die Festplatte "lastfrei" sein, d.h. keine anderen Zugriffe erfolgen. - Ausreichend CPU-Zeit
Stellen Sie sicher, dass nicht der Server selbst der Engpass ist, d.h. PCI-Bus, CPU oder Anbindung an das SAN/NAS/DAS - Cache berücksichtigen
Festplatten aber auch Controller haben heute Caches. Entweder sie schalten diese aus, oder sie nutzen eine Testdatei, die ausreichend groß ist, damit die Wirkung des Caches vernachlässigbar wird. Denkbar ist z.B.: das 10-fache der Cachesize. - Gleiche Blocksize
DT schreibt Blöcke, die vom NTFS-Treiber auf die Platte geschrieben werden. Der Controller schreibt daraus "Stripe Sets". Diese Parameter dürfen für einen Vergleich nicht geändert werden. Wenn Sie die Zeit haben, dann ist es aber schon interessant die Auswirkungen zu müssen. - gleiches Betriebssystem
Es ist nicht fair, ein Windows 98 System mit einem Windows 2003 Server zu vergleichen. Teilweise bewirken schon Servicepacks oder aktuellere Festplattentreiber merkliche Veränderungen . Insofern ist DT aber auch eine Qualitätssicherung, wenn sie vor und nach einem Update eine Messung durchführen.
Der Test ist natürlich um so aussagekräftiger, je weniger diese Testfestplatte fragmentiert oder anderweitig belastet ist. Auch ein Virenscanner und andere Festplattenaktivitäten (Defragmentierung etc.) sollten nicht gerade parallel gestartet sein, um vergleichbare Messwerte zu erhalten.
DT kann aber nicht nur Festplatten testen, sondern nahe zu jede Geräte. Dies beinhaltet auch serielle Leitungen, Bandlaufwerke, Disketten und Netzwerklaufwerke.
DT installieren und aufrufen
Die Installation von DT ist sehr einfach. Eigentlich müssen Sie nur die DT.EXE in ein Verzeichnis ihrer Wahl installieren. Zusätzlich brauchen Sie noch die Datei CYGWIN.DLL, welche einige Routinen enthält. Damit sie schnell loslegen können, brauchen Sie einfach das ZIP-File zu laden und auszupacken:
dt.zip (380kb)
DT wird einzig über Kommandozeilen gesteuert. Ich beschränke mich hier auf die Optionen, die für die nachfolgenden Testreihen relevant sind:
dt.exe of=c:\dt.dat bs=4k limit=1g iotype=sequential log=c:\dt.log
c:\dt.dat |
Dateiname, die erstellt, beschrieben und gelesen wird |
bs=4k |
Blocksize, die geschrieben wird. NTFS nutzt auch per Default 4k Blöcke |
limit=1g |
Die Größe der Datei wird auf 1 Gigabyte limitiert |
iotyype=sequential |
Datei wird sequentiell beschrieben und gelesen |
Alle anderen Optionen können Sie per DT /HELP erfragen, aber werden hier nicht genutzt. Zur Vereinfachung gibt es auch eine HDTEST.BAT im gleichen ZIP-Archiv.
Das Ergebnis
Die Ausgabe von DT ist eine Textdatei mit folgendem Inhalt. Die für die Bewertung und den Vergleich wichtigen Teile habe ich farblich markiert:
Command Line: % dt of=c:\dt.dat bs=4k limit=1g iotype=random log=c:\dt.log -> Date: February 6th, 2001, Version: 14.3, Author:Robin T.Miller Write Statistics: Total records processed: 25600 @ 4096 bytes/record (4.000 KB) Total bytes transferred: 104857600 (102400.000Kbytes,100.000MB) Average transfer rates: 1210044 bytes/sec, 1181.684 KB/sec Number I/O's per second: 295.421 Total passes completed: 0/1 Total errors detected: 0/1 Total elapsed time: 01m26.65s Total system time: 00m01.00s Total User time: 00m01.87s Read Statistics: Total records processed: 25600 @ 4096 bytes/record (4.000 KB) Total bytes transferred: 104857600 (102400.000Kbytes,100.000MB) Average transfer rates: 20971520 bytes/sec, 20480.000 KB/sec Number I/O's per second: 5120.000 Total passes completed: 1/1 Total errors detected: 0/1 Total elapsed time: 00m05.00s Total system time: 00m00.54s Total User time: 00m04.45s Total Statistics: Output device/file name: c:\hdtest.dat (device type=regular) Type of I/O's performed: random (rseed=0x41b6b083) Random I/O Parameters: position=0, ralign=0, rlimit=104857600 Data pattern read/written: 0x39c39c39 Total records processed: 51200 @ 4096 bytes/record (4.000 KB) Total bytes transferred: 209715200 (204800.000Kbytes,200.000MB) Average transfer rates: 2287669 bytes/sec, 2234.052 KB/sec Number I/O's per second: 558.513 Total passes completed: 1/1 Total errors detected: 0/1 Total elapsed time: 01m31.67s Total system time: 00m01.54s Total User time: 00m06.34s Starting time: Mon Oct 29 10:31:11 2001 Ending time: Mon Oct 29 10:32:43 2001
Wichtig sind die absoluten Durchsätze in Megabyte/Sekunde und die I/O's pro Sekunde.
Interessant sind solche Tests, wenn die Blockgröße vergrößert wird, dann nimmt die Datenrate in der Regel etwas zu, während die Anzahl der I/O's/Sek ziemlich gleich bleibt. Bei einer kleinen Blockgröße wird aber gut sichtbar, wie die I/O's/Sek der Engpass werden. Interessant ist bei der Aktion natürlich, wenn Sie zeitgleich mit dem Windows Performance Monitor die "Disk Queue Length" und die CPU-Belastung ihres Servers betrachten. Wenn Sie den Zugriff auf NAS-Geräte, Netzwerklaufwerke oder SAN-Geräte müssen, dann ist auch die Netzwerkbelastung und SAN-Belastung von Belang.
Da DT alle geschriebenen Daten auch wieder liest, sollten sie alarmiert sein, wenn Fehler auftreten. DT kann auch wunderbar als Dauertesttool eingesetzt werden.
ACHTUNG: Die Testdatei bleibt bestehen !!. Denken Sie daher daran, diese Testdatei nach dem Ende wieder zu löschen.
DT Testvergleiche
Anbei einige Testwerte aus meiner Praxis. Die Tests wurden mit folgenden Parametern durchgeführt:
- Dateigröße 1 Gigabyte
- Blockgröße: 4k Blöcken
- Verfahren: SEQUENTIAL und RANDOM
Die Ergebnisse stellen aufgrund dieser Reduzierung nur einen groben Anhaltpunkt dar, und es gibt sicher Subsysteme, die bei diesen Parametern besonders gut oder besonders schlecht abschneiden. Eine EMC Symmetrix mit mit 2 GB Cache-RAM kann man mit einer 1GB Testdatei nicht testen. Ein RAID-Controller mit 64kb Stripe Size kommt eher schlecht weg. Das Feintuning von Servern ist eine Wissenschaft für sich und beinhaltet auch die Nutzung durch Anwendungen wie Exchange, SQL etc. Das Clustergröße von NTFS ist standardmäßig jedoch 4 Kilobyte. Aufgezeichnet wurde nur "Megabyte/Sekunde". für andere Systeme könnte auch die I/O-Leistung in I/O/Sek interessante sein, aber wird hier vernachlässigt
Lokale Festplatten (DAS)
Datum |
System |
Controller |
Sequential |
Random |
10/01 |
Toshiba Notebook |
IDE |
10/1,6 |
9,4/0,9 |
10/01 |
P4/500 |
Adaptec I2O |
19/1,6 |
20/1,2 |
10/01 |
Compaq |
SmartArray 3 |
13/4,2 |
13/1,8 |
08/02 |
CPQ DL380 |
SmartArray |
25/8 |
8/5 |
08/02 |
IBM X330 |
ServRaid 4M |
25/13 |
25/14 |
09/02 |
Dell ?? |
IDE |
30/27 |
28/10 |
09/02 |
Dell ?? |
IDE-SW-Raid |
29/25 |
30/9 |
08/03 |
Dell 2560 |
PERC 3si |
60/22 |
44/14 |
08/03 |
IBM R40 Noteb |
IDE |
26/3 |
38/0,6 |
08/03 |
CPQ DL380 |
SmartArray |
25/4 |
24/3 |
11/03 |
IBM R40 Notebook |
Maxtor 5000 XT |
|
|
11/03 |
FSC TX200 |
AdaptecHost |
|
|
10/03 |
HP |
HP5si RAID |
49,6/11,3 |
48,6/6,8 |
10/03 |
HP |
FiberChannel |
47,9/32,2 |
52,5/24 |
06/04 |
IBM X-Series 345 (2xP3,06) |
LSI Raid |
70,4/40,2 |
61/2,7 |
10/09 |
IBM 3650 |
LSI Raid (Writethrough) |
62/84 |
8/77 |
01/10 |
HP 8730W Notebook. Dualcore T9600, 8GB |
ESATA 400 GB extern |
96,9/53,1 |
86,2/43,9 |
01/10 |
Desktop AMD Phenom II 945 (4x 3GHz) |
1 TB SATA |
91/89 MB/Sec |
84/9 MB/Sec (Starker Einbruch Random Write) |
Es ist gut zu erkennen, welche Zuwächse auch in den vergangenen Jahren möglich waren anhand besserer RAID-Controller, optimierter Caches und schnellere Systeme. Es ist durchaus interessant, wie ein Service Pack oder Treiberupdate die Werte verändert. Auch eine IDE-Festplatte kann sehr schnell sein. Selbst ein Software RAID1 ist nur ca. 10% langsamer.
Entfernte Festplatten (NAS, iSCSI, Server)
Achtung: Nicht alle Testsysteme waren "lastfrei" und viele Speichersubsysteme haben sehr viel Cache, so dass diese Zahlen wirklich nicht vergleichbar sind.
Datum |
System |
Controller |
Sequential |
Random |
NAS-Systeme. Zugriff über SMB oder iSCSI |
||||
08/02 |
IBM X330 |
Windows 2000 Server im LAN |
4/4 |
3/2 |
08/02 |
IBM X330 |
IBM NAS Box |
8/6 |
6/7 |
SAN-Systeme. Zugriff "scheint" lokal zu sein. |
||||
08/03 |
CPQ DL380 |
SAN:Symmetrix |
13/4 |
15/1 |
08/03 |
CPQ DL380 |
GBit:NetApps |
15/18 |
25/17 |
06/04 |
IBM X-Series 345 (2xP3,06) |
QLogic 2340 |
70,5/37,9 |
61,6/6,1 |
10/09 |
IBM3650 |
DS4300 SAN |
54/85 |
35/77 |
Erstaunlich ist, dass selbst schnelle Server mit DT als einzelne Clients oft gerade mal an die 8 Megabyte/Sec heran kommen. Repräsentativ ist dies aber nicht, da ein Client in der Regel einen Server nicht auslasten kann, aber der Zugriff von 20 Client auf einen Server nicht einfach getestet werden kann.
SAN Systeme können schon mehr Durchsatz und Leistung bringen, als eine lokal angeschlossenes Subsystem, aber überzeugen durch andere Werte (Hochverfügbarkeit, Skalierbarkeit, Recovery etc.). Interessant ist die Zunahme der NAS-Systeme die mittlerweile nicht mehr nur ein SAMBA/NFS-Fileserver sind, sondern über entsprechende Treiber (VHD, iSCSI) auch als Festplattenspeicher sichtbar werden und als Verbindung einfaches Ethernet verwenden.
Weitere Links
Sie können mir gerne auch ihre Testergebnisse senden. Vielleicht animieren Sie diese Werte dazu, ihre eigenen Server zu testen. Wenn Sie selbst ihre Testergebnisse veröffentlicht haben, dann nenne Sie mir einfach den Link hierzu. Interessant wäre es, ob ein Schüler oder Student mal eine Diplomarbeit zu Performancemessung unter Windows geschrieben hat.
- Exchange Leistungstest
- JetStress
- DiskSPD
- Homepage von Tom Miller
http://home.comcast.net/~SCSIguy/SCSI_FAQ/RMiller_Tools/index.html
http://home.comcast.net/~SCSIguy/SCSI_FAQ/RMiller_Tools/dt.html Aktuell ist die Version 15.10 aus dem Jahre 2004
Alte URL http://www.bit-net.com/~rmiller/dt.html
Alte interne URL http://leto.shr.dec.com Vermutlich nur innerhalb von DEC/COMPAQ/HP zu erreichen. - TKperf performance test tool for SSDs, HDDs and RAID devices
https://github.com/thomas-krenn/TKperf - IOMeter wurde Original von INTEL entwickelt und ist nun Open Source.
http://sourceforge.net/projects/iometer/
http://www.iometer.org - HDTune
Eigentlich auch zum Auslesen der SMART-Daten aber eben auch ein einfacher Performance Check der lokalen Festplatte
http://www.hdtune.com/ - IOZone
http://www.iozone.org/ - 231619 How to use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem
- CrystalDiskMark
http://crystalmark.info/software/CrystalDiskMark/index-e.html