다음 명령을 사용하여 SSD의 대기열 깊이 값을 늘리려고 합니다.
echo 64 > /sys/block/sda/device/queue_depth
하지만 다음과 같은 오류가 발생합니다.
bash: echo: write error: Invalid argument
tee
와 vim
같은 편집기를 사용해 보았지만 nano
여전히 이 오류가 표시됩니다. 이 서버에는 4개의 SSD(sd[ad])가 있으며 이 오류는 모든 SSD에서 발생합니다.
운영 체제는운영체제 7커널 버전은3.10.0-327.18.2.el7.x86_64.
답변1
SSD가 이 대기열 깊이를 지원하지 않는 것일까요?
# hdparm -I /dev/sda
/dev/sda:
ATA device, with non-removable media
Model Number: M4-CT064M4SSD2
[...]
Capabilities:
LBA, IORDY(can be disabled)
Queue depth: 32
또는 , , ...를 사용하여 1
커널 2
에서 3
사용할 수 있는 최대 대기열 깊이를 찾아보세요.
그보다 높은 값을 설정할 수 없다면 1
커널이 일반적으로 NCQ를 비활성화했을 가능성이 있습니다. 확인하거나 /proc/cmdline
유사합니다 libata.force=noncq
.
특히 SSD에는 NCQ 관련 버그가 있습니다. NCQ가 당신에게 도움이 되는지 확인하기 위해 몇 가지 벤치마크를 수행해야 하며, TRIM이 데이터 손상 없이 작동할 수 있는지 테스트해야 합니다(현재 커널은 이러한 질문에 대해 특정 장치를 블랙리스트에 추가하여 이 문제를 해결합니다).