3 research outputs found

    Benchmarking the Performance of Application Monitoring Systems

    Get PDF
    Application-level monitoring of continuously operating software systems provides insights into their dynamic behavior helping to maintain their performance and availability at runtime. Such monitoring may cause a significant runtime overhead to the monitored system depending on the number and location of used instrumentation probes. In order to improve a system's instrumentation to reduce the caused monitoring overhead, it is necessary to know the performance impact of each probe. In this paper, we present our MooBench approach to split the possible causes of monitoring overhead into three portions, and to quantify these portions of monitoring overhead with the help of benchmarks under controlled and repeatable conditions. To the best of our knowledge, most publications on monitoring frameworks provide none or only weak performance evaluations, making comparisons cumbersome. Our benchmark approach provides a basis for such comparisons

    Combining Application-Level and Database-Level Monitoring to Analyze the Performance Impact of Database Lock Contention

    Get PDF
    Abstract Database lock contention can severely impact application performance and limit scalability. This can be of particular importance when major modifications are made to transactional software, such as large refactorings or modernization projects. In order to assess the criticality of such modifications, it is necessary to measure the current degree of database lock contention, and attribute the effects to the appropriate sections of the application. However, current monitoring tools do not provide both application-level and database-level monitoring data with sufficient detail at the same time. In this paper, we present an approach to combine application-level and database-level monitoring to measure lock contention on a per-section basis, and present first experimental results from a prototypical implementation for PostgreSQL

    Dynamic instrumentation in Kieker using runtime bytecode modification

    Get PDF
    Software systems need constant quality assurance - this holds true in the development phase as well as the production phase. An aspect of quality is the performance of specific software modules. Kieker provides a framework to measure and diagnose runtime information of instrumented software methods. In its current state, Kieker only allows inserting probes before application start. This thesis proposes an alternative concept to extend the functionality of Kieker regarding instrumentation. The alternative approach allows inserting probes during runtime. This is done using a technology known under the term Bytecode Instrumentation (BCI) which enables to change the binary code of classes during execution. Thus the software is "reprogrammed" during runtime to provide the measurement logic. The approach is carried over of another monitoring framework called AIM (Adaptable Instrumentation and Monitoring), which already features an established implementation of this technology. Hence, this thesis aims to connect the benefits of both frameworks. This alternative concept is compared against Kieker's traditional way of performance measurement by the means of an experimental evaluation. The evaluation aims to investigate the impact on, (1) the overhead, (2) the turnaround time and (3) the reliability in terms of lost transactions. The results show a reduction of overhead, unfortunately at the cost of turnaround time. The reliability also drops due to an increase of lost transactions.Software-Systeme benötigen eine ständige Qualitätskontrolle - sowohl in der Entwicklungsphase als auch in der Produktionsphase. Ein Aspekt das die Qualität von Software ausmacht, ist die Performanz bestimmter Software-Module. Kieker bietet an dieser Stelle ein Framework an, um Laufzeitdaten von instrumentierten Methoden messen und auswerten zu können. Im aktuellen Stand können Messsonden (Monitoring Probes) in Kieker lediglich vor Programmstart eingesetzt werden. Diese Thesis zeigt ein neues Konzept das die Funktionalität von Kieker in Bezug auf die Instrumentierung erweitert. Dieser alternative Ansatz erlaubt es Messsonden während der Laufzeit einzusetzen. Dies wird mit einer Technologie umgesetzt die bekannt ist unter dem Begriff Bytecode Instrumentation (BCI). Sie ermöglicht den Binärcode von Klassen während der Ausführung zu verändern. Somit wird die Software mit der Logik der Laufzeit-Messung versehen, indem sie zur Laufzeit „neu programmiert“ wird. Der Ansatz wurde aus AIM (Adaptable Instrumentation and Monitoring), einem weiteren Monitoring Framework, übernommen. Dieses weißt eine bereits bestehende Implementierung dieser Technologie auf. Daher zielt diese Thesis darauf ab die Vorteile beider Frameworks zu verbinden. Der Overhead von diesem alternativen Konzept wird verglichen mit der herkömmlichen Art die Kieker nutzt um Performanz zu messen. Der Vergleich wird mithilfe einer experimentellen Evaluation durchgeführt. Die Evaluation untersucht die Auswirkungen auf (1) den Overhead, (2) die Turnaround-Zeit und (3) die Zuverlässigkeit in Hinsicht auf Lost Transactions. Die Ergebnisse zeigen eine Verringerung des Overheads, leider auf Kosten der Turnaround-Zeit. Die Zuverlässigkeit sinkt ebenfalls aufgrund einer erhöhten Anzahl an verloren gegangenen Transaktionen
    corecore