커뮤니티 솔루션

lspci와 nvme-cli로 ZimaOS에서 NVMe PCIe 링크 속도 확인하기

A user with several NVMe slots wanted to verify whether installed SSDs were actually negotiating PCIe Gen4 rather than Gen3. The discussion focused on lspci LnkCap/LnkSta output and nvme-cli device mapping.

NVMe SSD를 드라이브 자체보다 더 적은 PCIe 레인을 지원하는 슬롯에 설치하면 모델명만으로는 현재 활성화된 링크를 알 수 없습니다. 커뮤니티 스레드에서는 lspci를 사용해 장치의 PCIe 기능과 실제로 협상된 링크를 비교했습니다.

스레드에서 공유된 간단한 명령은 다음과 같습니다.

모델명과 용량으로 식별된 NVMe SSD를 보여 주는 ZimaOS 저장소 인터페이스
ZimaOS 저장소 인터페이스에서 NVMe 장치가 표시되는 방식을 보여 주는 원본 커뮤니티 스크린샷입니다.
lspci에서 링크 속도와 레인 폭을 해석하는 데 사용되는 커뮤니티 PCIe 대역폭 차트
협상된 링크 폭을 해석하기 위해 토론에서 사용된 커뮤니티 업로드 PCIe 대역폭 참고 자료입니다.
sudo lspci -vv | grep -E 'PCI bridge|LnkCap|LnkSta'

특정 PCI 장치의 버스 주소를 알고 있다면 해당 장치를 직접 확인하는 편이 일반적으로 더 쉽습니다.

sudo lspci -s 05:00.0 -vv

중요한 항목은 다음과 같습니다.

  • LnkCap: 엔드포인트 또는 링크가 지원하고 광고할 수 있는 PCIe 속도와 폭입니다.
  • LnkSta: 현재 협상된 속도와 레인 폭입니다.

드라이브가 더 넓은 링크로 작동할 수 있지만 LnkSta에 더 적은 레인 수가 표시된다면, 현재 플랫폼은 해당 장치를 더 좁은 협상 폭으로 실행하고 있는 것입니다.

NVMe 이름을 PCIe 주소에 매핑

원 게시자는 Linux 장치 이름을 컨트롤러 및 PCIe 주소와 연결할 때 nvme-cli의 상세 출력도 유용하다는 것을 확인했습니다.

nvme list -v

이를 통해 /dev/nvme1과 같은 항목을 lspci로 확인하는 PCI 주소와 쉽게 연결할 수 있습니다.

LnkSta는 PCIe 협상에 관한 정보를 제공합니다. 하지만 SSD의 실제 순차 쓰기 속도, 랜덤 IOPS, 발열로 인한 스로틀링 동작 또는 지속 성능을 알려 주지는 않습니다.

실제 I/O 동작을 확인하려면 삭제해도 되는 테스트 데이터에 적절한 벤치마크를 사용하고 워크로드를 신중하게 정의하세요. fio 워크로드 문서에서는 블록 크기, 큐 깊이, 액세스 패턴, I/O 엔진 및 테스트 크기가 결과를 바꾸는 이유를 설명합니다.

필요한 데이터가 들어 있는 파일 시스템이나 디스크에서 파괴적인 원시 장치 벤치마크를 실행하지 마세요.

현재 PCIe 및 벤치마크 관련 정보

Zima PCIe 생태계는 물리적 슬롯과 실제 전기적 레인 폭의 차이를 이해하는 데 유용합니다. PCIe 확장 카드에서는 Zima 확장 프로젝트에 사용되는 NVMe 및 네트워킹 어댑터의 유형을 확인할 수 있으며, ZimaBoard 2 하드웨어는 PCIe 세대와 레인 수가 명시된 플랫폼의 구체적인 최신 사례를 제공합니다.

lspci 장치 검사 문서에서는 lspci를 PCI 버스와 장치를 검사하는 Linux 유틸리티로 정의하며, nvme-cli 장치 목록 문서에서는 nvme list -v가 컨트롤러, 네임스페이스, 전송 방식 및 PCIe 주소를 매핑하는 방법을 보여 줍니다. 버스 협상이 아닌 측정된 I/O를 확인하려면 fio 워크로드 문서를 사용하세요. 큐 깊이, 블록 크기, 읽기/쓰기 비율 및 테스트 크기에 따라 결과가 달라집니다.

요약

lspci -vv를 사용해 협상된 PCIe 세대와 레인 폭을 확인하고, nvme list -v를 사용해 NVMe 장치를 PCIe 주소에 매핑하세요. 그런 다음 실제 저장소 처리량이 필요하다면 별도로 벤치마크를 실행하세요. 협상된 링크 속도는 버스의 특성이며 SSD 성능 점수가 아닙니다.