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
oder
iotype=random

Datei wird sequentiell beschrieben und gelesen
ODER
Zugriffe erfolgen zufällig

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
MM/JJ

System
CPU/Takt

Controller
Raid-Level:Disk

Sequential
MB/s Read/Write

Random
MB/s Read/Write

10/01

Toshiba Notebook
P3/366

IDE
XX:20 GB 2,5"

10/1,6

9,4/0,9

10/01

P4/500
W2KServer

Adaptec I2O
R5: 3x36GB

19/1,6

20/1,2

10/01

Compaq
W2KServer

SmartArray 3
R5: 3x18 GB

13/4,2

13/1,8

08/02

CPQ DL380
 

SmartArray
R^1:2x18 GB

25/8

8/5

08/02

IBM X330
DualP4/1,9G
W2K SP2

ServRaid 4M
R5:5x36GB

25/13

25/14

09/02

Dell ??
P4/???

IDE
XX-18 GB

30/27

28/10

09/02

Dell ??
P4/???

IDE-SW-Raid
R1:18 GB

29/25

30/9

08/03

Dell 2560
P4/2GHz
W2KSP3

PERC 3si
R1: 2x36 GB

60/22

44/14

08/03

IBM R40 Noteb
P4M/2,4GHz
WinXP

IDE
XX:40 GB 2,5"

26/3

38/0,6

08/03

CPQ DL380

SmartArray
R5:5x36 GB

25/4

24/3

11/03

IBM R40 Notebook

Maxtor 5000 XT
300 GB external
USB 2.0
FireWire



26/22
30/24



10/1
31/1

11/03

FSC TX200
2x Xeon 2,6GHz

AdaptecHost
R1:2x37GB
R1:2x127GB


55/9,7
55/16,7


48/4,7
49/4,9

10/03

HP

HP5si RAID
R10: 4x72GB15k

49,6/11,3

48,6/6,8

10/03

HP

FiberChannel
External Store
R1: 6x72G15k

47,9/32,2

52,5/24

06/04

IBM X-Series 345 (2xP3,06)

LSI Raid
R1: 2x72GB

70,4/40,2
17,2/10

61/2,7
15/0,7

10/09 

IBM 3650

LSI Raid (Writethrough)
2x146GB RAID1

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)
Windows Vista SP2   8 GB RAM

 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
MM/JJ

System
CPU/Takt

Controller
Raidlevel:Disk

Sequential
MB/s Read/Write
kIO/s Read/Write

Random
MB/s Read/Write
kIO/s Read/Write

NAS-Systeme. Zugriff über SMB oder iSCSI

08/02

IBM X330
DualP4/1,9G
W2K SP2

Windows 2000 Server im LAN
(SMB)

4/4

3/2

08/02

IBM X330
DualP4/1,9G
W2K SP2

IBM NAS Box
Gigabit
(SMB)

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
VHD

15/18

25/17

06/04

IBM X-Series 345 (2xP3,06)

QLogic 2340
IBM ES800

70,5/37,9
17,6/9,4

61,6/6,1
15,4/1,5

10/09

IBM3650

DS4300 SAN
4x300GB RAID10

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.