Hello, I'm evaluating JMeter as a load testing framework for my performance analysis.
I'm going to load test a DNS server. To do so, I've written my own Java Request sampler, which issues DNS requests using the package dnsjava. My test configuration is very simple: one thread-group (one therad configured for example), one java request sampler, one simple data writer as listener. The problem basically is that with that configuration JMeter can reach a very low throughput (query sent / sec), since during tests CPU get saturated. The known bind queryperf tool can generate a load about six times higher while using less than 30 % CPU. Since this tool is a simple C program, I expected a greater performance, but that results seems to be exaggerated. I assumed that my sampler class was not well optimized, so I did a quick profiling of JMeter, during the test, in order to discover some areas of improvement. I think I saw an interesting result: most of the thread sampler time is spent in one method of one particular class of JMeter, and a minor part is spent inside the Java Request sampler. The mentioned method is: SamplePackage.setRunningVersion() Giving that results, I have some questions: - what does that method do? - is it possible to reduce its overhead? Thanks for any replies
