udev를 사용하여 SSD 디스크의 매개 변수를 설정하는 것이 좋습니다. 이렇게하면 SSD 등에 더 적합한 특정 대기열 스케줄러를 구성 할 수 있습니다. 또한 많은 매개 변수를 기반으로 일부 장치에만 매개 변수를 적용 할 수 있습니다.
다음을 실행하여 장치 (예 : 디스크 모델 및 제조업체)와 일치시키는 데 필요한 특정 속성을 얻을 수 있습니다.
udevadm info -a -p /sys/block/sda
그리고 블록 장치에 대한 모든 ATTR 쌍을 확인하십시오.
또 다른 이점은 플러그 가능 디스크 (예 : 인클로저 또는 핫스왑 베이)에 대한 매개 변수를 설정하는 기능이며 장치 매개 변수가 일치하는 경우 모든 새 장치에 설정이 적용됩니다.
다음은 Intel SSD의 특정 스케줄러, 원하는 미리 읽기 값 (4096 블록 = 2048kb)을 적용하고 다른 모든 SSD에 대해 다른 스케줄러를 적용하는 예입니다.
cat /etc/udev/rules.d/99-ssd.rules
# http://unix.stackexchange.com/a/71409/36574
# Setting specific kernel parameters for a subset of block devices (Intel SSDs)
SUBSYSTEM=="block", ATTRS{model}=="Intel SSDSC*", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="2048", ATTR{queue/scheduler}="deadline"
# for all other non-rotational block devices set a scheduler to 'noop' and readahead to 1024KB
SUBSYSTEM=="block", ATTR{queue/rotational}=="0", ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{bdi/read_ahead_kb}="1024", ATTR{queue/scheduler}="noop"
파일을 저장 한 후 규칙이 장치와 일치하는지 그리고 udevadm을 사용하여 udev가 수행 할 작업을 테스트 할 수 있습니다.
udevadm test --action=add /sys/block/sda
이것은 udev가로드하는 모든 규칙, 일치하는 것, 일치하지 않는 것 및 장치가 연결될 때 udev가 내리는 결정을 인쇄합니다.
도움이 되었기를 바랍니다.