나는 내부 SSD가 약 128-256페이지의 "청크"로 그룹화된 4K 이상의 "페이지"로 구성되어 있다는 것을 어디에서나 읽었습니다(1,2). SSD는 이러한 페이지와 블록을 사용하여 "블록 수준에서만 데이터를 지울 수 있습니다"(따라서 페이지 블록을 "[NAND] 지우기 블록"이라고 함). 해당 파티션의 512B 블록을 시뮬레이션합니다(이는 레거시 이유로 수행되었습니다).
Samsung 9 np900x3c 노트북에서 Sandisk U100에 쓸 때 이상한 지연/정지 현상이 발생하기 때문에 SSD에 대해 알아보려고 합니다. 한 가지 유용한 점은 내 SSD에 정확히 어떤 페이지/블록이 있는지 알아내는 것입니다.
/sys/...
Linux에 SSD 페이지 크기를 결정할 수 있는 유틸리티나 파일이 있습니까 ?
또는 "드라이버가 필요할 수도 있고 Google에서 NAND 칩의 부품 번호를 검색할 수도 있습니다."논평?
Sandisk SSD를 인터넷에서 검색했는데 적합한 데이터시트/사양을 찾을 수 없습니다. 하지만샌디스크그리고사람들"4K 무작위 읽기/쓰기"를 언급해 주세요. 이는 디스크에 4K 페이지가 있다는 의미입니까?
또한 fdisk
섹터 크기(물리적 및 논리적) 및 I/O 512바이트가 표시됩니다.
Disk /dev/sda: 128.0 GB, 128035676160 bytes
255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4b914713
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 50331647 25164800 83 Linux
/dev/sda2 50331648 239583231 94625792 83 Linux
/dev/sda4 239583232 250068991 5242880 82 Linux swap / Solaris
여기서 "물리적" 섹터 크기는 얼마입니까? 모두가 SSD 페이지가 4K+라고 말하므로 이는 SSD 드라이브 자체의 매개변수가 아닌 것 같습니다. 디스크의 시뮬레이션 매개변수인가요? 파티션의 섹터 크기가 "논리적"입니까? 또한 I/O 크기는 얼마입니까?
폴리스티렌
이 문제는 다음과 관련이 있을 수 있습니다.이것은 USB 플래시 드라이브용입니다.- 답변이 요점을 놓치고 있습니다. man fsstat
질문은 fsstat displays the details associated with a file system
디스크 자체에 관한 것입니다. 어쩌면 더 자세한 내용을 담은 게시물이 더 좋은 반응을 불러일으킬 수도 있지 않을까요?
답변1
보고된 물리적 블록 크기는
fdisk
요청 시 디스크에서 보고한 물리적 블록 크기입니다. SSD 페이지나 블록 지우기와는 거의 관련이 없습니다.4KiB 읽기/쓰기는 I/O 성능의 일반적인 척도이며 "소형" I/O 작업을 나타냅니다.
SSD에는 페이지 크기나 삭제 블록 크기를 보고하는 표준 방법이 없습니다. 데이터 시트에 이를 보고하는 제조업체는 거의 없습니다. (공급업체 변경 등으로 인해 SKU 수명 동안 변경될 수 있기 때문입니다.)인텔 백서이는 4KiB 정렬이면 충분함을 나타냅니다.
실제로는 모든 데이터 구조(파티션, LUKS 컨테이너의 페이로드, LVM 논리 볼륨)를 1 또는 2MiB 경계에 맞추면 됩니다. 결국 SSD입니다. NTFS(4KiB 할당 단위 사용)와 같은 일반적인 파일 시스템을 처리하도록 설계되었습니다. Windows에서 파티션을 1MiB로 정렬하는 것으로 충분하다고 판단하면 모든 SSD 제조업체가 해당 제품이 이 구성에서 제대로 작동하는지 확인할 수 있습니다.
파티션 외부에 할당되지 않은 공간의 약 5%~10%를 남겨 두는 것이 좋습니다. 예약된 공간은 SSD가 적시에 성능을 유지하는 데 매우 도움이 됩니다.
답변2
SMART 속성 241 Total_LBA_Written을 확인하여 거짓 긍정 SSD를 테스트했습니다.
경고: 다음 명령은 데이터를 손상시킵니다.
그런 다음 dd if=/dev/zero of=/dev/ssd_drive bs=1 count=1
(파일 시스템 오버헤드 없이 수행되어야 함)
섹터 크기가 512라고 보고된 Samsung 850 EVO의 경우 단 1바이트를 쓰면 개수가 8만큼 증가했습니다.
따라서 8×512=4096이면 쓰기 bs=4096
도 8씩 증가합니다.
즉, 드라이브는 항상 내부적으로 4096바이트 섹터를 씁니다.
답변3
smartctl
(에서 사용 가능 smartmontools
)이 이를 수행해야 합니다.