Bug 2239778 - Performance degradation of sequential reads with read affinity [NEEDINFO]
Summary: Performance degradation of sequential reads with read affinity
Keywords:
Status: ASSIGNED
Alias: None
Product: Red Hat OpenShift Data Foundation
Classification: Red Hat Storage
Component: ceph
Version: 4.13
Hardware: x86_64
OS: Unspecified
low
low
Target Milestone: ---
: ---
Assignee: Radoslaw Zarzynski
QA Contact: Elad
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-09-20 06:58 UTC by Abhishek Bose
Modified: 2025-04-12 08:28 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Embargoed:
muagarwa: needinfo? (rzarzyns)


Attachments (Terms of Use)

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?


Note You need to log in before you can comment on or make changes to this bug.