Jetstress

Jetstress und ESP (Exchange Stress and Performance Tool) sind unterschiedliche Programme

Sie finden hier sowohl Bilder von JetStress 2004 als auch die neuere Jetstress Versionen. Die aktuelle Version ist eher im Stil von ExBPA und anderen Tools. Die Bedingung ist aber so oder so sehr einfach.

Jetstress Field Guide – April 2011 Release
http://gallery.technet.microsoft.com/Jetstress-Field-Guide-1602d64c
http://blogs.technet.com/b/exchange/archive/2011/04/29/jetstress-field-guide-april-2011-release.aspx

Microsoft Exchange Server Jetstress 2013 Tool (15.0.995.29)
http://www.microsoft.com/en-us/download/details.aspx?id=36849

Ein wichtiger Schritt bei der Installation eines Exchange Servers ist ein Test der Hardware im Hinblick auf die Performance (Siehe auch Exchange Leistungstest). Nun gibt es mehrere Programme, um verschiedene Komponenten zu testen. Einige testen einzelne Hardwarekomponenten wie DT Performance Messung und NETIO, IPERF und TTCP. Andere Tools wie MMB2 testen den MAPI-Benchmark. JetStress hingegen simuliert einfach den Zugriff eines Exchange Servers auf die Festplattensubsysteme und ist damit ein guter Gradmesser für die Leistung eines Systems und besonders den Vergleich zweiter Systeme. Zudem ist es ein Belastungs- und Stabilitätstest. Ich setze Jetstress daher gerne ein bei:

  • Umkonfiguration
    Es ist durchaus wichtig, die Betriebsdaten eines Servers zu können und diese nach dem Update z.B. eines Festplattentreibers, eines Controller BIOS o.ä. noch einmal zu vergleichen. Es ist durchaus schon vorgekommen, dass ein Treibertausch nicht immer nur Gutes bewirkt hat, sondern z.B.: den Cache abgestellt hat und damit die Performance nicht mehr wie erwartet vorhanden war.
  • Neue Plattensubsysteme
    Auch wenn Sie ihr bisheriges Festplattensubsystem durch ein neues System ersetzen, z.B. SAN und NAS oder iSCSI, dann sollten Sie JetStress nutzen, um die versprochene Leistung auch zu prüfen.
  • Neuer Server
    Das gleiche gilt natürlich auch, wenn Sie den Server komplett durch ein neues Modell ersetzen. Ist er wirklich so schnell, wie versprochen ?

Allerdings testet JetStress nur das Subsystem mit einer typischen Exchange Belastung. Der Test ist daher nur bedingt repräsentativ aber für Größenordnungen und vor allem als Stabilitätstest wichtig. Am Ende dieser Seite liste ich ähnlich wie bei  DT einige Messergebnisse mit Standardeinstellungen auf. Ich würde mich über ihre Messergebnisse freuen.

Jetstress auf einem bestehenden Server

Es ist eher ungewöhnlich einen Server zu "stressen", auf dem Exchange schon installiert ist. Es ist aber dennoch möglich, wenn Sie die passenden DLLs vom Exchange Programmverzeichnis  in das JetStress-Verzeichnis kopieren. Relevant sind dabei:

  • ese.dll
  • eseperf.dll
  • eseperf.hxx
  • eseperf.ini
  • eseperf.xml

Wenn Sie später dann allerdings JetStress deinstallieren, dann werden die Performance Counter irrtümlicherweise entfernt. aber auch das kann wieder duch zwei Aufrufe in der DOS-Box gelöst werden.

C:\> unlodctr ESE
C:\> lodctr esperf.ini

Voraussetzungen und Installation

Jetstress ist kein "mal eben so"-Testprogramm, sondern läuft mehrere Stunden und belegt mehrere Gigabyte. Schnellere Aussagen zur Festplatten und Netzwerken erhalten mit DT  und NETIO. Allerdings sind diese natürlich dann nicht speziell auf Exchange abgestimmt.

Um Jetstress einsetzen zu können müssen einige Vorbedingungen erfüllt sein:

  • .NET Framework 1.1
    Bei Windows 2003 Server ist dies schon installiert. für Windows 2000 kann es problemlos nachinstalliert werden
  • Windows 2000 Server oder höher
    Jetstress funktioniert nicht auf Windows NT4 oder Windows XP
  • Exchange 2000 oder höher
    Exchange muss nicht installiert sein, aber für die Funktion benötigt Jetstress die Dateien "ESE.DLL" und die drei Dateien für die Performance Counter (Eseperf.dll, Eseperf.ini, Eseperf.hxx). Sie können diese Dateien auch einfach aus C:\Programme\Exchsrvr\bin eines bestehenden Exchange Servers kopieren.

JetStress
http://www.Microsoft.com/downloads/details.aspx?FamilyId=94B9810B-670E-433A-B5EF-B47054595E9C&displaylang=en

Microsoft Exchange Server Jetstress Tool (64 bit)
http://www.microsoft.com/downloads/details.aspx?familyid=73dfe056-0900-4dbb-b14a-0932338cecac&mg_id=10095&displaylang=en

Übrigens: unter "231619 How to use the SQLIOSim utility to simulate SQL Server activity on a disk subsystem" gibt es ein ähnliches Programm für SQL.

JetStress ist danach schon einsatzbereit und Sie haben die Wahl zwischen einer Kommandozeile (JetStress.exe) und einer grafischen Version "JetStressUI.exe".

Nach dem Start von JetStressUI werden die erforderlichen Startvoraussetzungen geprüft und Fehler entsprechend angezeigt. Ist auf ihrem Server noch kein Exchange installiert, dann müssen Sie die ESE-Dateien kopieren und JetStress registriert auch die erforderlichen Performance Counter für Sie.

Danach zeigt sich JetStress sehr aufgeräumt und mit einem "Start" würde der Test auch sofort los laufen, wenn da nicht noch der IIS-Admin Dienst wäre. Dieser muss bei der Nutzung von "JetStress" gestoppt sein.

Allerdings sind die Standardwerte natürlich etwas gefährlich, da 100 Megabyte mit 4000 Benutzern eben 400 Gigabyte Datenbanken ergeben. Das ist zwar ein guter Performance und Lasttest aber sicher nur für wenige Systeme eine sinnvolle Größe. Daher werden die Tests mit kleineren Werten durchgeführt. Allerdings warnt JetStress, wenn die Datenbank kleiner als 512 Megabyte wird. Zudem ist es erforderlich, dass Datenbank und Transaktionsdateien auf unterschiedlichen Laufwerken liegen. Dies ist meist der Fall. Ansonsten müssen Sie die Kommandozeilenversion JetStress.EXE nutzen. (Siehe Dokumentation zu JetStress). Alternativ können Sie über die Checkbox "NAS Device" eben diese Prüfung abschalten, aber dann nutzt JetStress auch nicht mehr die Performance Counter "Physical Disk" sondern die Counter von ESE, welcher natürlich nicht so genau sein können.

Die Funktion "Backup Path" erlaubt es, eine Musterdatenbank immer wieder als Quelle zu verwenden, so dass die Testergebnisse auch nachvollziehbar sind. Während des Tests protokolliert JetStress die Daten auf dem Bildschirm und in eine Textdatei. Interessant hierbei ist natürlich auch ein Blick auf Perfmon und hier insbesondere auf die Festplattenwerte:

Sowohl die Warteschlangenlänge als auch die mittlere Zeit für Schreib und Lesezugriffe sind hierbei interessant. Eine lange Warteschlange ist ein Zeichen dafür, dass viel Last ansteht. Sie sollte aber bald wieder sinken. Die Zeit ist eine Maß, wie lange eine Operation auf die Ausführung warten muss. Dies ist besonders bei Transaktionsprotokollen kritisch und wichtig für die Performance.

Folgende Werte nutze ich für die nachfolgenden Tests

  • Mailboxlimit: 100 Megabyte
  • Number of Mailboxes:100

Alle anderen Werte bleiben gleich. Mit diesen Werten legt JetStress eine 10 Gigabyte Datenbank (Anzahl der Mailboxen x Mailboxgröße) an. Während des Tests benötigen Sie aber Platz für Transaktionsdateien, so dass Sie insgesamt 7,5 GB * 1,67 = 12,525 GB bereitstellen müssen.

Ergebnisse

JetStress dient zum einen zur Ermittlung der Diskperformance, aber kann quasi nebenbei auch die Zuverlässigkeit des Systems prüfen. JetStress legt ja einige Datenbanken an und prüft am Ende auch deren Konsistenz. Hier muss die "Null Toleranz-Regel" gelten: (Datei DBChecksum_yyyy_m_t_hh_mm_ss.html)

Jetstress Checksum Result

In der zweiten Datei "Performance_yyyy_m_t_hh_mm_ss.html" finden Sie die interessanten Performance Counter

Jetstress Performance Report

Hier interessiert zum einen die durchschnittliche Wartezeit für IOs als auch die Gesamtzahl der IOs.

Folgende Testergebnisse sind ermittelt worden und können als Vergleich herhalten.

Datum
MM/JJ
System
CPU/Takt
Controller
RAID-Level:Disk
I/O pro Sec

08/05

FSC RX100S2
DualP4/3GHz

LSI Embedded SATA
RAID1: 2x150 GB SATA

 

Jun 06

HP DL380 G4
Dual Intel Xeon 3,4GHz

HP Smart Array 6i im Simplex Modus
Raid1:2 x 72 GB 15k SCSI (System + Log)
Raid 5: 4 x 72 GB 15k SCSI (Daten)

319,62
Details: JetStress Test01

Jun 06

Dual Intel Xeon 3
2 3 GB Ram

DB und Logs auf einer EVA 4000 Storage
40 300 GB SCSI Disks

418,09
Details: Jetstress Test02

Jun 08

2xQuadXean 3 GHz
Windows 64bit 32GB Ram

Emulex 4 GBit SAN auf HP EVA 6000 mit RAID10

5681 IOPS

Dez 09

DELL R710
2x Intel Xeon E5530 2,4GHz, 12GB Ram

Disk1 Intern HD 2x 146GB SAS 15K Raid1
Disk2 4x600GB SAS 15K RAID10 auf ext. SAS Storage MD3000

217 IOPS

Die Testergebnisse sollten Sie nicht als Referenz verstehen, sondern nur als grobe Richtwerte. Viele Server lassen sich an vielen Stellen tunen, z.B. Schreibcache auf dem Controller, Änderung der RAID-Level etc. Insofern ist allein das Ergebnis I/O pro Sekunde kein alleiniges Vergleichskriterium.

Sie können mir gerne ihre Messwerte und Erfahrungen mitteilen.

Weitere Links