nuxeo/FunkLoad — Issue #47: support gevent
Author: djay
Created: 2012-01-24 04:20:42+00:00
State: open

In theory using async io should result in being able to handle many more concurrent connections that python threads.
For example Locust uses this (https://github.com/cgbystrom/locust) and Tsung.
To test this out I integrated gevent by adding the following line to the top of BenchRunner.py:

from gevent import monkey; monkey.patch_all()

The result was a 40-50% decrease in cpu usage however the stats recorded weren't the same. Most dramatic was the STPS dropped from 120 down to 75. I think something changed in how the killing of the thread occurred. It looks like the gevent ran only 43 tests whereas without ran 76 tests in the same 60 duration. Generally longer request duration were recorded but the rps was similar.

More investigation is needed.