Apache Jmeter and RRDtool
Mai 26, 2010 | by admin | 0 Comments

Using Apache JMeter and RRDtool as a Performance Suite for EMC² Documentum Applications

Introduction

Application performance monitoring is an essential part in today’s system environment of every large company. The user community is expecting that application performance degradation is notified by the system responsibles long time before they realise it. Another often heard desire is to simulate and forecast system response times from remote sites spread all over the world. Now it is not at all a trivial task to set up a system which can fulfil such requirements. In the following a potential answer for these questions based on two open source tools is outlined.

Apache JMeter

Apache JMeter is an OpenSource software, a 100% pure Java desktop application designed to load test functional behaviour and measure performance (http://jakarta.apache.org/jmeter) in an easy way. The picture below shows the configuration window (left part)  and a possible result presentation window (right part).


jmeter4

JMeter can be used to simulate load on a server, network or object to test its strength or to analyze overall performance under different load types in different circumstances. The tests work for static and dynamic resources. The results can be presented in graphical or tabular form and easily adjusted to do any kind of graphical output required.

A strong feature of this tool is the ability to build test scenarios in distributed environments (e.g. test web applications from different remote locations) with the help of Remote Method Invocation (RMI).

grafik12

RRDtool

RRDtool is an OpenSource application to perform high performance data logging and graphing system for time series data (http://oss.oetiker.ch/rrdtool/). Own custom monitoring shell scripts or whole applications can be build using its Perl, Python, Ruby, TCL or PHP interface to extend the application.

EMC² Documentum Measurements with JMeter

Due to the high configuration flexibility of JMeter it is possible to create different test scenarios for Documentum. Even highly customized Documentum applications can be tested.  Different test scenarios can be:

  • Login, Logout
  • Search
  • Check-In, Check-Out
  • Import, Export of objects with different sizes
  • Navigation within folder hierarchies
  • Attribut opening
  • and many more …

For Key Performance Indicators (KPI’s) based on the above mentioned scenarios it is possible to set up jobs collecting data over long time periods (days, weeks, months or even years). The data can be presented as time series on an online monitoring web page or similar.

Application Example

In this examples different scenarios from above within Webtop were measured and plotted. All of these individual times are added up to a total time which is shown in yellow. To the total time a data fit was applied to indicate the tendency of system behaviour over time. „Holes“ within the plot are resulting from non available data (measurement was stopped in this case).

Data Representation with RRD

The results collected from these application examples are shown below. The first plot shows the behaviour of folder navigation over a period of several days measured all 5 minutes:

rrd_jmeter_navigate

The next plot shows the timing of a standard search over several days (measurement frequency 5 minutes)

rrd_jmeter_search

The last plot was created for the checkin/checkout times created with a JUnit test incorporated into JMeter. As for the plots before the time period for the measurement were several days and the time interval was set to 5 minutes.

rrd_jmeter_chinout

In none of the shown examples a significant degradation of performance could be detected.

Adding Documentum Applications into System Monitoring

With the above mentioned methods it is also possible to add the application monitoring to an existing system monitoring by sending information with the Simple Network Management Protocol (SNMP) .

Summary

Apache JMeter and RRD are two open source tools allowing extensive system performance measurements and building performance forcast scenarios for remote sites  in a flexible and fast manner.

The possibilities are not limited to the examples shown above.  Any web based application or Junit Test can be measured and presented in such a way.