Wir finden heraus, wo es klemmt.

Manche Systeme sind krank: Sie werden langsam, verhalten sich eigenartig, produzieren Fehler und reagieren am Ende gar nicht mehr. Andere verhalten sich erratisch, laufen tagelang problemlos, um dann plötzlich ohne Warnung abzustürzen. Woran kann das liegen? Zu wenig Speicher, zu viele Threads, zu wenig Bandbreite, Programmierfehler, inkompatible Versionen von Software-Produkten, Fehler in einem Produkt?

Wie der Arzt mit Stethoskop, Ultraschall und EKG in das Innere des Patienten schaut, so analysieren wir kranke Systeme mit unseren Werkzeugen. Die beiden wichtigsten Ergebnisse unserer Diagnose sind das Software-Blutbild und das Software-EKG.

Das Software-Blutbild ergibt sich aus der statischen Analyse: Wir schauen uns an, wie das System aus Komponenten, Frameworks und Bibliotheken zusammengesetzt ist. Wir erkennen Komplexitätsnester und versteckte Abhängigkeiten. Wir sind spezialisiert auf komplexe heterogene Systeme, die auf viele Rechner verteilt sind.

Das Software-EKG zeigt das dynamische Verhalten: Wir messen Speicherverbrauch, Threads, Allokation und Deallokation von Ressourcen, Wartezeiten und Deadlocks über einen längeren Zeitraum. Die Ergebnisse speichern wir in einer Datenbank, deren Rückgrat die Zeitachse ist. Dies gestattet zahlreiche Auswertungen und Visualisierungen. Mit dem Software-EKG sind wir in der Lage, Systemanomalien durch vertikale Schnitte über alle Messungen und Protokolle hinweg zu analysieren. Wir sehen, was auf den verschiedenen Ebenen in den verschiedenen Rechnern zu einem bestimmten Zeitpunkt passiert ist – und das ist genau die Information, die man für die Diagnose braucht.

Wie in der Medizin gibt es typische Krankheitsbilder. Software-EKG und Software-Blutbild zeigen uns, wo wir mit der Detailanalyse ansetzen müssen. So erhalten wir eine solide Basis für Stabilisierung und Sanierung.