PCIe 링크 대역폭이 홈 서버 HBA의 병목 현상을 일으킬 때

에바 왕기술 작가 그리고 이자 ZimaSpace의 상주 장인입니다. 평생을 기술에 열정을 가진 사람으로서 홈랩과 오픈소스 소프트웨어에 열정을 가지고 있으며,복잡한 기술 개념을 쉽게 이해할 수 있는 실습 가이드로 번역하는 데 전문성을 가지고 있습니다.에바는 셀프 호스팅이 어렵지 않고 재미있어야 한다고 믿습니다. 그녀의 튜토리얼을 통해 커뮤니티가 하드웨어 설정의 신비를 풀도록돕고 있습니다. 첫 NAS 구축부터 Docker 컨테이너 마스터링까지.

제한된 PCIe 링크는 드라이브의 총 동시 처리량이 카드가 실제로 협상한 사용 가능한 대역폭을 초과할 때만 홈 서버 HBA의 병목 현상을 일으킵니다.

8포트 HBA가 미디어 재생에는 정상 작동하지만 ZFS 스크럽, 패리티 검사, 재구성 또는 다중 SSD 전송 중에는 성능이 떨어지나요? 전체 길이 슬롯이 4레인만 연결되어 있거나, x8 카드가 더 적은 레인을 협상하거나, HBA가 공유 칩셋 경로 뒤에 있을 수 있습니다. 드라이브를 교체하기 전에 협상된 링크를 확인하세요. 이 가이드는 실제 PCIe 병목 현상과 느린 디스크, 네트워크 또는 스토리지 스택을 구분하는 수학, 작업 부하 및 테스트를 보여줍니다.

“제한된 PCIe 링크”는 실제로 무엇을 의미합니까?

비슷해 보이는 세 가지 값은 서로 다른 것을 설명합니다. 기계적 슬롯 크기는 어떤 카드가 물리적으로 맞는지 알려줍니다. 전기적 레인 수는 메인보드가 해당 슬롯에 연결한 레인 수를 나타냅니다. 협상된 링크는 부팅 후 HBA와 메인보드가 실제로 사용하는 세대와 폭을 보고합니다.

따라서 x8 HBA는 전체 길이의 x16 슬롯에 장착할 수 있지만 x4로 작동할 수 있습니다. PCIe가 상호 지원되는 링크를 협상하기 때문에 카드가 작동하지만 호스트 측 대역폭은 줄어듭니다. 메인보드 매뉴얼은 이 차이를 명확히 합니다. 예를 들어 ASUS PRIME Z690-P D4는 x4 모드를 지원하는 전체 길이 PCIe x16 슬롯을 나열합니다.

커넥터 길이만으로 링크를 진단하지 마십시오. HBA 모델, 슬롯의 최대 전기적 폭, CPU 또는 칩셋 경로, 그리고 실제 협상된 속도와 폭을 기록하세요. 경로에서 가장 좁은 활성 부분이 로컬 PCIe 상한을 결정합니다.

HBA가 실제로 받는 대역폭은 얼마인가?

PCIe 대역폭은 세대, 레인 수, 인코딩 효율에 따라 다릅니다. PCIe 2.0은 레인당 5.0 GT/s로 전송하며 8b/10b 인코딩을 사용하고, PCIe 3.0은 8.0 GT/s로 전송하며 더 효율적인 128b/130b 방식을 사용합니다. PCIe 3.0 전송 속도 및 인코딩 변경은 인코딩 조정된 단방향 상한을 레인당 약 500 MB/s에서 약 985 MB/s로 올립니다.

협상된 링크 방향별 인코딩 조정 상한 실용적인 홈 서버 해석
PCIe 2.0 x4 약 2.00 GB/s 빠른 8개 HDD 스캔이나 여러 SATA SSD를 제한할 수 있음
PCIe 2.0 x8 약 4.00 GB/s 보통 HDD 배열에 충분하며, 대형 SATA SSD 세트에는 제한될 수 있음
PCIe 3.0 x4 약 3.94 GB/s 대부분 HDD HBA와 여러 SATA SSD에 충분함
PCIe 3.0 x8 약 7.88 GB/s 8포트 SAS/SATA HBA에 충분한 여유 공간

이 수치는 보장된 파일 복사 속도가 아닙니다. PCIe 패킷 오버헤드, 컨트롤러 동작, 큐 깊이, 파일 시스템 작업, RAID 또는 패리티 계산, 드라이브 한계, 읽기와 쓰기 혼합 모두 애플리케이션 처리량을 줄입니다. 이 표는 구성을 선별하기 위한 상한선으로 간주하고, 서버에서 측정한 값과 비교하세요.

한계에 도달하려면 몇 개의 드라이브가 필요할까요?

유용한 계산은 포트 수에 SATA 또는 SAS 인터페이스 레이블을 곱하는 것이 아닙니다. 동일한 작업 부하 동안 드라이브의 측정된 처리량 합계입니다. SATA 6 Gb/s로 광고된 여덟 개 디스크가 지속적으로 48 Gb/s의 데이터를 생성하지 않는 이유는 각 드라이브 내부 미디어가 인터페이스보다 훨씬 느리기 때문입니다.

예시로 순차 읽기를 들면, 평균 200 MB/s인 여덟 개 HDD는 약 1.6 GB/s를 요구합니다. 각각 250 MB/s일 경우 같은 배열은 2.0 GB/s에 도달하며 PCIe 2.0 x4의 인코딩 조정 한계에 근접합니다. 실제 결과는 드라이브 모델, 디스크 영역, 단편화, 명령 혼합, 패리티 구성, 모든 멤버가 동시에 활성화되었는지 여부에 따라 다릅니다.

SATA SSD가 기준을 바꿉니다. 삼성은 Samsung SSD 870 EVO 순차 성능에 대해 최대 560 MB/s 순차 읽기와 530 MB/s 쓰기를 명시합니다. 550 MB/s로 읽는 네 개의 유사 SSD는 총 약 2.2 GB/s로 PCIe 2.0 x4를 초과하지만 PCIe 3.0 x4의 인코딩 조정 한계치보다는 낮습니다. 같은 속도의 여덟 개는 총 약 4.4 GB/s로 PCIe 3.0 x4를 초과하고, 다른 오버헤드를 고려하기 전 PCIe 2.0 x8도 약간 초과합니다.

이 숫자들을 약속이 아닌 예시로 사용하세요. 각 드라이브를 개별적으로 벤치마크하고, 동시에 발생할 수 있는 속도를 더한 후, 협상된 링크 속도와 비교하세요. 또한 장치 클래스를 명확히 하세요: LSI 9211 또는 9207과 같은 일반적인 SAS/SATA HBA는 수동 케이블을 통해 NVMe 컨트롤러가 되지 않습니다. NVMe 지원은 호환되는 트리모드 어댑터나 NVMe 레인 라우팅을 위해 설계된 PCIe 어댑터 및 플랫폼에 속합니다.

어떤 홈 서버 작업 부하가 병목 현상을 드러내나요?

PCIe 병목 현상은 여러 드라이브가 동시에 데이터를 전송할 때 가장 명확하게 나타납니다. 스크럽, 패리티 검사, 리실버 또는 재구성, RAID 전체 순차 읽기, 여러 데이터셋에 걸친 백업, 그리고 여러 빠른 클라이언트가 그런 조건을 만들 수 있습니다. OpenZFS는 정상적인 스크럽을 풀의 모든 데이터를 검사하여 체크섬을 확인하는 작업으로 설명하며, 스크럽과 리실버 작업이 I/O 집약적 작업임을 명시합니다.

일반적인 사용은 같은 요구를 절대 도달하지 않을 수 있습니다. 기가비트 이더넷 클라이언트는 네트워크 오버헤드 전 최대 125MB/s이고, 미디어 스트림은 일반적으로 그 일부만 필요합니다. 10GbE 연결도 원시 신호 속도가 1.25GB/s이므로 한 클라이언트만으로는 깨끗한 2.0GB/s PCIe 2.0 x4 링크를 포화시킬 수 없습니다. 여러 링크, 로컬 작업, 캐시 장치 또는 공유 칩셋 트래픽이 함께 작동할 때는 더 빠른 네트워킹이 여전히 중요합니다.

느린 작업 하나보다는 반복 가능한 총합 한계를 찾아보세요. 전체 HBA 처리량이 대략 같은 수준에서 정체되는데 개별 디스크는 더 높은 성능을 낼 수 있다면 PCIe가 강력한 의심 대상입니다. 한 디스크, 데이터셋, 프로토콜 또는 클라이언트만 느리다면 그 구성 요소를 먼저 점검하세요.

왜 칩셋 연결 슬롯은 두 번째 확인이 필요한가요?

HBA가 협상한 링크는 루트 포트에 대한 로컬 연결일 뿐입니다. CPU에 연결된 슬롯은 비교적 직접적인 경로를 가질 수 있지만, 칩셋에 연결된 슬롯은 칩셋과 CPU 간 업링크를 온보드 SATA, M.2 장치, USB 컨트롤러, 네트워킹 및 기타 확장 슬롯과 공유합니다. HBA가 PCIe 3.0 x4를 올바르게 보고하더라도 상위 경로에서 관련 없는 트래픽과 경쟁할 수 있습니다.

레인 공유는 다른 커넥터가 활성화될 때 슬롯의 폭도 변경할 수 있습니다. 예를 들어 ASUS ROG STRIX B660-F 매뉴얼에는 일반적으로 x4를 지원하지만 두 개의 x1 슬롯 중 하나가 활성화되면 x2로 떨어지는 칩셋 연결 풀 길이 슬롯이 나와 있습니다; 칩셋 PCIe 대역폭 공유 규칙은 슬롯 맵을 전체적으로 확인해야 하는 이유를 보여줍니다.

정확한 마더보드 리비전을 위해 확장 슬롯 표, 저장소 공유 노트, 블록 다이어그램을 읽으세요. HBA를 CPU 연결 슬롯으로 이동했을 때 배열을 변경하지 않고도 성능 저하가 사라지면 이전 경로가 작업 부하를 제한한 것입니다. 성능이 변하지 않으면 병목 현상은 아마도 다른 곳에 있을 것입니다.

협상된 PCIe 링크를 어떻게 확인할 수 있나요?

리눅스에서는 먼저 lspci로 HBA를 찾고, sudo lspci -vv -s <BDF>로 검사하세요. 장치의 기능을 보고하는 LnkCap과 활성 속도 및 폭을 보고하는 LnkSta를 비교하세요. 레드햇의 PCI 문제 해결 참고서에서는 LnkCap 및 LnkSta 명령어로 최대 및 현재 PCIe 링크 속도를 비교합니다.

lspci | grep -Ei 'sas|scsi|raid'
sudo lspci -vv -s 03:00.0 | grep -E 'LnkCap:|LnkSta:'

다음과 같은 결과 LnkCap: 속도 8GT/s, 폭 x8 함께 LnkSta: 속도 5GT/s, 폭 x4 Gen3 x8 지원 엔드포인트가 PCIe 2.0 x4로 작동하고 있음을 의미합니다. 가능한 원인으로는 슬롯 배선, BIOS 레인 할당, 라이저 또는 어댑터, 신호 무결성 폴백, CPU 제한, 또는 마더보드의 레인 분할을 변경하는 다른 장치가 있습니다.

그런 다음 데이터 경로를 테스트하세요. 각 드라이브를 개별적으로 측정하고, 여러 멤버가 활성화되는 작업 부하로 배열을 테스트하며, 총 디스크 및 네트워크 처리량을 관찰하세요. 라이브 데이터에 파괴적인 벤치마크를 피하고, 캐시된 읽기를 디스크 성능으로 간주하지 마세요. 총 결과가 반복적으로 실제 한계에 근접하고 HBA를 이동하거나 예상 링크 폭을 복원한 후 상승하면 PCIe 링크가 원인일 수 있습니다.

HBA를 이동해야 하나요, 교체해야 하나요, 아니면 그대로 두어야 하나요?

협상된 링크가 측정된 총 수요를 편안하게 초과하고 서버가 복구, 유지보수 및 클라이언트 성능 목표를 충족할 때는 HBA를 그대로 두세요. PCIe 3.0 x4 링크는 보통 8개 드라이브 HDD 배열에 충분하며, 이미 네트워크에 의해 제한된 기가비트 파일 복사를 가속화하지는 않습니다.

카드가 성능 이하로 작동하거나, 예상치 못하게 레인을 공유하거나, 칩셋 트래픽이 과도할 때 카드를 이동하세요. 충분한 전기 레인이 있는 슬롯을 선호하고, 플랫폼이 허용하면 CPU에 연결된 경로를 선택하세요. 다시 확인하세요. LnkSta 물리적으로 더 큰 슬롯이 더 넓은 협상된 연결을 보장하지 않기 때문에 이동 후에도 그렇습니다.

슬롯과 작업 부하 테스트가 실제 한도를 보여준 후에만 하드웨어를 교체하세요. 모델 번호가 중요합니다: Broadcom은 LSI SAS 9211-8i를 8레인 PCIe 2.0 HBA로 명시하지만, 이름이 비슷한 다른 어댑터는 다른 PCIe 세대를 사용합니다. 더 빠른 HBA를 구매하기 전에 정확한 컨트롤러, 펌웨어 모드, 커넥터 유형, 운영 체제 지원, 드라이브 프로토콜을 확인하세요.

결정 규칙은 간단합니다: 먼저 계산하고, 두 번째로 확인하며, 마지막으로 하드웨어를 변경하세요. 링크 한도가 측정된 동시 수요보다 낮으면 슬롯이나 HBA를 개선하세요. 수요가 한도보다 훨씬 낮으면 디스크, 패리티 계산, 파일 시스템 설정, 열, 케이블링, 네트워크 제한을 조사하세요.

자주 묻는 질문

x8 HBA가 전기적으로 x4 슬롯에서 작동하나요?

보통은 그렇습니다. 물리적 슬롯이 카드를 수용하고 메인보드가 장치를 지원하는 경우에 한합니다. HBA는 x4를 협상하며 동일한 PCIe 세대에서 x8보다 약 절반의 레인 대역폭으로 작동합니다. 일부 슬롯은 공유 또는 결함 조건에서 x2 또는 x1로 떨어질 수 있으므로 활성 폭을 확인하세요.

PCIe 2.0 x4가 8개의 하드 드라이브에 충분한가요?

일반적인 미디어 서비스, 백업, 기가비트 네트워킹에는 충분할 수 있지만, 8개의 빠른 HDD에 걸친 이상적인 순차 작업을 제한할 수 있습니다. 8개의 드라이브가 평균 200MB/s일 때 총 약 1.6GB/s, 8개가 평균 250MB/s일 때 프로토콜 오버헤드 전 약 2.0GB/s 인코딩 조정 한도에 도달합니다. 유지 관리 시간이 중요하다면 스크럽 또는 재구성 처리량을 측정하세요.

물리적 x16 슬롯이 왜 x4 또는 x1만 협상하나요?

슬롯은 더 적은 레인으로 배선되었거나 M.2 또는 다른 확장 슬롯과 레인을 공유하거나 칩셋 구성으로 연결되었거나 라이저, 접촉, 펌웨어 또는 신호 문제로 인해 하위로 떨어질 수 있습니다. 메인보드 매뉴얼을 확인하고 비교하세요. LnkCap 함께 LnkSta서버를 안전하게 종료한 후에만 카드를 다시 꽂고 다른 문서화된 슬롯을 테스트하세요.

최종 요점

제한된 PCIe 링크가 자동으로 홈 서버 HBA 병목 현상이 되는 것은 아닙니다. 동시 드라이브 수요가 카드가 실제로 협상한 세대 및 레인 폭의 사용 가능한 용량에 도달할 때, 특히 전체 배열 유지 관리 또는 다중 SSD 작업 부하 중에 병목 현상이 됩니다.

전기 슬롯 배치를 확인하고 읽으세요 LnkSta하드웨어를 변경하기 전에 측정된 드라이브 속도에서 총 처리량을 계산하고 작업 부하를 재현하세요. 더 넓거나 더 직접적인 PCIe 경로를 복원한 후 성능이 향상되면 병목 현상을 찾은 것이고, 그렇지 않으면 HBA를 유지하고 나머지 저장 경로를 테스트하세요.

기술 및 AI 허브

더 읽어보기

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.