Schlechten Antwortzeiten vorbeugen Performance-Simulation macht den C/S-Einsatz weniger riskant

07.10.1994

Von Andreas Seeger*

Client-Server ist in nahezu jedem groesseren Unternehmen ein Thema. Allerdings wollen Anwender die Fehler, die sie in ihren hierarchisch organisierten DV-Strukturen implementiert haben nicht wiederholen. Das ist auch nicht noetig: Ausgekluegelte Performance- Modellierungsverfahren geben exakte Hinweise auf kuenftige Leistungsanforderungen.

Moderne Client-Server-Architekturen bestehen in der Regel aus einer komplexen Konfiguration heterogener Betriebssysteme, verschiedenen Rechnerplattformen, Netzkomponenten, Datenbanken und einer Kombination aus Standard- und Individualsoftware. Die Anwender dieser DV-Systeme fordern eine komfortable Bedienung, eine optimale Unterstuetzung der taeglichen Arbeit und vor allem ein gutes Antwortzeitverhalten der Programme.

Viele der heute installierten Client-Server-Loesungen sind jedoch nicht in der Lage, diese und andere Erwartungen der Anwender zu erfuellen. Ursachen sind oft unerkannte Bottlenecks, die zu Antwortzeitproblemen fuehren. Bei der Umstellung von Grossrechnersystemen auf vernetzte PC- und/oder Unix- Konfigurationen muessen viele Unternehmen erkennen, dass nicht automatisch alles besser und schneller funktioniert, nur weil jetzt eine verteilte Verarbeitung die Verwendung preisguenstiger Hardware ermoeglicht.

Je weiter die Client-Server-Entwicklung voranschreitet, desto deutlicher wird vielmehr, dass Performance zum entscheidenden Aspekt beim Design von Client-Server-Architekturen wird. Allein durch die Komplexitaet solcher Loesungen stellen sich den Architekten heute bei der Planung Fragen wie: "Welche Antwortzeiten kann ich von diesem System erwarten?" oder "Wie gross muss der Server sein, um 200 Workstations effizient zu bedienen?"

Wer sich bei der Suche nach entsprechenden Antworten und Loesungen nicht auf die Aussagen der Hard- und Software-Anbieter oder auf sein Gefuehl verlassen moechte, kann durch sogenanntes Performance Modeling auf Basis der verwendeten Komponenten qualifizierte Voraussagen fuer die zu erwartende Systemleistung erhalten.

Performance Modeling zeigt Risiken in sehr fruehen Projektphasen auf und mindert sie damit. Implementierungskosten lassen sich reduzieren, da Architekturfehler fruehzeitig erkannt werden.

Die Modelle bieten eine klare Planungsbasis fuer die Systemarchitekten. Erfahrungen zeigen, dass sich durch die gezielte Abstimmung der Komponenten bei Hard- und Software erhebliche Einsparungen erzielen lassen.

Performance Modeling laesst sich mit der Statik beim Bau eines Hauses vergleichen: Ein Architekt wird seine Haeuser erst dann bauen lassen, wenn er die statischen Merkmale von Einzelteilen wie Traegern, Steinen, Balken, Naegeln etc. ermittelt, bewertet und kombiniert hat. Das Ergebnis wird er in einer abgesicherten statischen Berechnung dem Bauherrn praesentieren - erst jetzt kann sicher gebaut werden. Analog gehen professionelle Anbieter bei der systematischen Performance-Planung von Client-Server-Systemen vor.

Der Architekt einer Client-Server-Anwendung erstellt auf Basis der Anforderungen an das System ein Modell. Fuer die Komponenten beziehungsweise Submodelle wird das reale Antwortverhalten ermittelt. Sind alle Komponenten einzeln in ihrem Antwortverhalten modelliert, wertet eine computerbasierte Simulation ihr Zusammenspiel aus. Dabei kann die Last des Systems, zum Beispiel die Zahl der eintreffenden Transaktionen, variiert werden, um dessen Grenzen zu ermitteln. Werden Schwachstellen herausgefunden, lassen sich diese durch Anpassungen auf Modellebene beheben. Dies belegt eine erneute Simulation. Erfuellt das Modell die Anforderungen, ist die optimale "Statik" ermittelt und kann als Client-Server-System implementiert werden.

Bei der Erstellung von Simulationsmodellen bedient man sich einer hierarchischen Schichtenarchitektur (siehe Abbildung 1). Die obere Schicht repraesentiert den Geschaeftsprozess. Dieser beschreibt, in welchem Umfeld das System laufen soll. Er simuliert den Workflow in und aus dem Modell. Anwender liefern auf unterschiedlichen Wegen und in variierender Form Informationen an das System und erhalten auf verschiedene Art und Weise verarbeitete Daten zurueck.

Die Server-Schicht beschreibt die physikalische Konfiguration der Systeme und deren Kommunikation (etwa ueber das LAN) miteinander. Wie Abbildung 1 zeigt, besteht diese Ebene in diesem Beispiel aus drei Servern. Terminal-, Transaction- oder Database-Server lassen sich in verfeinerten Submodellen weiter detailliert modellieren und bilden die Grundlage fuer die modellweite Bewertung der Performance.

Im Kern des Modells werden die einzelnen Module nach Regeln der Warteschlangentheorie (Queuing) konstruiert. Der in Abbildung 2 gezeigte Terminal Server soll in diesem Beispiel ein Unix-System sein, das eine Reihe von X-Terminals bedient. Das Submodell besteht aus einem Eingang, der Warteschlange, dem Server und dem Ausgang. Alle Terminals teilen sich den Server und werden in der Warteschlange nach dem Motto "First come first serve" verarbeitet. Der Server wird durch Attribute wie relative Arbeitseinheiten pro Terminalanfrage und Verarbeitungsgeschwindigkeit je Arbeitseinheit beschrieben. Daraus laesst sich die Verarbeitungszeit je Terminalanfrage errechnen.

Die Verarbeitungszeit eines "Jobs" im Submodell ist jene Zeit, die der Terminal-Server benoetigt, um Informationen des ersten X- Terminals zu verarbeiten und den naechsten Bildschirm darzustellen. Es gilt also die Gleichung: Verarbeitungszeit ist gleich Arbeitseinheiten je Anfrage in Relation zur Verarbeitungsgeschwindigkeit.

Das reale Verhalten des Submodells wird ueber Benchmark-Messungen ermittelt. So koennen die Parameter fuer die Simulation an der Wirklichkeit "geeicht" werden. Diese Benchmark-Tests werden fuer alle relevanten Submodelle, wie Transaction- und Database-Server, Netzwerke, LAN Server etc. durchgefuehrt. Es ist ratsam, diese Messergebnisse sorgfaeltig zu dokumentieren, da sie fuer weitere Client-Server-Projekte wiederverwendet werden koennen.

Mit diesen Ergebnissen laesst sich nun eine Simulation des Gesamtmodells durchfuehren. Vorteil ist hierbei, dass man in der Lage ist, verschiedene Alternativen zu simulieren, ohne diese auch wirklich physisch vorher implementieren zu muessen.

Performance Modeling hat sich in der Praxis bewaehrt. Fuer den intelligenten Einsatz von Informationstechnologie in Banken und Unternehmen der Telekommunikations-Industrie haben wir in den letzten Jahren Benchmark-Daten und Performance-Modelle gesammelt. Auf diese kann fuer neue Client-Server-Architekturen bei Performance-Simulationen als Datenbasis zurueckgegriffen werden.