Bug 2239778

Summary: Performance degradation of sequential reads with read affinity
Product: [Red Hat Storage] Red Hat OpenShift Data Foundation Reporter: Abhishek Bose <abose>
Component: cephAssignee: Radoslaw Zarzynski <rzarzyns>
ceph sub component: RADOS QA Contact: Elad <ebenahar>
Status: ASSIGNED --- Docs Contact:
Severity: low    
Priority: low CC: abose, bniver, ekuric, idryomov, jsalomon, muagarwa, nojha, rzarzyns, shberry, sostapov
Version: 4.13Flags: muagarwa: needinfo? (rzarzyns)
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Abhishek Bose 2023-09-20 06:58:40 UTC
Description of problem:

When read affinity is enabled, we are observing drop in IO performance for sequential reads with 256KB block size compared to the performance when read affinity is disabled.
We executed few more tests with increased OSD CPU and Memory from the default values. In all cases, the observation remains the same.

---------------------------------------------------------------------------------
Sequential Reads, Throughput (GB/s)						|
---------------------------------------------------------------------------------
READ_AFFINITY 	| Default 	| Increased OSD Mem	| Increased OSD CPU	|
		|(CPU:2,Mem:5Gi)|(CPU:2 | Mem:10Gi)	|(CPU:4 | Mem:5Gi)	|
---------------------------------------------------------------------------------
TRUE		|	3.999	|	4.117		|	4.433		|
---------------------------------------------------------------------------------
FALSE		|	4.275	|	4.636		|	5.479		|
---------------------------------------------------------------------------------
% change	|	-6.46%	|	-11.19%		|	-19.09%		|
---------------------------------------------------------------------------------

On closer inspection, it was observed that OSD memory is probably the bottleneck which is not the case when read affinity is disabled.
The test results and performance charts are mentioned in this doc: https://docs.google.com/document/d/17TkI0kqg2i7yX9WI5WToaVC6Vn8EYNJ0sAw5kTqj8HM/edit?usp=sharing

No such behaviour was observed for random reads with smaller block sizes (4KB, 8KB), instead we are getting significant improved performance which is expected when read affinity is enabled.

Is this an expected behaviour for sequential reads with large block sizes when read affinity is enabled?


Version of all relevant components (if applicable): ODF 4.13


Does this issue impact your ability to continue to work with the product
(please explain in detail what is the user impact)? No


Is there any workaround available to the best of your knowledge? No


Rate from 1 - 5 the complexity of the scenario you performed that caused this
bug (1 - very simple, 5 - very complex)? 1


Can this issue reproducible? - Yes


Can this issue reproduce from the UI? - No


If this is a regression, please provide more details to justify this: NA


Steps to Reproduce:
1. Install ODF in a baremetal OCP cluster.
2. Enable read affinity.
3. Execute sequential reads with 256KB block size.


Actual results: The performance of sequential reads are lower when read affity is enabled when compared to the performance when read affinity is disabled.


Expected results: The performance should improve or at least remain the same when read affinity is enabled.


Additional info: None

Comment 13 Mudit Agarwal 2024-01-19 08:41:10 UTC
Hi Radek, what are the next steps for this issue?