Linux/Unix에서 SSD 페이지 크기를 알아내는 방법이 있습니까? fdisk 출력의 "물리적 블록"은 무엇입니까?

Linux/Unix에서 SSD 페이지 크기를 알아내는 방법이 있습니까? fdisk 출력의 "물리적 블록"은 무엇입니까?

나는 내부 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)이 이를 수행해야 합니다.

관련 정보