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.
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.
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
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. Die binären Komponenten sind als Releases auch über Maven Central erhältlich.
News: SPASS-meter 1.30 (06.06.2018) unterstützt jetzt auch Java 9.
Weiterführende Links:
Laufzeit:
2010 –
Kontakt: Dr. Holger Eichelberger
Lfd. Nr. | Publikation |
---|---|
2017 | |
6. | Holger Eichelberger, Cui Qin und Klaus Schmid (2017): From Resource Monitoring to Requirements-based Adaptation: An Integrated Approach In: Proceedings of the 8th ACM/SPEC on International Conference on Performance Engineering Companion (ICPE '17) S. 91-96. ACM. |
5. | Holger Knoche und Holger Eichelberger (2017): The Raspberry Pi: A Platform for Replicable Performance Benchmarks? In: Proceedings of the 8th Symposium on Software Performance in Softwaretechnik-Trends Bd. 37. Heft / Ausgabe 3. S. 14-16. |
2016 | |
4. | Holger Eichelberger, Aike Sass und Klaus Schmid (2016): From Reproducibility Problems to Improvements: A journey In: Proceedings of the 7th Symposium on Software Performance Bd. Softwaretechnik-Trends. Heft / Ausgabe 4. S. 43-45. |
2014 | |
3. | Holger Eichelberger und Klaus Schmid (2014): Flexible Resource Monitoring of Java Programs In: Journal of Systems and Software, 93: 163-186. Elsevier. |
2012 | |
2. | Holger Eichelberger (2012): SPASS-meter - Measuring Diverse Software Attributes in an Integrated Manner Invited talk at KoSSE Symposium Application Performance Management (Kieker Days 2012) |
1. | Holger Eichelberger und Klaus Schmid (2012): Erhebung von Produkt-Laufzeit-Metriken: Ein Vergleich mit dem SPASS-Meter-Werkzeug In: G. Büren and R. R. Dumke and C. Ebert and H. Münch (Hrsg.): Proceedings of the DASMA Metrik Kongress (MetriKon '12) S. 171-180. Shaker Verlag. |
Prof. Dr. Klaus Schmid
Institut für Informatik
AG Software Systems Engineering
Universitätsplatz 1
31141 Hildesheim
Besucheradresse:
Institut für Informatik
Samelsonplatz 1
31141 Hildesheim
Sekretariat: Raum C212 Spl
Telefon +49 5121 883-40330
Besucheradresse:
Stiftung Universität Hildesheim
Institut für Informatik
Samelsonplatz 1
31141 Hildesheim