Ulrich Benzing Technischer Projektleiter

5. November 2012

Performanzoptimierung („Performance Optimization“)

Filed under: Software Performanz — uhb @ 13:00:52

Performanzoptimierung („Performance Optimization“)

Für meine Kunden nehme ich Performanzoptimierungen an komplexen IT-Systemen vor.

Bei der Performanzoptimierung verwende ich einen iterativen Ansatz, den ich mit ”Denken – Messen – Ändern – Sicherstellen“ bezeichne:

1. Denken: Es hört sich selbstverständlich an, aber das eindeutige Festlegen des zu erreichenden Zieles ist der wichtigste Schritt bei der Performanzoptimierung.  Man kann im Wesentlichen zwischen zwei Zielen unterscheiden:

a) Stabiler Betrieb –  Erreichen eines stabilen Betriebs unter definierter, vorgegebener Last und

b) Erreichen einer gegebenen, klar definierten Geschwindigkeit

2. Messen: Im zweiten Schritt wird das System einer Reihe von Tests unterzogen, um die das System begrenzenden Faktoren zu bestimmen.

3. Ändern: Ein Parameter des Systems wird verändert, der die Systemgeschwindigkeit begrenzt.

4. Sicherstellen: nach der jeweiligen Änderung wird das System einem erneuten Test unterzogen, um die Wirksamkeit der Veränderungen sicherzustellen oder auszuschliessen.

Die Schritte 2-4 werden iterativ wiederholt, bis das Ziel erreicht ist.

>>> Welche Performanzoptimierungen sind möglich?
Das ist sehr unterschiedlich und hängt im Wesentlichen von zwei Faktoren ab: Intensivität der bislang durchgeführten Optimierungen und Investment in die Optimierung. Sofern der Kunde bereit ist, die entsprechende Menge an Zeit zu investieren, können durchaus Beschleunigungen bis zum Faktor 200 bei gleicher Hardware möglich sein (In einem meiner Projekte von 550 Millisekunden je Transaktion auf rund 2,7 Millisekunden je Transaktion über einen Optimierungszeitraum von circa 9 Monaten).

>>>Als Faustregel gilt: die drei einzigen harten Grenzen sind die Lichtgeschwindigkeit, die Zeit und das Geld, das man bereit ist, zu investieren.

Forden Sie mich mit Ihrem Performance-Problem – ich löse es! Ich führe gerne ein Erstgespräch mit Ihnen, um die Möglichkeiten in Ihrem Projekt auszuloten – ohne Kosten für Sie.

>>> Auf welche Systeme bin ich spezialisiert?
Generell bin ich ein „Server-Typ“ und spezialisiert auf Java-Software (JEE, JMX, JCA),  relationale Datenbanken wie Oracle, Middleware wie JBoss und Bea Weblogic sowie
bestimmte Netzwerkprotokolle, Betriebssysteme wie AIX und Linux und auch bestimmte Hardwareeigenschaften. Generell kann ich Ihnen wahrscheinlich bei jedem Performanceproblem helfen… mit der einzigen Ausnahme von 3D-Graphikengines (aber dafür könnte ich Ihnen ein Team zusammenstellen).

Powered by WordPress