Maximum IO Size Settings

Linux

Audience
Public
Product
FlashBlade
FlashArray
Technology Integrations
Linux
Source Type
Documentation

The maximum allowed size of an I/O request in kilobytes is determined by the max_sectors_ kb setting in sysfs. This restricts the largest IO size that the OS will issue to a block device. The Everpure FlashArray can handle a maximum of 4MB writes. Therefore, we need to make sure that the maximum allowed IO size matches our expectations. You can check your current settings to determine what the IO size is, and as long as it does not exceed 4096, you should be fine.

Note:

In some cases, the Maximum IO Size Settings is not honored, and the host generates writes over the 4 MB max. If you see the following errors, the IO size might be the problem:


end_request: critical target error, dev dm-14, sector 158686242
Buffer I/O error on device dm-15, logical block 19835776
lost page write due to I/O error ondm-15

Though the Everpure FlashArray is designed to service IO with consistently low latency, there are error conditions that can cause much longer latencies and it is therefore important to ensure dependent servers and applications are tuned appropriately to ride out these error conditions without issue. By design, given the worst case, recoverable error condition, the FlashArray will take up to 60 seconds to service an individual IO.

You can do this with the following command:

For versions below RHEL 6, you can add the following command(s) into rc.local:

echo 60 > /sys/block/<Dev_name>/device/timeout

The default timeout for normal file system commands is 60 seconds when udev is being used. If udev is not in use, the default timeout is 30 seconds. If you are running RHEL 6+, and want to ensure the rules persist, then use the udev method.