Monitoring and Benchmarking

System Activity Monitor (SAM)

Monitoring requires collecting, storing, and querying of data representing the system state at runtime. These data are scattered accorss various layers of the system. How to monitor the system effectively while keeping the interface of functional components clean is a challenge. The implementation of SAM is based on the JMX technology and conforms to its a three-level architecture:

  • The instrumentation level contains MBeans defining and exposing the management interfaces of resources to be monitored.
  • The agent level acts as an intermediary between the MBeans and the monitoring applications.
  • The distributed-services level is used by the monitoring applications to (remotely and transparently) access the MBeans.

SAM consists of a server part and a client part. The server part includes the MBeans which are hierarchically organized in package xtc.server.sam, while their implmentations are directly coded in the components to be monitored, e.g., in form of inner classes. The client part, called samcc (SAM commandline client), is a generic (i.e., changes at the instrumentation level don't require a change of samcc) console-based application capable of querying the MBeans using patterns. The API of the client part can also be used by other monitoring applications. For example, the benchmark tool lap3 can use samcc API to gather the performance metrics of the server during a test run. The advantage SAM's design is that the functional interfaces are left intact, while providing great flexibility and extensibility for monitoring.

Load and Performance Tool Ver. 3 (lap3)

The benchmark tool lap3 aims at test automation. It reads and parses the workload specification from an XML file and runs the workload against the database server. Test reports are automatically generated. Commandline arguments can be used to control the behavior of lap3 (Use lap3.sh -h to get help on available arguments). Note all workload-impacting parameters are specified in the workload specification thus ensuring repeatability of the benchmarks. New tests can be quickly integrated as plugins of lap3 by extending the Test interface. The file attached is a sample of the workload specification.