diff options
| author | Richard Wareing <rwareing@fb.com> | 2015-10-11 02:02:28 -0700 |
|---|---|---|
| committer | Shreyas Siravara <sshreyas@fb.com> | 2016-12-09 09:06:01 -0800 |
| commit | e52d41938468c2fffd9372a0e47ae3b61c8aa965 (patch) | |
| tree | 616e591520ab8cf497a2f7a5527a3050e947320e /libglusterfs/src/mem-types.h | |
| parent | 46254326030296c121c8d3d01dc511f792ea8d1d (diff) | |
performance/io-threads: Eliminate spinlock contention via fops-per-thread-ratio
Summary:
- Background: Frequently spinlock is observed on busy GFS clusters,
which wastes CPU and destroys the performance of the cluster.
Current solutions to this problem involve under-provisioning the thread
pool, but this is problematic as during busy periods there may not be
enough threads to service the queue.
- This patch introduces a technique to avoid the stampeding herd problem with
the io-threads workers. This is done by dynamically tuning the
threads by a ratio of threads to queue depth, there-by keeping
already running threads sufficiently busy by a tunable FOP to thread
ratio. Ratio is controllable by the
performanace.io-threads-fops-per-threads-ratio option.
- More detailed reading on this approach can be found here:
https://h21007.www2.hp.com/portal/download/files/unprot/hpux/MakingConditionVariablesPerform.pdf
- Cherry-pick of D2530504 for 3.8
Test Plan:
- Stress teston my dev server
- shadow testing
Reviewed By: moox, sshreyas
Signed-off-by: Shreyas Siravara <sshreyas@fb.com>
Change-Id: I771ae783aa4ca5a6fd0449db64e07d1f4bff0d04
Reviewed-on: http://review.gluster.org/16080
CentOS-regression: Gluster Build System <jenkins@build.gluster.org>
Tested-by: Shreyas Siravara <sshreyas@fb.com>
NetBSD-regression: NetBSD Build System <jenkins@build.gluster.org>
Smoke: Gluster Build System <jenkins@build.gluster.org>
Reviewed-by: Kevin Vigor <kvigor@fb.com>
Diffstat (limited to 'libglusterfs/src/mem-types.h')
0 files changed, 0 insertions, 0 deletions
