Projekt: SPASS-meter

SPASS-meter – Flexibles und effizientes Messen des Ressourcenverbrauchs von Programmen

Die Ressourcennutzung eines Programms im Sinne von Rechenzeit, Speichernutzung, Datei- oder Netzwerktransfer sind wichtige Kennzahlen zur Steuerung der Software-Entwicklung aber auch zur Selbstanpassung von Programmen zur Laufzeit. Im Rahmen der Software-Entwicklung dienen diese Kennzahlen zur Operationalisierung von Qualitätsanforderungen und unterstützen damit die Steuerung durch das Qualitätsmanagement. Zur Laufzeit eines Programms können diese Kennzahlen gezielt zur Selbstanpassung verwendet werden, beispielsweise um die Laufzeitqualität in veränderlichen Umgebungen zu erhalten oder zu verbessern.

 

 

                                          Abbildung Spass-meter Monitoring Pipeline

SPASS-meter1 ist ein Monitoring-Framework das den Verbrauch von Ressourcen wie CPU-Zeit, Speichernutzung, Datei- und Netzwerktransfer für Java-Programme vermisst um sowohl die Software-Entwicklung im Allgemeinen als auch die Entwicklung selbst-adaptiver Programme zu unterstützen. Eine Besonderheit von SPASS-meter ist die Bestimmung der Ressourcennutzung für frei definierbare semantische Programmeinheiten wie Komponenten oder Services. Eine semantische Einheit wird dabei als logische Gruppierung beschrieben, für die sowohl der Erfassungsbereich (in Java charakterisiert durch Klassen oder Methoden) als auch die zu erfassenden Ressourcen festgelegt werden kann. Der Erfassungsbereich definiert dabei auch, ob der Verbrauch einer Ressource nur direkt für die Elemente der Gruppierung oder indirekt für die von der Gruppe aufgerufenen Programmteile ermittelt werden soll. Weiterhin kann SPASS-meter programm- und systemweite Metriken, wie beispielsweise die CPU-Auslastung der ausführend virtuellen Maschine eines Java-Programms, bestimmen um die relative Ressourcennutzung abzuleiten und diese über Programme hinweg vergleichbar zu machen.

 

 

                                           Abbildung Spass-meter Architektur

Dadurch ist SPASS-meter sehr flexibel konfigurierbar und ermöglicht indirekt die Kontrolle des Laufzeit-Overheads, da aufwändigere Messverfahren wie indirekte Produktmetriken nur bei Bedarf zum Einsatz kommen. Die Konfiguration von SPASS-meter kann in Form von Quelltext-Annotationen oder als externe Konfigurationsdatei erfolgen. Wie in Java üblich ermittelt SPASS-Meter den Ressourcenverbrauch durch Instrumentierung. Instrumentierung bedeutet, dass zusätzlicher Programmcode, der die Messungen realisiert, in das zu messende Programm eingebracht wird.

Bei experimentellen Messungen mit der SPECjvm2008 Benchmark Suite konnten wir einen durchschnittlichen Laufzeit-Overhad von 2,7 % Rechenzeit und maximal 2,2 % Speicherverbrauch selbst bei Messungen des indirekten Speicherverbrauchs (Allokation) ermiteln.

SPASS-meter wird als Teil von INDENICA unter Open Source Lizenz veröffentlicht werden.

Wesentliche Eigenschaften

  • CPU-Zeit, Antwortzeit, Speicherverbrauch (Allokation, Unallokation), Dateitransfer, Netzwerktransfer auf System-, Programm- und Gruppenebene
  • Frei-definierbare logische Gruppierungen um z.B. für Services oder Komponenten abzubilden mit individuellen zu messenden Ressourcen
  • Direkte Resourcenmessung (nur in den vorgegebenen Klassen / Methoden) oder indirekte Messung (auch in abhängigen Klassen / Methoden)
  • Statische, dynamische und gemischte Instrumentierung
  • Anwendbar auf Java-Programme und Android-Apps
  • Optionale Integration in Java Management Extensions (JMX) und OW2 Wildcat

1 SPASS-meter wird als Teil des Entwicklungsansatzes SPASS (Simplifying the develoPment of Adaptive Software Systems) entwickelt.

 

SPASS-meter ist als Open Source Software unter der APACHE Lizenz verfügbar und kann vom SSE github heruntergeladen werden.

 

Weiterführende Links:

Laufzeit:

                2010 –

Kontakt: Dr. Holger Eichelberger

Veröffentlichungen

Author:  
All :: E, K, Q, S 
  
 
Preferences: 
References per page: Show keywords Show abstracts
References

2017

6.
Knoche, Holger and Eichelberger, Holger
Proceedings of the 8th Symposium on Software Performance , page 3.
2017
5.
Eichelberger, Holger, Qin, Cui and Schmid, Klaus
Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (ICPE '17) , page 91-96.
Publisher: ACM,
2017

2016

4.
Eichelberger, Holger, Sass, Aike and Schmid, Klaus
Proceedings of the 7th Symposium on Software Performance Volume Softwaretechnik-Trends , page 43-45.
2016

2014

3.
Eichelberger, Holger and Schmid, Klaus
Journal of Systems and Software, 93:163-186
2014

2012

2.
Eichelberger, Holger and Schmid, Klaus
In G. Büren and R. R. Dumke and C. Ebert and H. Münch, editor, Proceedings of the DASMA Metrik Kongress (MetriKon '12) , page 171-180.
Publisher: Shaker Verlag,
2012
1.
Eichelberger, Holger
2012
Export as:
BibTeX, XML