Die neue Chip-Multithreading-Maschine von Sun im Kurztest

Aktuelles Thema: SunFire T2000 im Kurztest

Ende Mai war sie endlich bei uns: die neue T2000 von Sun Microsystems. Bereits lange vorher war viel über das Chip-Multithreading und Niagara zu lesen; der praktische Test ist indes immer etwas anderes.
Für uns ging es bei den Tests hauptsächlich darum, zu überprüfen, ob diese neue Technologie und die damit einhergehenden Anpassungen am Betriebssystem für unsere Software irgendwelche Probleme nach sich zieht. Um die Antwort gleich vorwegzunehmen: Sie tut es nicht. Unsere Treiber berücksichtigen bereits seit der ersten Version für Solaris 7 das Multithreading im Kernel. Tatsächlich profitiert der Treiber ohne irgendwelche Änderungen sofort von den im Betriebssystem sichtbaren 32 virtuellen CPUs. Ein eindrucksvoller Beweis für die Stabilität und Zukunftstauglichkeit der Programmierschnittstellen in Suns Solaris.
Welchen Eindruck das System sonst hinterlassen hat, nachfolgend in aller Kürze:

Gehäuse | Wartung | ALOM | Interne Platten | Storage Cluster + OS | Disk Performance | Integer Performance | Fazit

Das Gehäuse

Angenehm beim Einbau: Es werden nur 2 Höheneinheiten benötigt. Erfreulich auch: Endlich ein Metallgehäuse, das einen durch und durch soliden Eindruck macht. Leicht abbrechende Plastikteile (Blenden, Türen etc.) sind nicht aufgefallen.
front.gif
rear.gif Auch die Rückseite ist aufgeräumt. Sie bietet folgende Schnittstellen bzw. Steckplätze:
  • 4 x Ethernet (10/100/1000)
  • 1 x seriell DB9
  • 3 x PCI-Express mit niedriger Bauhöhe
  • 2 x PCI-X mit niedriger Bauhöhe
  • 4 x USB 1.1
  • ALOM (seriell und Ethernet)
Die USB-Ports sind - wie bei allen bisher gesehenen Sparc-Systemen von Sun - 1.1-Ports. Damit sind sie bestenfalls für den Anschluss von Keyboard und Maus geeignet. Aber wer braucht diese an einem solchen System, das noch dazu keine Grafikkarte besitzt? Von den PCI-X-Plätzen war einer mit dem SAS-Controller für die eingebauten Festplatten belegt. Einer verblieb für den FC-Controller.
Ganz links im Bild die beiden leicht zu wechselnden Netzteile, darüber die dazugehörige "Lüfterkarte".

Wartung

cover.gif Das Gehäuse lässt sich sehr einfach und ohne Werkzeuge öffnen. Inzwischen bei Sun eine hilfreiche Tradition: Auf und unter der Abdeckung finden sich Skizzen, die die wichtigsten Handgriffe veranschaulichen. Etliche Teile, so z. B. Lüfter und Stromversorgungen lassen sich ebenfalls ohne Werkzeug tauschen.
Apropos Lüfter: Am deutlichen Arbeitsgeräusch dieser unentbehrlichen Teile hat Sun leider nichts geändert. Was bei den Workstations eigentlich verboten gehört, ist bei einem Server für das RZ zwar tolerierbar, aber trotzdem unschön.
cover_open.gif
blower.gif

Der ALOM

Positiv hervorzuheben ist, dass man kaum mehr ein System ohne Remote-Management-Facility zu Gesicht bekommt. Der bei der T2000 verwendete ALOM kann entweder direkt via Ethernet oder auch über V24 angeschlossen werden. Im Foto rechts oben sind die Schnittstellen mit "SER MGT" bzw. "NET MGT" gekennzeichnet.
Elegant aber tückisch sind die nicht standardisierten RJ-45-Buchsen für serielle Schnittstellen. Leider kommen diese auch beim ALOM der T2000 zum Einsatz. Um die Ethernetschnittstelle am ALOM benutzen zu können, muss man diese zunächst über die serielle Schnittstelle konfigurieren. Nach zeitraubenden Versuchen mit vorhandenen Kabeln, teilweisen Erfolgen wie Lesen ohne Eingabemöglichkeit, Mc Gyver-Sessions, um anhand der Pin-Belegung alles wie gewünscht zu verschalten, kam am Ende doch noch der volle Erfolg: Der mitgelieferte Adapter setzt nicht einfach die Pins auf eine andere Physik um, sondern er kann mit Hilfe eines normalen Patchkabels den ALOM-SER-Port mit einem DB9-Ser-Port einer anderen Solaris-Maschine verbinden (vgl. Bild rechts unten). Und dann funktioniert alles wie gehabt (tip, cu u. a.). Ein Hinweis in der Dokumentation dazu wäre sicher sinnvoll (ein DB9-Port sowieso).
Einmal konfiguriert kommt dann aber Freude auf: komplette Bedienung aus der Ferne inkl. Power-On/Off.

 
front.gif alom_term.gif

Interne Platten

front_disk.gif Bis zu 4 Platten lassen sich einbauen. Im Testsystem waren es zwei.
Zum Einsatz kommen SAS-Platten im 2,5"-Format, von denen es heißt, sie seien klein, robust, stromsparend und schnell. Vermutlich die Technik der Zukunft auch für andere Server-Systeme.
Angenehm auch das Handling beim Austausch (rechtes Bild).
Dagegen wahrscheinlich nicht jedermanns Sache: Der "Einwurfschlitz" für DVD/CD (linkes Bild oben).
front_disk_detail.gif

Installation und Test OSL Storage Cluster

Wie erwartet war die Software in 3 Minuten installiert und lief sofort. Ein erster Blick mit dem Tool ndinfo zeigte denn auch 32 CPUs an:

# ndinfo
DVSC node name:      sun1
OS node name:        sun1
Operating System:    SunOS
OS release:          5.10
hardware vendor:     Sun_Microsystems
hardware serial:     2212015304
CPU licence units:   4
number of (v)CPU's:  32
number of cores:     unknown
number of chips:     1
CPU  ISA:            sparcv9
CPU Type:            sparcv9
FPU Type:            sparcv9
CPU Clock (MHz):     1000
main memory (MByte): 16376
offline method:      0
offline arguments:   ""

Das System kam freundlicherweise durch Sun vorinstalliert bei uns an. Leider war es nicht der aktuellste Solaris-Stand, so daß das OSL-eigene Diagnose-Tool keine Information zur Zahl der Cores finden konnte. Aktuellere Versionen von Solaris 10 sollen aber entsprechende Informationen liefern.

Ein zweiter Blick auf die Knotenliste des Clusters zeigt das Testsystem "sun1" im trauten Verbund mit weiteren Systemen von Sun (big-2 und sparcon) sowie FSC (big-1). Es fällt ein weiteres Detail auf: Der T1-Prozessor beherrscht nicht die vis/vis2-Erweiterungen im Instruction-Set.

# ndadmin -lvvv
nodename         id    state   os          cpu-isa         ncpu clock    memory

big-1             1   ONLINE   SunOS 5.9   sparcv9+vis2       2  1100      2048
big-2             2   ONLINE   SunOS 5.9   sparcv9+vis2       2  1062      4096
sparcon           3   ONLINE   SunOS 5.10  sparcv9+vis        1   650       256
sun1              4   ONLINE   SunOS 5.10  sparcv9           32  1000     16376
Ein Blick mit mpstat zeigt uns eine detaillierte Statistik der 32 für das Betriebssystem sichtbaren (virtuellen) CPUs:
# mpstat
CPU minf mjf xcal  intr ithr  csw icsw migr smtx  srw syscl  usr sys  wt idl
  0    3   0   79   206  104    6    0    0    2    0    10    0   2   0  98
  1    1   0    1     6    1    8    0    0    2    0     7    0   1   0  99
  2    1   0    0     5    0    7    0    0    2    0     8    0   1   0  99
  3    2   0    0     4    0    6    0    0    2    0     8    0   1   0  99
  4    2   0    1     4    0    5    0    0    2    0     9    0   1   0  99
  5    2   0    0     6    0   10    0    0    2    0    13    0   1   0  99
  6    2   0    0     3    0    3    0    0    2    0    10    0   1   0  99
  7    2   0    0     4    0   13    0    0    3    0    31    0   1   0  99
  8    2   0    0     6    0   15    0    0    3    0    21    0   1   0  99
  9    2   0    0     5    0   12    0    0    2    0    25    0   1   0  99
 10    1   0    0     3    0    5    0    0    2    0     9    0   1   0  99
 11    1   0    0     4    0    5    0    0    2    0    10    0   1   0  99
 12    2   0    0     4    0    8    0    0    2    0    17    0   1   0  99
 13    2   0    0     4    0    6    0    0    2    0    12    0   1   0  99
 14    2   0    0     5    0   11    0    0    2    0    17    0   1   0  99
 15    2   0    0     3    0    6    0    0    2    0    11    0   1   0  99
 16    2   0    0     3    0    3    0    0    2    0    11    0   1   0  99
 17    2   0    0     6    0   11    0    0    2    0    12    0   1   0  99
 18    2   0    3     3    0   28    0    0    4    0    71    0   1   0  99
 19    1   0    0     4    0   12    0    0    2    0    25    0   1   0  99
 20    2   0    1     4    1    5    0    0    2    0    15    0   1   0  99
 21    2   0    0     3    0    4    0    0    2    0     8    0   1   0  99
 22    1   0    0     5    0   10    0    0    2    0    13    0   1   0  99
 23    2   0    0     3    0    6    0    0    3    0    16    0   1   0  99
 24    3   0    0     5    0   11    0    0    2    0    16    0   1   0  99
 25    2   0    0     3    0   12    0    0    3    0    23    0   1   0  99
 26    1   0    0     3    0    4    0    0    2    0    11    0   1   0  99
 27    1   0    1     5    1    8    0    0    2    0    15    0   1   0  99
 28    2   0    1     6    0   14    0    0    2    0    17    0   1   0  99
 29    2   0    1     4    0    8    0    0    2    0    23    0   1   0  99
 30    1   0    0     3    0    4    0    0    2    0     9    0   1   0  99
 31    1   0    2     5    2    8    0    0    2    0    22    0   1   0  99
CPU 0 zeigte stets eine höhere Zahl von Interrupts an. Auch bei Last war das so. Zu den Details des Interrupt-Handlings haben wir jedoch keine weiteren Nachforschungen angestellt.

IO-Performance

Diese Tests standen weniger im Mittelpunkt. Tests mit einem angeschlossenen FC-RAID-System erbrachten analoge Werte wie bei vergleichbaren Systemen (V440, PW250).

Ein flüchtiger zweiter Blick galt daher der IO-Performance auf den internen Platten. Das Diagnosetool des OSL Storage-Clusters zeigt uns 2 Fujitsu-Platten am internen Controller c1:

# dksetup -t
Please wait while examining disk entries . . .
symbolic controller no. 1, hw-no. 0, SCSI_CCS, driver: pci1000,50, flags: 0x08
    c1t0d0|sd(    0/    0)|FUJITSU  MAV2073RCSUN72G  |0545S00PFE   |70007/69994MB
    c1t1d0|sd(    1/    8)|FUJITSU  MAV2073RCSUN72G  |0543S00GBW   |70007/69994MB
symbolic controller no. 2, hw-no. 1, SCSI_CCS, driver: fp, flags: 0x08
    c2t5000402101EC04F4d0|ssd(   18/ 1912)|NEXSAN   SATABl(C0A82C6E) |6A6A46CE:"S; |61439/61424MB
    c2t5000402101EC04F4d1|ssd(   17/ 1913)|NEXSAN   SATABl(C0A82C6E) |6A6A4627:"S; |61439/61424MB
...
Interessant daher die Frage, ob hier bereits eine Sättigung eintritt: Es wurde also via Lesen mit dd (64k Bocksize) angetestet. In beiden Fällen (Lesen von einer und von beiden Platten zugleich) erreichten die Platten jeweils gut 60 MByte/s, mit 2 Platten also 120 MByte/s:
# dd mit 64k (Lesen, eine Platte)
SunOS sun1 5.10 Generic_118822-25 sun4v    06/09/2006
10:51:38   device        %busy   avque   r+w/s  blks/s  avwait  avserv
10:51:40   sd0              86     0.9     981  125598     0.0     0.9

# dd mit 64k (Lesen, beide Platten)
SunOS sun1 5.10 Generic_118822-25 sun4v    06/09/2006
10:53:09   device        %busy   avque   r+w/s  blks/s  avwait  avserv
10:53:11   sd0              87     0.9     978  125203     0.0     0.9
           sd1              87     0.9     963  123251     0.0     0.9

Integer-Performance

Bezüglich der Integer-Performance herrschte die größte Unklarheit. Natürlich ließen die Meldungen aus dem Marketing Wunder erwarten, erste Praxistests und Detailinformationen (vgl. "SUN Tzu" in iX 5/2006) sorgten eher für Desillusionierung. So werkeln zwar 8 Kerne in der CPU, der Takt wird jedoch zwischen diesen aufgeteilt. Stutzig machte auch, daß noch keine Integer-Werte von SPEC vorlagen. Anzunehmender Grund: Alle Kerne teilen sich die Float-Unit und die SPEC-Benchmarks enthalten auch Floatpoint-Instruktionen. Für die meisten kommerziellen Anwendungen sollte das jedoch von untergeordneter Bedeutung sein.

Für Klarheit sollte der im OSL Storage Cluster integrierte RIP-Benchmark sorgen. Er liefert eine Bezugsgröße ausschließlich zur Beurteilung der Integer-Performance, und zwar getrennt nach 32 und 64 Bit. Die Skalierung im Multiprocessing kann ebenfalls beurteilt werden. Weitere Details zum RIP-Benchmark finden sie hier.

Nachfolgend eine Übersicht der Ergebnisse im Vergleich zu einer SunBlade 150, einer V440 mit 2CPU sowie zu einem Opteron-System.

Für die Multi-Process-Meßwerte gibt die Spalte Procs an, mit wievielen Prozessen die maximale Gesamt-Performance erreicht wird.

Hersteller/Modell CPU Single Process Multi Process
Typ Takt (MHz) Anzahl RIP32 RIP64 RIPmix Procs RIP32 RIP64 RIPmix
Sun SunBlade 150 UltraSPARC IIi 650 1 4,00 3,02 3,47 1 4,00 3,02 3,47
Sun SunFire T2000 UltraSPARC T1 1000 1 3,71 4,05 3,88 32 53,71 53,50 53,60
Sun SunFire V20z AMD Opteron 244 2191 2 14,15 9,96 11,88 2 28.30 19,77 23,65
Sun SunFire V440 SPARC IIIi 1062 2 5,90 4,64 5,23 2 11,42 8,88 10,07


Bitte beachten Sie, daß die Tabelle die Systeme nicht vollständig beschreibt und sich je nach Konfiguration z.T. deutlich abweichende Werte ergeben können. Es ist für keines der Systeme eine besondere Kompilation des Benchmarks verwendet worden. OSL weist ausdrücklich darauf hin, daß damit Konsistenz und Fairness der Benchmarks nicht garantiert sind. Eine Verwendung der Werte außerhalb der Clustermechanismen von OSL Storage Cluster ist nur zu persönlichen Zwecken gestattet. Jede andere Verwendung - insbesondere für Wettbewerbsvergleiche - weicht von der Zielsetzung des Benchmarks ab und ist nur im Ausnahmefall mit vorheriger schriftlicher Genehmigung durch OSL zulässig. Von den jeweiligen Herstellern autorisierte andere Benchmarks mit einer exakten Beschreibung der Systemkonfiguration und der Testbedingungen finden Sie z. B. unter http://www.spec.org.i

Die Ergebnisse zeigen dreierlei:

  • Die Integer-Performance mit einem einzelnen Thread ist relativ schwach und liegt in etwa auf dem Niveau einer etwas älteren SunBlade 150 Workstation.

  • Erstaunlich aber ist der Gesamtdurchsatz, wenn tatsächlich 32 Threads gemeinsam verarbeitet werden. Er erreicht immerhin fast das 14-fache der Single-Thread-Performance.

  • Die 32Bit- und die 64Bit-Performance sind relativ ausgeglichen. Spätestens hier trennt sich die Spreu vom Weizen. Viele andere Systeme fallen im 64Bit-Bereich deutlich ab, nicht jedoch die T2000.
Ein genauerer Blick auf die Skalierung zeigt folgendes Verhalten:
RIP64-MP  mit 001 Prozessen:  4.05
RIP64-MP  mit 002 Prozessen:  8.08
RIP64-MP  mit 004 Prozessen: 16.17
RIP64-MP  mit 008 Prozessen: 25.68
RIP64-MP  mit 016 Prozessen: 45.29
RIP64-MP  mit 032 Prozessen: 53.43
RIP64-MP  mit 064 Prozessen: 53.43

 RIP ^
  60 |
     |                               -                              -
  50 |
     |               -
  40 |
     |
  30 |
     |       -
  20 |       
     |   -
  10 | -
     |-
     O------------------------------------------------------------------>
               10        20        30        40        50        60 

Erstaunlicherweise skaliert das System nicht nur bis zu 8 Prozessen, sondern bis hin zu 16 Prozessen sehr gut. Da es nur 8 Kerne gibt, hat sich das Konzept des Chip-Multithreading als erfolgreich herausgestellt. Über 16 Prozesse hinaus läßt die Skalierung zwar deutlich nach, immerhin wird aber dennoch ein signifikanter Leistungszuwachs bis hin zu 32 Threads erreicht.

Die Maschine verhält sich damit wie ein echtes symmetrisches Multiprozessorsystem. Dank der ausgewogenen 32/64-Bit-Performance wird sie im Gesamtdurchsatz bei geeigneten Anwendungen sogar etliche aktuelle Opteron-Systeme hinter sich lassen können. Dabei ist auch zu beachten, daß es die T2000 auch mit 1,2 GHz gibt (unser Testsystem hatte 1,0 GHz Taktung).

Fazit

Bezieht man die kompakte Bauweise und den niedrigen Stromverbrauch mit in die Betrachtung ein, ist klar, daß die T2000 durchaus Beachtliches leistet. Im Gesamtdurchsatz kann Sie sich mit aktuellen 4-CPU-Systemen konventioneller Bauart messen.

Wichtig wird sein, daß die jeweiligen Anwendungen passen. Die Single-Thread Performance wird für Batchverarbeitung mit höheren Lastanforderungen oder beispielsweise aktuelle StarOffice-Versionen sicher zu schwach sein. Nicht alle Anwendungen lassen sich auf ein Multithreading-Modell umstellen. Auch die höhere Komplexität wird verhindern, daß ganze Anwendungen mit großer Begeisterung neu konzipiert werden: Bekanntlich ist Multithreaded Programming "die Kunst, sich gleichzeitig in beide Füße zu schießen". Dort, wo also einzelne Prozesse hohe Durchsätze erfordern, ist das System eindeutig falsch positioniert. Starke Einzel-CPUs lassen mehr Flexibilität (aber meist auch höhere Kosten) erwarten.

Für interaktive Sessions mit den meisten betriebswirtschaftlichen Anwendungen oder für Web-Server reicht die Single-Thread-Performance des T1 jedoch allemal. Was dann mit einer hohen Zahl paralleler Sessions an Gesamtdurchsatz zu erwarten ist, ist für ein derartiges System (Größe, Stromverbrauch, Preis) schon beeindruckend.



Zurück