nvme 명령의 출력을 이해하는 방법은 무엇입니까?

nvme 명령의 출력을 이해하는 방법은 무엇입니까?

SSD 성능을 최적화하기 위해,아치스 위키nvme id-ns /dev/nvme0n1출력, 특히 로 시작하는 마지막 몇 줄을 실행하고 평가한다는 의미입니다 lbaf. 항목 이 여러 개인 경우 lbaf드라이브는 여러 섹터 크기 옵션을 지원합니다. Arch wiki에서 가장 관련성이 높은 정보는 다음과 같습니다.

이것RP(상대 성능) 값은 어떤 형식이 최상의 성능을 제공하는지 나타내며 0이 가장 좋습니다.

내 NVMe SSD에는 두 개의 항목이 있지만 lbaf어느 항목이 더 최적화되어 있는지는 확실하지 않습니다. nvme내 시스템에서 위 명령의 관련 출력 은 다음과 같습니다 .

lbaf  0 : ms:0   lbads:9  **rp**:0x2 (in use)
lbaf  1 : ms:0   lbads:12 **rp**:0x1

따라서 두 옵션이 모두 표시됩니다RP에서 시작하다0. 그 의미를 어떻게 이해하나요?x2그리고x1양쪽 끝?

답변1

-H사람이 읽을 수 있는 형식으로 결과를 얻으려면 이 명령의 옵션을 사용하십시오 . 다음과 같아야 합니다.

# nvme id-ns -H /dev/nvme0n1
...
LBA Format  0 : Metadata Size: 0   bytes - Data Size: 512 bytes - Relative Performance: 2 Good (in use)
LBA Format  1 : Metadata Size: 0   bytes - Data Size: 4096 bytes - Relative Performance: 1 Better

접두사는 0x뒤에 오는 숫자가 16진수이므로 뒤에 오는 실제 숫자임을 나타내는 일반적인 표시입니다.RP각각 2와 1입니다.

SSD 성능이 영향을 받는 것으로 추정됨쓰기 증폭SSD 지우기 블록은 일반적으로 일반 파일 시스템 512바이트 블록보다 크기 때문에 하나의 블록을 다시 쓰려면 SSD는 매번 전체 지우기 블록(여러 파일 시스템 블록 포함)을 지우고 다시 써야 합니다. 파일 시스템에 표시되는 블록 크기가 SSD의 삭제 블록 크기와 일치하는 경우 이를 방지할 수 있습니다. (운영 체제가 삭제 블록 크기를 알고 있고 쓰기 캐시 정책을 사용하여 쓰기를 더 큰 연속 블록으로 그룹화하여 보상하는 경우 이 문제를 최소화할 수 있지만 완전히 제거할 수는 없습니다.)

따라서 SSD의 경우 클래식 블록 크기보다 크게 구성하면 일반적으로 성능이 향상됩니다. 그러나 아직 더 큰 블록 크기를 사용할 수 있는 가능성을 활용하지 못하는 (이전) 운영 체제와 소프트웨어가 많기 때문에 일부 SSD는 가능한 한 많은 내부 버퍼링으로 512바이트 블록 크기를 처리하도록 최적화되어 있습니다. . 할 수 있는.

그러나 디스크나 SSD의 성능에 영향을 미치는 다른 많은 요소가 있기 때문에 일부 제조업체는 특정 블록 크기가 가능한 모든 상황에서 확실히 "최상의" 크기라고 주장하는 것을 피하고 싶어하는 것 같습니다. 그래서,RP의 가치0일부 SSD는 전혀 사용되지 않을 수 있습니다.

관련 정보