fstrim
Linux 블록 장치를 마운트해야 하며 그다지 장황하지 않습니다. blkdiscard
보시다시피, 여기에는 쓰기 작업도 필요합니다.
실제로 무언가를 다듬거나 놓으려고 하지 않고도 블록 장치가 다듬기/드롭을 지원하는지 어떻게든 알 수 있나요?
답변1
장치의 최대 폐기 크기를 확인할 수 있습니다.예를 들어
$ cat /sys/block/X/queue/discard_max_hw_bytes
( X
적절하게 교체).
0보다 큰 값이 표시되면이 장치는 폐기를 지원합니다:
0 값은
discard_max_hw_bytes
장치가 폐기 기능을 지원하지 않음을 나타냅니다.
최대값지원됨discard_max_bytes
드롭 크기는 다음과 같이 동일한 디렉터리에 표시됩니다. 이는 드롭 대기 시간을 제한하기 위해 하드웨어가 지원하는 것보다 작을 수 있습니다(한도를 변경하기 위해 작성할 수 있음).
discard_max_hw_bytes
장치의 하드웨어 제한 이지만 이 설정은 소프트웨어 제한입니다. 일부 장치는 대량 폐기를 발행할 때 큰 대기 시간을 나타냅니다. 더 낮은 값을 설정하면 Linux가 더 작은 폐기를 발행하게 되고 대규모 폐기 작업으로 인한 대기 시간을 줄이는 데 도움이 될 수 있습니다.
이는 디스크뿐만 아니라 루프 장치, 장치 매퍼 장치 등 다양한 블록 장치에 적용됩니다.
답변2
이 hdparm
명령을 사용하면 디스크 장치에서 하위 수준 명령을 실행할 수 있습니다.
이 옵션 hdparm -I /dev/sda
(또는 sda 대신 블록 장치 삽입)은 드라이브에서 정보를 쿼리합니다. 드라이브에서 지원하는 작업을 나열하는 섹션이 있습니다.
hdparm -I /dev/sda | grep TRIM
TRIM 지원 드라이버에서 실행하면 다음이 출력됩니다.
* Data Set Management TRIM supported (limit 1 block)
출력에는 다른 유용한 정보가 많이 있으며 hdparm 명령은 매우 유용합니다.
hdparm
이는 장치에서 SATA 명령을 실행하도록 설계된 SATA 및 일부 SCSI 장치에만 적용됩니다 .
답변3
장치가 정리/폐기를 지원하는지 확인하려면 Linux 유틸리티를 사용할 수도 있습니다 lsblk
. 장치의 삭제 제한(예: granularity
및 max_sectors
)이 0이 아닌 경우 삭제/가지치기 지원이 활성화됩니다.
$ lsblk -D
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sda 0 512B 2G 0