Linux / Unix에서 SSD 페이지 크기를 찾는 방법이 있습니까? fdisk 출력에서“물리적 블록”이란 무엇입니까?


17

어디서나 내부 SSD는 약 128-256 페이지 ( 1 , 2 ) 의 "블록"으로 그룹화 된 4K 이상의 "페이지"로 구성되어 있습니다. SSD는 이러한 페이지 및 블록에서 작동하며 "블록 수준에서만 데이터를 지울 수 있습니다"(페이지 블록을 "[NAND] 소거 블록"이라고 함). 그리고 파티션의 512B 블록이 에뮬레이트됩니다 (레거시 이유로 수행됨).

삼성 9 np900x3c 랩톱에서 Sandisk U100에 쓰는 동안 이상한 지연 / 동결이 발생하여 SSD 교육을 받으려고합니다. 그리고 한 가지 유용한 점은 SSD에 어떤 페이지 / 블록이 있는지 정확하게 찾는 것입니다.

/sys/...Linux에서 SSD 페이지 크기를 결정 하는 유틸리티 또는 파일이 있습니까?

또는 주석 에서와 같이 "드라이브 및 NAND 칩의 부품 번호 검색이 필요할 수 있습니다" ?

Sandisk SSD 인터넷 검색 적절한 데이터 시트 / 사양을 찾을 수 없습니다. 그러나 Sandisk사람들 은 "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하고, 문제는 디스크 자체에 관한 것입니다. 내 게시물에 더 자세한 내용이 있습니다. 더 나은 답변을 얻을 수 있습니까?

답변:


11
  • 보고 된 fdisk실제 블록 크기는 요청시 디스크가보고 한 실제 블록 크기입니다. SSD 페이지 또는 지우기 블록과는 거의 관련이 없습니다.

  • 4 KiB 읽기 / 쓰기는 "작은"I / O 작업을 나타내는 일반적인 I / O 성능 측정입니다.

  • SSD가 페이지 크기를보고하거나 블록 크기를 지우는 표준 방법은 없습니다. 제조업체가 데이터 시트에보고하는 경우는 거의 없습니다. (예 : 공급 업체 변경으로 인해 SKU 수명 기간 동안 변경 될 수 있기 때문에) 4 KiB 정렬이 충분하다는 인텔 백서 가 있습니다.

  • 실제로 사용하려면 모든 데이터 구조 (파티션, LUKS 컨테이너의 페이로드, LVM 논리 볼륨)를 1 또는 2 MiB 경계에 맞추십시오. 결국 SSD입니다. NTFS (4 KiB 할당 단위를 사용하는)와 같은 일반적인 파일 시스템에 대처하도록 설계되었습니다. Windows가 파티션을 1MiB로 정렬하는 것으로 충분하다고 생각하면 모든 SSD 제조업체가 해당 구성에서 제품이 제대로 작동하는지 확인할 수 있습니다.

  • 파티션 외부에 할당되지 않은 공간을 약 5 %에서 10 % 정도 남겨 두십시오. 초과 프로비저닝 된 공간을 확보하면 SSD가 제 시간에 성능을 유지하는 데 큰 도움이됩니다.


"인텔의 백서에는 4 KiB 정렬이 충분하다는 내용이 나와 있습니다." 연결된 종이에서 어떻게 얻습니까? 나는 그것을 살펴 보았고, 신문이 그것을 주장하는 곳이 전혀 분명하지 않습니다.
Matthew

@Matthew : 7 페이지 : "가장 최신 HDD 및 Intel SSD는 4096 바이트 (4KB) 정렬로 더 나은 성능을 제공합니다 . "
AlexP

나는 이것을 "512 바이트와 비교하여"읽었다. 또한 다음 그림은 4KiB 페이지 크기를 의미합니다. 나는 "4KiB 페이지로 드라이브에 대한 충분한> 4KiB은"... 나이 말을 의미 있다는 암시로 그것을 읽지 않는 것도 아닌 인텔 드라이브에 대한합니다.
Matthew

KiB / MiB 표기법을 엄격히 고수 한 +1 --- man units회의론자 참조
XavierStuvw

SSD가 공간 성능을 유지하는 데 큰 도움이되는 공간을 초과 프로비저닝 한 이유는 무엇 입니까?
XavierStuvw

2

smartctl(에서 사용 가능 smartmontools)이해야합니다.


2
OP는이 도구를 어떻게 사용합니까?
roaima

지금은 함께 같은 512B 물리적 및 논리적 섹터를 얻고 위해 smartctl -i /dev/sda, 읽을하지 않도록하는 방법 smartctl --all /dev/sdasmartctl --xall /dev/sda공황으로 커널을 보내 ..
xealits

2
읽어SMART , 나는 그것이 SSD의 내부 구조 등의 정보를 처리하지 않습니다 생각 - 그것은 디스크 장애의 캐치 가능성을 시도하고, 오류를 디스크의 / "건강"일부 매개 변수를 모니터링
xealits
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.