Der Flaschenhals liegt bei der Platte und beim IO

So werden PC-Mehrplatz-Systeme unter Unix auf Touren gebracht

06.09.1991

Mehrplatz-Systeme mit Unix-PCs sind heute eine preiswerte Alternative zu klassischen Multiuser-Anlagen auf Basis eines Minicomputers. Allerdings wird in der Praxis, wenn mehrere User gleichzeitig anspruchsvolle Aufgaben bearbeiten wollen, schnell deutlich, daß man es mit der Bus-Architektur eines "Personal"-Rechners zu tun hat. Der 80386- oder 80486-Prozessor wäre durchaus in der Lage, mehr Leistung zu bringen. Signifikant sind auch die Geschwindigkeitsverluste durch Festplatten oder I/O-Karten. Wie der Anwender hier Abhilfe schaffen kann, beschreibt Gerid Wagner.

Der PC ist, darüber gibt es wohl kaum Zweifel, der Universalrechner schlechthin. Mit MS-DOS, OS/2 und Unix stehen je nach Bedarf drei Betriebssysteme für diesen Computertyp zur Verfügung. Das hat allerdings auch Nachteile: Wie bei allen Universalgeräten muß man auch beim PC entweder Kompromisse in der Leistung in Kauf nehmen oder den Rechner eben entsprechend auf eine Systemumgebung hin optimieren.

Im Fall des Einsatzes von Unix als PC-Betriebssystem für Mehrplatz-Systeme liegt der größte Bedarf an "Tuning" im Ein- und Ausgabebereich.

Hier entstehen durch die interne Bus-Architektur des PCs und die Standardmöglichkeiten der internen Datenübertragung zwischen CPU, Festplatte und Hauptspeicher Engpässe. Was geschieht nun im System, wenn Informationen verarbeitet werden? Zuerst einmal soll der Einfluß der relativen Verarbeitungsgeschwindigkeiten von Ein- und Ausgabegeräten auf die Leistung des Gesamtsystems untersucht werden.

In einem Rechner sind bei der Verarbeitung von Daten, wie vorher schon angedeutet, CPU, RAM und Festplatte wirksam. Diese drei Komponenten unterscheiden sich in der Relation des Zeitbedarfs ganz erheblich voneinander. Am Beispiel einer Lohnabrechnung läßt sich das anschaulich darstellen. Der Rechner muß dabei folgende Schritte bearbeiten:

- den Stundensatz lesen,

- die gearbeiteten Stunden lesen,

- den Lohn daraus berechnen,

- ein Update der Gehaltsdatei mit den neu errechneten Daten veranlassen.

In der Abbildung 1 ist dargestellt, wie diese vier Schritte intern ablaufen und welche Einheit was macht.

Die Grafik zeigt, daß nur etwa 23 Prozent der anfallenden Arbeit auf den I/O-Bereich fallen, der Rest, also mehr als drei Viertel, wird vom Prozessor erledigt. Um so erstaunlicher ist das Ergebnis der Berechnung, wieviel Verarbeitungszeit auf die CPU und wieviel auf den I/O-Bereich fällt.

Legt man einen üblichen 80386-PC mit 33 Megahertz Prozessor-Taktrate "von der Stange" zugrunde, verhält sich der Zeitverbrauch wie in Abbildung 2 dargestellt.

Erst wenn man die wenig greifbaren Dimensionen von Nano- und Millisekunden relativiert, wird deutlich, wie groß die oben aufgeführten Unterschiede wirklich sind. Nehmen wir an, eine hypothetische Person habe eine Schrittweite von einem Meter. Damit würde sie 40 Millionen Schritte brauchen, um einmal um die Welt zu laufen. Unsere Testperson sei physisch überdurchschnittlich begabt und schafft es daher, einen Schritt in einer Millisekunde zu tun. Damit wäre die Reise per pedes um die Welt in 12,2 Stunden erledigt. Beträgt die Schrittfrequenz dagegen nur eine Mikrosekunde, umrundet unser Testläufer alle 44 Sekunden einmal den Globus. Erhöht Superman die Frequenz auf eine Nanosekunde pro Schritt, umkreist er pro Sekunde die Erde 22,7 mal .

36 Tage für die Gehaltsabrechnung

Auf das obige DV-Beispiel übertragen, resultiert aus anschaulicheren Dimensionen ein frappierendes Ergebnis: Setzt man die 30 Nanosekunden, die der Prozessor für eine Leseoperation braucht, gleich einer Sekunde, läßt sich errechnen, daß in RAM-Zugriff vier Sekunden braucht und ein einziger Festplatten-Zugriff sage und schreibe zwölf Tage! Die gesamte Zeit, die unsere Gehaltsabrechnungs-Transaktion dabei bräuchte, wäre 36 Tage und 22 Sekunden. Splittet man diesen Zeitverbrauch auf, zeigt sich, daß die CPU davon 22 Sekunden benötigt, während die I/O-Operationen 36 Tage "verbraten".

Der Flaschenhals ist also zweifelsfrei die Festplatte. Der Prozessor kann nichts an der Verarbeitungsgeschwindigkeit ändern. Selbst ein doppelt so schneller Prozessor, der nur 15 Nanosekunden Ausführungszeit benötigt, führt lediglich zu 0,00025 Prozent Zeitgewinn! Reduziert man dagegen die durchschnittliche Zugriffszeit der Festplatte, indem statt der oben angenommenen 28 Millisekunden-Platte eine 17 Millisekunden-Platte eingebaut wird, bewirkte dies einen Zeitgewinn von 40 Prozent oder in unserem Beispiel von 14,4 Tagen.

CPU-Funktionen verbrauchen kaum Zeit

Es gibt also höchst signifikante Geschwindigkeitsunterschiede zwischen den einzelnen Devices eines Systems, wobei diese Zeitdifferenzen natürlich einen direkten Einfluß auf den Abschluß der einzelnen Transaktionen haben.

Auf einen Nenner gebracht, verbrauchen Funktionen, die von der CPU ausgeführt werden, praktisch keine Zeit, verglichen mit dem Zeitverbrauch der Plattenoperationen. Obwohl in den seltensten Fällen auf diesen Gesichtspunkt hin optimiert wird, fordern es solche Unterschiede geradezu heraus, genau hier den "Tuning-Hebel" anzusetzen.

Im vorhergegangenen Beispiel wurde deutlich, wieviel Zeit eine 17-Millisekunden-Platte gegenüber einer 28-Millisekunden-Platte spart. Es liegt daher nahe, zuerst einmal eine schnellere Platte einzubauen. Hier liegt der Vorteil klar bei den Festplatten mit SCSI-Controller; sie sind zumeist leistungsfähiger als die PC-typischen RLL- oder MFM-Platten. Der SCSI-Controller sollte darüber hinaus mit ausreichend intelligentem Cache-Memory versehen sein.

Cachememory als ein Ausweg

Die klassische Möglichkeit, langsame Plattenzugriffe zu vermeiden, ist das sogenannte "Cachememory". Man versteht darunter einen Zwischenspeicher, der aus extrem schnellen Chips mit unter 70 Nanosekunden Zugriffszeit aufgebaut ist. In diesen Speicher werden häufig abzutragende Daten geschrieben, und so wird verhindert, daß diese immer wieder von der Festplatte nachgeladen werden müssen. Dennoch muß auch der Cache-Inhalt einmal von der Harddisk geladen und auch wie der darauf geschrieben werden.

Berücksichtigt man nun alle vorgenannten Möglichkeiten, wäre bis zu diesem Punkt unser Unix-PC als Singleuser-Workstation ausreichend optimiert. Im Multiuser-Betrieb mit angeschlossenen Terminals entstehen plötzlich weitere Probleme der Datenübertragungsgeschwindigkeit. Ein seriell über RS232 angeschlossenes Terminal mit 9600 Baud Übertragungsrate hat normalerweise einen 24-Zeilen-80-Spalten-Bildschirm. Ein Zeichen besteht dabei aus zehn Bit: Acht Daten-Bits, ein Parity-Bit, ein Start- und/oder Stop-Bit. Insgesamt benötigt man für einen vollen Bildschirm also 19 200 Bits, was zur Folge hat, daß für den kompletten Bildschirmaufbau zwei Sekunden veranschlagt werden müssen .

Zwei Sekunden sind zwar manchmal eine zumutbare Wartezeit. Zu berücksichtigen ist allerdings, daß moderne Applikationen immer mehr eine Mischung aus Grafik und Text werden und somit ein grafikfähiges Terminal benötigen. Bei durchschnittlichen Grafik-Terminals mit 640 x 480 Bildpunkten Auflösung und 16 Farben besteht ein Bildschirm sogar aus 1 228 800 Bits. Der Bildschirmaufbau braucht demnach bei 9600 Baud 128 Sekunden, also mehr als zwei Minuten. Daß das nicht mehr zumutbar ist, bedarf keiner Erklärung. Das Problem liegt jedenfalls an der Übertragungsgeschwindigkeit zwischen CPU und Terminal.

Der Anschluß mehrerer Terminals an den Unix-PC setzt normalerweise den Einbau einer Multi-Seriell-Karte voraus, da die Rechner über kaum mehr als zwei serielle Schnittstellen an der Gehäuserückseite verfügen. Die technischen Voraussetzungen zur Übertragung serieller Daten sehen wie folgt aus: Der Unix-Kernel schafft die Daten über die Unix-Utility "Streams", einen Vollduplex Datenkanal, der etwa 100fach schneller als übliche Treiber arbeitet. Die maximale Übertragungsgeschwindigkeit serieller Daten in einem Unix-System beträgt 38,4 KBaud.

Intelligente Schnittstellenkarten

Damit lassen sich bei Verwendung der üblichen RS232-Kabel fünf Meter überbrücken. Mit 20 Milliampere- oder RS422-Kabeln erreicht man 600 beziehungsweise 1200 Meter Kabellänge mit fehlerfreier Übertragung. Unter bestimmten Voraussetzungen kann ein Terminal, das über RS422 angeschlossen wird, bis zu 3600 Meter vom Rechner entfernt sein.

Bei synchroner Datenübertragung, beispielsweise über das IBM 3270-Protokoll, werden bis zu 1,2 Mbit/s erreicht. Allerdings ist diese Form der Datenübertragung für PC-Unix-Systeme in den meisten Fällen zu aufwendig. Die Anforderungen an die Schnittstellenkarten ergeben sich entsprechend. Für kleinere Installationen sind sicherlich einfache Multiport-Karten ausreichend. Wichtig ist hierbei nur, daß sie über einen ausreichend großen Puffer-Speicher verfügen, um keine allzu großen I/O-Engpässe entstehen zu lassen. Für Installationen, bei denen acht und mehr sogenannte "Poweruser" das System belasten, benötigt man "intelligente" Schnittstellenkarten zur Aufrechterhaltung einer annehmbaren Performance.

Worin liegt nun die "Intelligenz" einer solchen Karte? Diese Multiport-Boards enthalten ein eigenes Betriebssystem und einen eigenen Prozessor, einen Intel 80286- oder gar einen eigenen RISC-Prozessor wie beispielsweise die "Megaport 12/24"-Karte des amerikanischen Herstellers Equinox. Diese CPUs können wesentliche Teile der TTY-Steuerung dem Systemprozessor abnehmen. Die Karten-CPU stellt beispielsweise das XON-XOFF-Protokoll bereit und verarbeitet es oder korrigiert eventuelle Übertragungsfehler. Zusätzlich können bestimmte intelligente Karten die Start- und Stop-Bits verarbeiten, das heißt, an das Rechner-Betriebssystem werden lediglich "Nettodaten" geliefert, und der Systemprozessor ist von dieser Arbeit entlastet. Zeichenformatierungen und ähnliche Konvertierungen übernimmt also die I/O-Karte.

Die Entwicklung der Multiport-Boards geht inzwischen weit über die simple Bereitstellung einer "Vielfach-Terminal-Steckdose" hinaus. Die intelligenten Schnittstellenkarten von Comtrol beispielsweise verfügen neben dem eigenen Betriebssystem und eigenen, anwendungsoptimierten Bus-Systemen über Dual ported RAM und die Möglichkeit, Betriebssystem-Funktionen wie "Streams" zu nutzen. Die Smart-Hostess-Karten können Daten in das synchrone X.25-Protokoll umwandeln und somit "Pakete" mit 1,2 Mbit/s beispielsweise über Datex-P verschicken.

Momentaner Endstand in der Bereitstellung von höchster Performance im I/O-Bereich ist die schon erwähnte Verwendung von RISC-Prozessoren für Schnittstellenkarten. Bei der Megaport-RISC-Karte liegt der Datendurchsatz mit 1,8 Mbit/s weit über dem Normmaß. Mit 24 angeschlossenen Ports ist das RISC-Board noch in der Lage, konstant mit 38,4 Kbit/s zu übertragen.

Für die Multiport-Karten dürfte die Zukunft bei RISC-Prozessoren liegen, da nur bei reduziertem Instruktionssatz künftig weitere Performance-Steigerungen möglich sind.

X-Windows-Netz ist noch zu teuer

Die Problematik der Übertragung grafischer Anwendungen zum Terminal läßt sich allerdings auch mit einer noch so schnellen I/O-Karte nicht befriedigend lösen. In Window-orientierten Applikationen sind zum Beispiel Aktionen wie "copy" und "paste" laufend gefragt. Die daraus entstehende Datenflut kann und muß vom Systemprozessor nicht bearbeitet werden. Eine Antwort darauf ist das X-Windows-System. Es handelt sich hier im Prinzip um ein Ethernet-Netzwerk, bei dem die Grafik- und Windows-relevanten Teile von einer Workstation lokal bearbeitet werden. Zusätzlich hat diese Konzeption noch alle Vorteile eines echten Ethernet-LANs, also die hohe Übertragungsgeschwindigkeit mit 10 MBit/s, die Möglichkeiten der LAN-internen Kommunikation etc.

Der Nachteil des X-Windows-Netzes liegt in den Kosten. Die dafür nötigen X-Terminals sind im Preis noch erheblich über normalen Farbgrafik-Terminals oder VGA-PCs angesiedelt. Es gibt allerdings auch hier preiswertere Auswege. Will man beim X-Windows-Konzept bleiben, bieten sich X-Windows-Emulationen wie "PC-Xview" an.

Bei dieser Hard- und Softwarekombination von Spectagraphics wird ein normaler 80286-PC mit VGA-Karte unter, TCP/IP und NFS ausgerüstet und ist damit ein vollwertiger Client im Netz. Die Gesamtkosten liegen so für einen kompletten Arbeitsplatz inklusive Hardware bei etwa 4000 Mark.

Grafische Applikationen lassen sich bei einem Unix-PC mit der entsprechenden Grafikkarte immer von der Konsole aus starten. Indem man nun für die angeschlossenen Terminals Konsol-ähnliche Bedingungen schafft, kann man die Schwierigkeiten mit Grafik-Terminals ebenfalls umgehen. Es handelt sich bei dieser Terminal-Konzeption um Bildschirm-Tastatur-Kombinationen, die an mehrere oder mehrfach genutzte VGA-Karten angeschlossen werden. Die Probleme der Übertragungslänge kommen jedoch hier zum Tragen. Wegen der Übermittlung analoger RGB-Informationen sind im Normalfall Leitungslängen über 30 Meter nicht möglich. Einen Ausweg würden Lichtwellenleiter bieten; sie sind aber aus Kostengründen noch nicht rentabel einzusetzen.

Eine Host-Adapterkarte bedient 16 Arbeitsplatze

Als Lösung bieten sich hier Systeme wie "Multivision" an. Dabei handelt es sich um VGA-Grafik-Cluster. Im Rechner selbst steckt eine Host-Adapter karte, an die wiederum bis zu vier Cluster-Adapter angeschlossen werden können. Die Kabellänge zwischen Rechner und Cluster-Adapter kann bis zu 60 Meter betragen, wobei die Übertragungsrate bei maximal 100 Mbit/s liegt, also dem Zehnfachen eines Ethernet.

Im Cluster-Adapter befinden dann bis zu vier VGA-Karten in normalen 16-Bit-Slots, an die wiederum Grafikstations-Adapter mit bis zu acht Meter langen Leitungen angeschlossen werden können. An einem Grafikstations-Adaptern hängen dann VGA-Bildschirm, Tastatur und Maus.

Mit diesem Konzept lassen sich also bis zu 16 VGA-Arbeitsplätze pro Host-Adapterkarte anschließen.

Host-System erledigt keine Verwaltungsaufgaben

Neben echtem Multiuser-Betrieb laufen über Multivision auch X-Windows-Anwendungen. Nachdem es bei diesem System keine vernetzten Workstations gibt, müssen Client- und Server-Aktivitäten zugleich vom Host, also dem Unix-PC, bearbeitet werden.

Die hierdurch auftretende Belastung der CPU wird mehr als ausgeglichen, da kein Netz existiert und das Host-System somit keine Netzwerk-Verwaltungsaufgaben übernehmen muß und, wie schon erwähnt, der Datendurchsatz etwa zehnmal höher ist.

Gerade bei den Überlegungen, die Engpässe des Multiuser-Betriebs mit Terminals bei einem Unix-PC zu beseitigen, kommt es sehr stark auf den geplanten Einsatz an. Systeme wie Multivision werden hauptsächlich bei CAD-Applikationen oder anderen Anwendungen, die höchste Grafikauflösung verlangen und gleichzeitig große Datenmengen zu bewältigen haben, eingesetzt werden. Für reine Dateneingabe, einfache Textverarbeitung oder Datenbankanwendungen sind hingegen alphanumerische Terminals mit einer in der Leistung vernünftig angepaßten Multi-Schnittstellenkarte vollkommen ausreichend.