Возможный дубликат:
Правило Удев не работает

Я установил CFQ в качестве планировщика ввода-вывода по умолчанию. Я часто получаю плохую производительность при записи данных на устройство Flash. Это решается, если я использую крайний срок в качестве планировщика ввода-вывода для USB-устройств флэш-памяти. Я не всегда могу изменить планировщик вручную, верно? Я думаю, что написание правил udev - хорошая идея.

Может кто-нибудь, пожалуйста, напишите правила для меня? Я хочу:

  1. Когда я подключаю устройство USB, определяю тип устройства.
  2. Если это переносной жесткий диск USB, ничего не делайте (думаю, если устройство имеет более одного раздела, это всегда переносной жесткий диск).
  3. Если это USB-устройство флэш-памяти, установите конечный срок в качестве планировщика.

1 ответ1

1

Сначала поместите сценарий оболочки scheduler4usb в $PATH (например, /usr/bin):

#!/bin/bash
# Usage: ./script device scheduler

# If your are using util-linux 2.22, you must change this line to:
# fdisk /dev/$1 -l 2>&1 >/dev/null | grep -q "doesn't contain a valid partition table"
#
fdisk /dev/$1 -l 2>&1 >/dev/null | grep -q "This doesn't look like a partition table"

# If this device has a partition table.
if (($?==0)); then 
    echo $2 > /sys/block/$1/queue/scheduler
fi

exit

Не забудьте chmod +x scheduler4usb в ваш скрипт!

Затем напишите правило в /etc/udev/rules.d/91-change-schduler.rules:

SUBSYSTEMS=="usb", ACTION=="add", KERNEL=="sd?", RUN+="/usr/local/bin/scheduler4usb %k deadline"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .