Bestimmung notwendiger Ressourcen in frühen Entwicklungsphasen von DV-Anwendungen:

Die frühzeitige Planung bringt viel kürzere Laufzeiten

23.09.1988

Reinhard Simon ist Geschäftsführer der Innova Consulting, Wiesbaden

Aufwendige Nachbesserungen von realisierten Anwendungen bezüglich Durchsatz und Antwortzeitverhalten lassen sich durch ein sachgerechtes Design vermeiden. Reinhard Simon zeigt konkrete Vorgehensweisen für die Leistungsberechnung schon während der ersten Software-Entwicklungsphasen.

Die Dimensionierung neuer Rechneranlagen beziehungsweise die Berechnung der notwendigen Ausweitung vorhandener Hardware-Kapazitäten gehört zu einem Abschnitt im Phasenplan der Software-Entwicklung, der meist zeitlich parallel zur Realisierung der Anwendungsprogramme steht. In vielen Fällen muß damit jedoch auch schon in einem Stadium begonnen werden, in dem von der Anwendung nur fachliche Beschreibungen der Funktionen vorliegen und noch keine DV-technischen Realisierungen fixiert sind.

Aus dieser Situation heraus werden bei der Zusammenstellung der Hardware-Konfiguration häufig überhöhte Sicherheitszuschläge für zentrale Komponenten wie die CPU-Leistung angesetzt. Andererseits zeigt sich möglicherweise später bei den ersten Leistungstests, daß der Durchsatz, zum Beispiel auch im Kanal- oder Plattenbereich, nicht ausreicht.

Methodische Vorgehensweisen ermöglichen es, frühzeitig für jede Situation in der Nutzung vorhandener oder Einrichtung neuer Rechner eine lastgerechte Hardware-Konfiguration zu bestimmen. Auch die mittelfristigen Konsequenzen von Entscheidungen hinsichtlich

- zentraler/dezentraler Rechnerkapazität,

- Mainframe/Abteilungsrechner/PC-Einsatz,

- DBMS/konventioneller Dateiorganisation,

- zentraler/verteilter Datenhaltung

werden in frühen Projektphasen quantifiziert und offengelegt.

Ziel des gesamten Vorgehens ist, für vorhandene und zukünftige Anwendungen in der Umgebung einer geplanten Rechner-Konfiguration Aussagen über Durchsatz und Antwortzeitverhalten zu erlangen. Wesentliche Voraussetzung für die richtige Dimensionierung der benötigten Komponenten ist eine ausreichend genaue Kenntnis der vorhandenen, der in der Realisierung befindlichen und der geplanten Anwendungen.

Es müssen Verfahren vorhanden sein, um die Anforderungen der Anwendungssysteme an alle Komponenten der Rechneranlage aus dem DV-Konzept und bereits aus dem Fachkonzept ableiten und in der Form einheitlicher Lastprofile darstellen zu können. Außerdem ist es erforderlich, für die schon im produktiven Betrieb genutzten Anwendungssysteme Meßverfahren einzusetzen, die ein genaues Bild der Lastprofile der Anwendungen und gleichzeitig der Auslastung der vorhandenen Komponenten vermitteln können.

Je nach Art der zugrundeliegenden Beschreibungen werden die Aussagen nach Einheiten wie Elementarfunktion, Transaktion, Modul oder Programm abgegrenzt (nachfolgend wird "Funktion" als gemeinsamer Begriff für diese Einheiten verwendet). Die Informationen über die Lastprofile der Anwendungen und die damit verbundene Belastung der eingesetzten Hardware müssen mit einer ausreichenden Genauigkeit bekannt sein, damit sie zusammen mit den bekannten Größen des Leistungsvermögens der Hardware-Komponenten in rechnerische Verfahren Eingang finden können.

Die Zielsysteme einer Leistungsuntersuchung sind im Bereich komplexer Anwendungssysteme Rechneranlagen, die auch eine entsprechend komplexe Architektur aufweisen. Da man für jeden Gerätetyp unabhängig aus einer großen Bandbreite unterschiedlich leistungsfähiger Einheiten wählen kann, ist auch eine differenzierte Betrachtung der einzelnen Komponenten erforderlich.

CPU und Platten bestimmen den Durchsatz

Die Leistungsdaten der Gerätetypen sind im allgemeinen bekannt; sie werden in Dimensionen wie Millionen Operationen per Sekunde (MOps, Mips) für die CPU oder Millisekunden je Zugriff bei Platten angegeben.

Die Belastung eines Druckers auf den Durchsatz des Gesamtsystems ist ohne Zweifel gering zu bewerten. Wesentlichen Einfluß auf den Durchsatz des Systems haben dagegen der Zentralprozessor und Vorrechner sowie die Plattenspeicher und Kanalsteuerungen, sodaß dem Detaillierungsgrad bei der Spezifikation der Belastung dieser beiden Komponenten eine besondere Bedeutung zukommt. Die Nutzung von Cache-Speicher und die sich aus der Wahl von Puffer- und Blockgrößen ergebenden Einflüsse werden durch Umrechnungsfaktoren eingebracht.

Auf die relevanten Funktionen beschränken

Der erste Schritt des Verfahrens besteht in der Analyse der Anwendungsfunktionen und der Aufnahme der Faktoren, die wesentlich zur Belastung einer DV-Anlage beitragen. Zur Reduzierung des Arbeitsaufwandes ist hier eine Beschränkung auf die relevanten Funktionen oder besonders belasteter Tageszeiten, vorzunehmen.

Zu beachten ist dabei jedoch, daß alle Belastungstypen (rechenintensive Routinen, leitungsbelastende Ein-/Ausgaben, DB-Update-Funktionen etc.) in der weiteren Betrachtung der Funktionen vertreten sind. Die Grundlage für die Aufnahme der lastbestimmenden Faktoren aus diesen Funktionen kann ein Fachkonzept, ein DV-Konzept oder, wenn es um die Erweiterung bestehender Anwendungen geht, ergänzend die Nutzung des Systems in produktiven Betrieb sein.

Mit jeder Phase der Software-Entwicklung wird die Genauigkeit verbessert. Mit der Erstellung des DV-Konzeptes sind bereits die Organisationsformen und Speicherbelegungen für Satztypen und für Beziehungen zwischen Satztypen bekannt und können in die Berechnung eingebracht werden. Diese Verfeinerung der Eingangsinformationen spiegelt sich in Veränderungen der Umrechnungsfaktoren (zum Beispiel zwischen logischen Zugriffen und physischen I/O-Operationen) wider.

Unabhängig von der Art der betrachteten Funktionen kommt es bei der Erhebung von Lastfaktoren auf folgende Komponenten an:

* Pfadlängen, bestimmt durch Anzahl und Art der auszuführenden Arbeitsschritte wie

- Schreib- oder Lesezugriffe auf Datenspeicher,

- Senden oder Empfangen von Datenblöcken,

- Instruktionen in Betriebs- und Anwendungs-Software;

* Häufigkeit der Durchführung der betrachteten Funktionen je Zeiteinheit (beispielsweise je Tag);

* zeitliche Verteilung in der Ausführung der Funktionen.

Aus den ersten beiden Faktoren ergibt sich ein Lastprofil, das die Gesamtbelastung der Rechnerkonfiguration aufzeigt. Unter Einbeziehung des dritten Punktes werden die Zeiten der Spitzenbelastung, die abgedeckt oder durch organisatorische Maßnahmen abgebaut werden müssen, erkennbar. In die Bestimmung des Lastfaktors "Instruktionen" gehen die Pfadlängen aus den Anwendungsfunktionen, den Datenbank- und den Datenkommunikationsaufrufen ein.

Allgemeine Systemfunktionen (zum Beispiel Task-Steuerung) werden als Overhead bei der Leistungsfähigkeit der CPU mit einem prozentualen Abschlag berücksichtigt. Die Zahl der Instruktionen, die bei Paging- oder Swaping-Vorgängen anfallen, werden bei der Berechnung speziell vorgegebener Systemkonfigurationen einbezogen, da die Anzahl der Page-Faults von der Ausstattung der Zentraleinheit abhängig ist.

Eine hohe Genauigkeit in den Aussagen wird weniger durch eine Verfeinerung des mathematischen Modells oder die Einbeziehung möglichst vieler verschiedener Hardware-Komponenten erreicht, als durch eine Erhöhung des Aufwandes für die Ermittlung der wesentlichen Eingangsparameter.

Hier verbessert sich die Zuverlässigkeit der berechneten Ergebnisse mit jedem Abschluß einer Phase im Software-Entwicklungsprozeß, da die Eingangsgrößen für ein mathematisches Modell, die die Belastung von Hardware-Komponenten durch das Anwendungssystem kennzeichnen, besser bestimmt werden können.

Mit der Kenntnis des Datenvolumens aus der Analysephase lassen sich bei der nachfolgenden Auswahl der möglichen einzusetzenden Komponenten bestimmte Einheitentypen sofort ausschließen. Aus den ermittelten Lastprofilen und den Leistungskennwerten der ausgewählten Hardware-Geräte werden in einem ersten Berechnungsschritt der Durchsatz und die Zeitdauer der Bearbeitung für jede Anwendungsfunktion mit jeder benötigten und alternativ möglichen Hardware-Komponente bestimmt. Mit diesen Informationen können dann einzelne Komponenten ausgewählt werden, die genügend schnell sind, oder es kann die Anzahl der benötigten Einheiten bestimmt werden, die ausreicht, die erforderliche Leistung zu erbringen.

Neben dieser primären Aufgabe der Leistungsuntersuchung, eine geeignete Hardware-Konfiguration zu finden, ergibt sich noch ein weiterer Nutzen aus dieser Vorgehensweise. Stellt man eine ausgewählte Konfiguration dem Lastprofil einer oder mehreren DV-Anwendungen gegenüber, erhält man Aussagen über das Zeitverhalten der einzelnen Funktionen der Anwendungen.

Durch die Einbeziehung der Nutzungshäufigkeiten ist man dann in der Lage, für eine ausgewählte Konfiguration die Auslastung des Systems und aller Komponenten sowie die Antwortzeit oder Laufzeit für jede Verarbeitungsfunktion zu ermitteln. Die Antwortzeit für eine Funktion ergibt sich in erster Näherung aus der Summe der Bearbeitungszeiten für die durchlaufenen Komponenten des Systems. Da ein einzelner Lasttyp selten allein im Rechner bearbeitet wird, kann sich die Bearbeitung an allen Komponenten durch eine Belegung des Gerätes mit anderen Aufgaben verzögern.

Die Wartezeiten steigen mit der Auslastung der Komponente an und hängen außerdem von der durchschnittlichen Bearbeitungsdauer durch diese Komponente ab. Sind die Ergebnisse dieser Kalkulationen nicht zufriedenstellend, so muß die Konfigurierung des Systems und die Berechnung als iterativer Prozeß gesehen werden.

Laufzeiten entscheidend verkürzt

Da in den Berechnungen für eine Vorhersage des Systemverhaltens die Unregelmäßigkeit in der Ankunft von Systemanforderungen, besonders bei Online-Verarbeitungen, einbezogen werden muß, ist es hier empfehlenswert, ein DV-Verfahren einzusetzen. Durch die Abbildung von Warteschlangen-Modellen können Streuungen in den Abständen zwischen der Ankunft zweier Anforderungen und Einflüsse von Wartezeiten vor der Nutzung einer Komponente in der notwendigen Weise berücksichtigt werden.

Ein weiterer Grund für den Einsatz eines DV-gestützten Verfahrens liegt in der Tatsache, daß diese Berechnung mehrfach, mit jeweils variierenden Hardware-Zusammenstellungen, durchgeführt werden muß. Erst nach wiederholter Berechnung wird sich eine Konfiguration ergeben, die eine optimale Auslastung aller Komponenten und zufriedenstellende Antwortzeiten bringt.

Mit der aufgezeigten Vorgehensweise konnten in einer Anwendung, die den Rahmen der täglich zur Verfügung stehenden Verarbeitungszeit zu sprengen drohte, Laufzeiten entscheidend verbessert werden. Die Lokalisierung der kritischen Verarbeitungsstellen, besonders im Hinblick auf die Anzahl der DB-Zugriffe, ergab Korrekturen am Daten-Design und an den Zugriffswegen. Diese Maßnahmen sowie die rechtzeitige Planung eines Zentralprozessors mit höherer Leistung und Magnetplatten mit kürzeren Zugriffszeiten brachten eine Verbesserung um rund 40 Prozent bei den Laufzeiten der täglichen Stapelverarbeitung.