JXInsight/Simz – Extended Offline Tagging and Marking for Better Performance Testing
In the article, Detecting hung threads in Java with call execution stack marking and tagging, the power of tagging and marking activity metering was shown in rapidly identifying spinning/suspended/blocked/delayed executing threads. Prior to JXInsight/Simz tagging and marking could only be done from within the management console at the individual process level, with tagging also available at the thread level (as well as process level) using the Probes Open API, overriding any process level setting. With JXInsight/Simz, tagging and marking can still be done at the process level but it can also be done within the Simz service (a simulated application) giving cluster wide tagging and marking with a single click in the management console or a single execution of an Open API call.
Importantly tagging and marking within the Simz service is distinct to the tagging and marking that is done at the individual server process level, if the console is connected directly to such processes. This means that tags and marks are no longer tied to the lifetime of the process itself that is tagged or marked. A tag or mark can be set within the Simz service process when there are no actual applications running (online) and being metered. Once applications do come online and start relaying metering events to the Simz service for simulated replay, subsequent updates to the metering model will be tagged and marked accordingly. This is extremely useful during performance testing as the metering information for each performance test run can be both merged and partitioned, automatically, via marking and/or tagging. There is no longer the need to collect individual process metering snapshots exported to the file system on exit of each process. The metering information within such snapshots is readily available from within the Simz service via a connected management console. The actual metered process becomes irrelevant as tagging and marking in the Simz service allows us to call out differences in terms of test characteristics (i.e. @run-1, @run-2, @heap-1GB, @heap-2GB, @alogorithm-1, @algorithm-2,…).