Hi All When we conduct a remote test with heavier loads always the controller is a bottleneck as it utilizes almost all times 100% CPU utilization.
So as to bridge this gap, we modified two classes (ResultCollector.java and RemoteListenerWrapper.java) besides adding 3 properties in the 'jmeter.properties' file. The first property added in the 'jmeter.properties' file, decides when to send the sample results to the controller from the remote server. The value for this property should be one of the following three. 1.Live: It is the existing behavior i.e. sending the sample result to the central controller, soon after receiving the sample result. 2.Batch Mode: Sample Results will be transferred to the controller in a batch mode from the remote server. The size of the batch is configurable from the 'jmeter.properties' file (2nd property added). So in this case, first the sample results are collected at the remote server until the number of sample results is equal to the specified batch size, and once the number reaches the specified batch size, the collected sample results will be transferred to the controller. So as to further control the CPU utilization at the controller, we used one more property in the 'jmeter.properties' file (3rd property added), which specifies the delay between consecutive sample results transfer, while transferring the sample results to the controller. This helps a lot in tuning the CPU usage at the controller. 3.End of the test: In this all the sample results are collected at the remote server until the end of the test. Once the test is stopped, the sample results collected at the remote server will be transferred to the controller. Out of these three transfer modes, we found the 2nd type as most useful. We felt that it is behaving superb. We successfully conducted a load test using a load of 500 virtual users using the 'Batch Mode'. In this test, JMeter controller was running on 1 machine, which was listening to 5 remote servers with 100 virtual users on each remote server. My test plan contains 5 http samplers within a single thread group. We conducted the test for a period of 1 hour. Controller never took 100% CPU utilization and it was always used less than 80% CPU. The configuration of the controller machine used is Pentium 4, 1.8 GHZ, 512 MB ram. Is there any one interested in helping us in testing this feature and sharing your views? If any one is interested to help us we will share the modifications, which we made to the source code. Thanks Applabs Team

