https://issues.apache.org/bugzilla/show_bug.cgi?id=54717

            Bug ID: 54717
           Summary: BatchSampleSender/StatisticalSampleSender slows thread
                    handling down
           Product: JMeter
           Version: 2.9
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Main
          Assignee: [email protected]
          Reporter: [email protected]
    Classification: Unclassified

Because the BatchSampleSender/StatisticalSampleSender synchronizes the whole
sampleOccurred() method it blocks the threads of each thread group. 

The differences of the generate load can be seen using the
DiskStoreSampleSender. In our case it was a factor of 3 faster. But this one
could not be used striped therefore the request body is stored and will be send
at the end (in our case several GB of data).

Although the AsynchSampleSender blocks several times on queue.offer() if the
traffic could not be send fast enough to the client - which might also be a
problem of sending the big request body too.

I suggest to decouple all sample senders from working threads, using a rather
simple idea:
Store the (stripped) sample in a ConcurrentHashMap grouped by the current
thread name and send it by one (ore more) worker thread(s) to the client.

There is no need to block the load generating threads doing their job.

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to