vfs_ceph_rgw: Add global parameters to control number of threads for librgw instance

vfs_ceph_rgw modules initialise a new instance of librgw for every new connection with client.

librgw internally makes use of pool of threads, this is controlled by ceph configuration parameter

"rgw_thread_pool_size" and this parameter has value 512 as its default.

This causes every fork of smbd client connection spawning 512+ threads. Therefore, putting stress on system in terms of resources,

resulting into server supporting few connected clients depending upon system resources.

Additionally, parameter "rgw_num_async_rados_threads" (default: 32 and max:32) is also added to bring this count even further down.

This MR addresses this problem by making these parameters tunable for librgw instance initiated by smbd processes.

Checklist

  • Commits have Signed-off-by: with name/author being identical to the commit author
  • (optional) This MR is just one part towards a larger feature.
  • (optional, if backport required) Bugzilla bug filed and BUG: tag added
  • Test suite updated with functionality tests
  • Test suite updated with negative tests
  • Documentation updated
  • CI timeout is 3h or higher (see Settings/CICD/General pipelines/ Timeout)

Reviewer's checklist:

  • There is a test suite reasonably covering new functionality or modifications
  • Function naming, parameters, return values, types, etc., are consistent and according to README.Coding.md
  • This feature/change has adequate documentation added
  • No obvious mistakes in the code
Edited by Vinit Agnihotri

Merge request reports

Loading
Loading