Tuning Disk Elevators
Linux tries to balance read and write operations on block devices to maximize performance. This helps ensure that heavily utilized systems aren’t dominated solely by either read or write operations. The ratio can be tuned on a per-device basis, using the elvtune command.
Use elvtune <device> to get a list of the current settings:
# elvtune /dev/sdb
/dev/sdb elevator ID 246
read_latency: 256
write_latency: 512
max_bomb_segments: 0The -w and -r flags allow you to alter the read and write latency settings. The best settings really depend on system and device usage, so I recommend experimenting until you get an optimal setting. Try doubling each value, one at a time, and running some performance tests until you find a balance that works for you.
# elvtune -r 512 -w 1024 /dev/sdb
/dev/sdb elevator ID 246
read_latency: 512
write_latency: 1024
max_bomb_segments: 0Like settings altered with hdparm, elvtune settings should be added into your initialization scripts, so that changes are made each time the system starts. You need to use elvtune on low-level block devices, not arrays. So be certain to alter the settings for each array component, and not just one disk.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access