Details
-
Improvement
-
Resolution: Fixed
-
Minor
-
None
-
9223372036854775807
Description
With many OSCs, the osc will pre-alloc memory at start.
That will occupy the memory of application, especially when the
client need to interact with hundreds of OSTs.
We can solve it by using a golbal per_cpu pool 'osc_rq_pools' rather than
local pool for per osc to change this situation. The upper limit
size of requests in pools is about 1 percent of the total memory.
Also, administrator can use a module parameter to limit the momory
usage by:
options osc osc_reqpool_mem_max=num
The unit of num is MB, and the upper limit will be:
MIN(num, 1% total memory)
Here is quick benchmark results on master with/without http://review.whamcloud.com/#/c/15422
4 x OSS and an client(2 x E5-2660v3, 20 CPU cores, 128GB memory and 1 x FDR Infiniband)
Here is IOR syntax on this test.
For IOR with stress testing, I generated memory pressure with "stress" command and ran IOR under it.
No perforamnce regression with patch 15422 so far.