If we throttle at num_threads, then nothing gets into the workqueue until
a worker thread is idle, which means you pay the latency of setting it up
and queueing it. This way we keep some requests ready to go.
Signed-off-by: Sage Weil <sage@newdream.net>
public:
RGWProcess(CephContext *cct, int num_threads)
: m_tp(cct, "RGWProcess::m_tp", num_threads),
- req_throttle(num_threads),
+ req_throttle(num_threads * 2),
req_wq(this, g_conf->rgw_op_thread_timeout,
g_conf->rgw_op_thread_suicide_timeout, &m_tp),
max_req_id(0) {}