performance issue : read_ahead_kb being changed

Post Reply
saad0805
Posts: 1
Joined: Fri Sep 15, 2023 8:03 am

performance issue : read_ahead_kb being changed

Post by saad0805 »

Hello,

We are having a performance issue on 3par

After an upgrade of openshift from 4.10 to 4.12 (k8s 1.23 to 1.24) (rhel 8.4 to 8.6)
we are having high service time and latency on volumes.

After investigating we see that read_ahead_kb has changed from 128kb to 32mb.
Default value on the OS should be 4096kb

But we are having this :
cat /sys/class/block/dm-*/queue/read_ahead_kb
32768
32768
32768
32768
32768
32768

Anyone know how the 3par can change this value ?

- Red Hat Engineering confirmed that the value of read_ahead_kb is determined in the kernel by the underlying storage and the drivers used ; each storage/driver will be specific.

we have CSI driver in the middle : https://scod.hpedev.io/csi_driver/
User avatar
Richard Siemers
Site Admin
Posts: 1331
Joined: Tue Aug 18, 2009 10:35 pm
Location: Dallas, Texas

Re: performance issue : read_ahead_kb being changed

Post by Richard Siemers »

3PAR does not set those values, Redhat does.

https://access.redhat.com/documentation ... de/main-fs

Increased read-ahead support
Read-ahead speeds up file access by pre-fetching data and loading it into the page cache so that it can be available earlier in memory instead of from disk. Some workloads, such as those involving heavy streaming of sequential I/O, benefit from high read-ahead values.

The tuned tool and the use of LVM striping elevate the read-ahead value, but this is not always sufficient for some workloads. Additionally, Red Hat Enterprise Linux is not always able to set an appropriate read-ahead value based on what it can detect of your file system. For example, if a powerful storage array presents itself to Red Hat Enterprise Linux as a single powerful LUN, the operating system will not treat it as a powerful LUN array, and therefore will not by default make full use of the read-ahead advantages potentially available to the storage.
Use the blockdev command to view and edit the read-ahead value. To view the current read-ahead value for a particular block device
Richard Siemers
The views and opinions expressed are my own and do not necessarily reflect those of my employer.
Post Reply