Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
6.4.3. Noop
Noop помещает запросы в простую очередь типа FIFO (First In First Out). Слияние запросов происходит на блочном уровне. Этот планировщик особенно эффективен для высокоскоростных накопителей.
Ниже рассмотрены его параметры.
Параметры в /sys/block/sdX/queue
- add_random
- В некоторых случаях издержки обслуживания ввода-вывода для
/dev/random
измеримы. Тогда этот параметр рекомендуется обнулить. max_sectors_kb
- Этот параметр изменяет максимальный размер запроса и по умолчанию составляет
512
килобайт. Минимально допустимый размер ограничивается размером логического блока, а максимальный размер ограничивается значениемmax_hw_sectors_kb
. Производительность некоторых SSD-дисков может снизиться, если размер запросов превышает размер внутренних блоков SSD. В таких случаях рекомендуется уменьшить значениеmax_hw_sectors_kb
до размера блока. Производительность на этом уровне можно протестировать с помощью iozone и aio-stress, изменяя размер записи, например с512
Б до1
МБ. nomerges
- Отключает слияние запросов, что используется для отладки. Слияние запросов способствует улучшению производительности, но его отключение поможет оценить число операций ввода-вывода, которое может быть обработано без необходимости отключения предварительного чтения или выполнения случайного ввода-вывода.
nr_requests
- Число запросов чтения или записи в очереди. По умолчанию равно
128
, то есть очередь может содержать 128 запросов чтения и 128 запросов записи. Если очередь заполнена, процесс перейдет в состояние ожидания, а при освобождении места в очереди он будет пробужден.При проектировании приложений, чувствительных к задержкам, рекомендуется уменьшитьnr_requests
, тем самым ограничив длину очереди команд. После выделения числа запросов, определенных параметромnr_requests
, процессы, все еще ожидающие обслуживания, будут переведены в состояние ожидания. Это обеспечивает их равномерное обслуживание и не позволяет одному процессу использовать все ресурсы. optimal_io_size
- Иногда накопители предоставляют информацию об оптимальном размере сегмента ввода-вывода. Это типично для программных и аппаратных RAID, где оптимальный размер равен размеру сегмента чередования. Следует придерживаться значений, кратных рекомендуемым.
read_ahead_kb
- Если приложение осуществляет чтение данных из файлов последовательно, операционная система может использовать алгоритм упреждения чтения. Этот алгоритм считывает больше данных, чем было запрошено, и помещает их в кэш, что экономит время на обращение к диску. Недостаток этого подхода состоит в том, что существует вероятность того, что данные не понадобятся, но они уже занимают место в кэше и будут вытеснены только тогда, когда нагрузка на память возрастет. В свою очередь, при наличии нескольких подобных процессов нагрузка на память возрастает значительно быстрее.Для многопутевых устройств рекомендуется увеличить это значение, например до
8192
килобайт, так как они обычно включают в свой состав несколько физических устройств. Для начала можно присвоитьread_ahead_kb
значение128
и корректировать его по мере необходимости. rotational
- SSD-диски не используют вращающиеся пластины в отличие от традиционных жестких дисков. Если устройство не определяет флаг, сообщающий о наличии движущихся деталей, может потребоваться обнулить параметр
rotational
вручную. Нулевое значение отключает использование алгоритмов снижения времени поиска данных, так как SSD-диски в этом не нуждаются. rq_affinity
- Значение
1
принуждает обработку операций на том же процессоре, где они были сгенерированы. Это может повысить эффективность кэширования данных.