Ograniczone połączenie PCIe powoduje wąskie gardło w HBA serwera domowego tylko wtedy, gdy łączna jednoczesna przepustowość dysków przekracza rzeczywistą przepustowość, jaką karta faktycznie wynegocjowała.
Czy ośmioporcjowy HBA działa normalnie podczas odtwarzania mediów, ale zwalnia podczas skanowania ZFS, sprawdzania parzystości, odbudowy lub transferu wielu dysków SSD? Pełnowymiarowy slot może być podłączony tylko do czterech linii, karta x8 może negocjować mniej linii, lub HBA może być podłączony za pośrednictwem współdzielonej ścieżki chipsetu. Sprawdź negocjowane połączenie przed wymianą dysków; ten przewodnik pokazuje obliczenia, obciążenia i testy, które odróżniają prawdziwą blokadę PCIe od wolniejszego dysku, sieci lub stosu pamięci masowej.
Co naprawdę oznacza „ograniczone połączenie PCIe”?
Trzy podobne wartości opisują różne rzeczy. Rozmiar mechaniczny slotu mówi, jaka karta fizycznie pasuje. Liczba linii elektrycznych mówi, ile linii płyta główna podłączyła do tego slotu. Negocjowane połączenie pokazuje generację i szerokość, jaką HBA i płyta główna faktycznie używają po uruchomieniu.
Karta x8 HBA może więc pasować do pełnowymiarowego slotu x16, ale działać na x4. Karta nadal działa, ponieważ PCIe negocjuje wzajemnie obsługiwane połączenie, ale przepustowość po stronie hosta jest zmniejszona. Instrukcje płyty głównej wyraźnie to rozróżniają: na przykład ASUS PRIME Z690-P D4 wymienia pełnowymiarowe sloty PCIe x16 obsługujące tryb x4.
Nie diagnozuj połączenia wyłącznie na podstawie długości złącza. Zapisz model HBA, maksymalną szerokość elektryczną slotu, jego trasowanie do CPU lub chipsetu oraz aktualną negocjowaną prędkość i szerokość. Najwęższa aktywna część tej ścieżki ustala lokalny limit PCIe.
Ile przepustowości naprawdę otrzymuje HBA?
Przepustowość PCIe zależy od generacji, liczby linii i efektywności kodowania. PCIe 2.0 przesyła dane z prędkością 5,0 GT/s na linię i używa kodowania 8b/10b, podczas gdy PCIe 3.0 przesyła z prędkością 8,0 GT/s i stosuje bardziej efektywny schemat 128b/130b. Zmiana prędkości transferu i kodowania PCIe 3.0 podnosi dostosowany do kodowania jednostronny limit z około 500 MB/s do około 985 MB/s na linię.
| Negocjowane połączenie | Dostosowany do kodowania limit przepustowości na kierunek | Praktyczna interpretacja serwera domowego |
|---|---|---|
| PCIe 2.0 x4 | Około 2,00 GB/s | Może ograniczać szybkie skanowanie ośmiu dysków HDD lub kilka dysków SATA SSD |
| PCIe 2.0 x8 | Około 4,00 GB/s | Zazwyczaj wystarczające dla macierzy HDD; może ograniczać duży zestaw SATA SSD |
| PCIe 3.0 x4 | Około 3,94 GB/s | Wygodne dla większości kontrolerów HDD i kilku dysków SATA SSD |
| PCIe 3.0 x8 | Około 7,88 GB/s | Znaczny zapas dla ośmiu portów SAS/SATA HBA |
Te wartości nie są gwarantowanymi prędkościami kopiowania plików. Narzut pakietów PCIe, zachowanie kontrolera, głębokość kolejki, praca systemu plików, obliczenia RAID lub parzystości, ograniczenia dysków oraz mieszane odczyty i zapisy zmniejszają przepustowość aplikacji. Traktuj tabelę jako górną granicę do wstępnej oceny konfiguracji, a następnie porównaj ją z pomiarami z twojego serwera.
Ile dysków potrzeba, by osiągnąć limit?
Przydatne obliczenie to nie liczba portów pomnożona przez oznaczenie interfejsu SATA lub SAS. To suma zmierzonej przepustowości dysków podczas tego samego obciążenia. Osiem dysków reklamowanych jako SATA 6 Gb/s nie daje 48 Gb/s ciągłych danych, ponieważ nośnik wewnątrz każdego dysku jest znacznie wolniejszy niż jego interfejs.
Dla ilustracyjnego odczytu sekwencyjnego osiem dysków HDD ze średnią prędkością 200 MB/s każdy wymaga około 1,6 GB/s. Przy 250 MB/s każdy ten sam zestaw osiąga 2,0 GB/s i zaczyna naciskać na limit PCIe 2.0 x4 po uwzględnieniu kodowania. Rzeczywiste wyniki zależą od modelu dysku, strefy dysku, fragmentacji, mieszanki poleceń, układu parzystości i tego, czy wszystkie dyski są aktywne jednocześnie.
Dyski SATA SSD przesuwają granicę. Samsung podaje do 560 MB/s odczytu sekwencyjnego i 530 MB/s zapisu dla Samsung SSD 870 EVO wydajność sekwencyjna. Cztery porównywalne SSD czytające z prędkością 550 MB/s dają łącznie około 2,2 GB/s, co przekracza PCIe 2.0 x4, ale pozostaje poniżej limitu PCIe 3.0 x4 po uwzględnieniu kodowania. Osiem takich dysków daje około 4,4 GB/s, co wystarcza, by przekroczyć PCIe 3.0 x4 i nieco przekroczyć PCIe 2.0 x8 przed uwzględnieniem innych narzutów.
Używaj tych liczb jako przykładów, nie obietnic. Testuj każdą dysk osobno, dodaj prędkości, które mogą wystąpić jednocześnie, i porównaj sumę z negocjowanym łączem. Zachowaj też właściwą klasę urządzenia: konwencjonalny kontroler SAS/SATA HBA, taki jak LSI 9211 lub 9207, nie stanie się kontrolerem NVMe przez pasywny kabel. Obsługa NVMe należy do kompatybilnego adaptera tri-mode lub adaptera PCIe i platformy zaprojektowanej do routingu linii NVMe.
Które obciążenia serwera domowego ujawniają wąskie gardło?
Wąskie gardło PCIe jest najbardziej widoczne, gdy wiele dysków przesyła dane jednocześnie. Operacje takie jak skanowanie, sprawdzanie parzystości, resilvering lub odbudowa, sekwencyjne odczyty RAID, kopie zapasowe obejmujące wiele zestawów danych oraz kilku szybkich klientów mogą stworzyć taki stan. OpenZFS opisuje normalne skanowanie jako sprawdzanie wszystkich danych w puli w celu weryfikacji sum kontrolnych i zauważa, że skanowanie i resilvering to operacje intensywnie korzystające z I/O.
Zwykłe użytkowanie może nigdy nie osiągnąć takiego zapotrzebowania. Klient Gigabit Ethernet osiąga maksymalnie 125 MB/s przed narzutem sieciowym, a strumień multimedialny zwykle potrzebuje tylko ułamka tej wartości. Nawet połączenie 10GbE ma surową szybkość sygnału 1,25 GB/s, więc jeden klient sam nie jest w stanie nasycić czystego łącza PCIe 2.0 x4 o przepustowości 2,0 GB/s. Szybsza sieć ma znaczenie, gdy działa wiele łączy, lokalne zadania, urządzenia cache lub współdzielony ruch chipsetu.
Szukaj powtarzalnego łącznego limitu, a nie pojedynczego wolnego zadania. Jeśli całkowita przepustowość HBA ustabilizuje się na mniej więcej tym samym poziomie, podczas gdy pojedyncze dyski nadal mogą więcej, PCIe staje się silnym podejrzanym. Jeśli tylko jeden dysk, zestaw danych, protokół lub klient działa wolno, najpierw sprawdź ten komponent.
Dlaczego sloty podłączone do chipsetu wymagają drugiego sprawdzenia?
Negocjowane połączenie HBA to tylko jego lokalne połączenie z portem głównym. Slot podłączony do CPU może mieć stosunkowo bezpośrednią ścieżkę, podczas gdy slot podłączony do chipsetu dzieli łącze chipset-CPU z wbudowanymi urządzeniami SATA, M.2, kontrolerami USB, siecią i innymi slotami rozszerzeń. HBA może poprawnie raportować PCIe 3.0 x4, a mimo to konkurować z niezwiązanym ruchem dalej w górę.
Udostępnianie linii może również zmienić szerokość slotu, gdy inny złącze jest aktywowane. Na przykład instrukcja ASUS ROG STRIX B660-F wymienia slot pełnej długości podłączony do chipsetu, który normalnie obsługuje x4, ale spada do x2, gdy którykolwiek z dwóch slotów x1 jest aktywny; jego zasady udostępniania przepustowości PCIe chipsetu pokazują, dlaczego mapę slotów należy sprawdzać jako całość.
Przeczytaj tabelę gniazd rozszerzeń, notatki o współdzieleniu pamięci masowej i schemat blokowy dla dokładnej rewizji płyty głównej. Jeśli przeniesienie HBA do gniazda połączonego z CPU usuwa plateau bez zmiany macierzy, stara trasa ograniczała obciążenie. Jeśli wydajność pozostaje bez zmian, wąskie gardło prawdopodobnie leży gdzie indziej.
Jak możesz zweryfikować negocjowane połączenie PCIe?
W systemie Linux najpierw zlokalizuj HBA za pomocą lspci, a następnie sprawdź je poleceniem sudo lspci -vv -s <BDF>. Porównaj LnkCap, które pokazuje możliwości urządzenia, z LnkSta, które pokazuje aktywną prędkość i szerokość. Referencja Red Hat dotycząca rozwiązywania problemów z PCI używa poleceń LnkCap i LnkSta do porównania maksymalnej i aktualnej prędkości łącza PCIe.
lspci | grep -Ei 'sas|scsi|raid'
sudo lspci -vv -s 03:00.0 | grep -E 'LnkCap:|LnkSta:'
Wynik taki jak LnkCap: Prędkość 8GT/s, Szerokość x8 z LnkSta: Prędkość 5GT/s, Szerokość x4 oznacza, że punkt końcowy obsługujący Gen3 x8 działa jako PCIe 2.0 x4. Możliwe przyczyny to okablowanie gniazda, przydział linii w BIOS-ie, riser lub adapter, spadek integralności sygnału, ograniczenia CPU lub inne urządzenie zmieniające podział linii na płycie głównej.
Następnie przetestuj ścieżkę danych. Zmierz każdy dysk osobno, przetestuj macierz z obciążeniem aktywującym wielu członków i obserwuj łączną przepustowość dysku i sieci. Unikaj destrukcyjnych testów na danych na żywo i nie traktuj odczytów z pamięci podręcznej jako wydajności dysku. Połączenie PCIe jest podejrzane, gdy łączny wynik wielokrotnie zbliża się do praktycznego maksimum i wzrasta po przeniesieniu HBA lub przywróceniu oczekiwanej szerokości połączenia.
Czy powinieneś przenieść HBA, wymienić je, czy zostawić w spokoju?
Pozostaw HBA na miejscu, gdy negocjowane połączenie wyraźnie przekracza zmierzone łączne zapotrzebowanie, a serwer spełnia cele dotyczące odzyskiwania, konserwacji i wydajności klienta. Połączenie PCIe 3.0 x4 zwykle wystarcza dla ośmiodyskowej macierzy HDD, a jego ulepszenie nie przyspieszy kopiowania plików Gigabit, które i tak jest ograniczone przez sieć.
Przenieś kartę, gdy działa poniżej swoich możliwości, nieoczekiwanie dzieli linie lub konkuruje z dużym ruchem chipsetu. Wybierz gniazdo z wystarczającą liczbą linii elektrycznych i, jeśli platforma na to pozwala, z trasą połączoną z procesorem. Sprawdź ponownie LnkSta po przeniesieniu, ponieważ fizycznie większe gniazdo nie gwarantuje szerszego negocjowanego połączenia.
Wymieniaj sprzęt dopiero po tym, jak testy gniazda i obciążenia wykażą rzeczywisty limit. Numery modeli mają znaczenie: Broadcom określa LSI SAS 9211-8i jako HBA PCIe 2.0 o ośmiu liniach, podczas gdy inne podobnie nazwane adaptery używają różnych generacji PCIe. Sprawdź dokładny kontroler, tryb oprogramowania układowego, typ złącza, wsparcie systemu operacyjnego i protokół dysku przed zakupem szybszego HBA.
Zasada decyzji jest prosta: najpierw oblicz, potem zweryfikuj, a na końcu zmień sprzęt. Jeśli limit łącza jest poniżej zmierzonego jednoczesnego zapotrzebowania, popraw gniazdo lub HBA. Jeśli zapotrzebowanie pozostaje znacznie poniżej limitu, zbadaj dyski, obliczenia parzystości, ustawienia systemu plików, temperaturę, okablowanie i ograniczenia sieciowe.
Najczęściej zadawane pytania
Czy HBA x8 zadziała w gnieździe elektrycznym x4?
Zazwyczaj tak, pod warunkiem, że fizyczne gniazdo akceptuje kartę, a płyta główna obsługuje urządzenie. HBA negocjuje x4 i działa z około połową przepustowości linii, którą otrzymałby przy tej samej generacji PCIe na x8. Zweryfikuj aktywną szerokość, ponieważ niektóre gniazda mogą spaść do x2 lub x1 w warunkach dzielenia lub awarii.
Czy PCIe 2.0 x4 wystarczy dla ośmiu dysków twardych?
Może to wystarczyć do normalnego serwowania mediów, kopii zapasowych i sieci Gigabit, ale może ograniczać idealną operację sekwencyjną na ośmiu szybkich dyskach HDD. Osiem dysków ze średnią 200 MB/s daje około 1,6 GB/s; osiem ze średnią 250 MB/s osiąga około 2,0 GB/s, czyli limit łącza uwzględniający kodowanie przed narzutem protokołu. Zmierz przepustowość skanowania lub odbudowy, jeśli czas konserwacji ma znaczenie.
Dlaczego fizyczne gniazdo x16 negocjuje tylko x4 lub x1?
Gniazdo może być okablowane na mniejszą liczbę linii, dzielić linie z M.2 lub innymi gniazdami rozszerzeń, przechodzić przez konfigurację chipsetu lub obniżać prędkość z powodu risera, kontaktu, oprogramowania układowego lub problemu z sygnałem. Sprawdź instrukcję płyty głównej i porównaj LnkCap z LnkSta. Ponownie zamontuj kartę i przetestuj inne udokumentowane gniazdo dopiero po bezpiecznym wyłączeniu serwera.
Ostateczne wnioski
Ograniczone łącze PCIe nie jest automatycznie wąskim gardłem HBA w domowym serwerze. Staje się nim, gdy jednoczesne zapotrzebowanie dysków osiąga użyteczną przepustowość generacji i szerokości linii, którą karta faktycznie negocjuje, zwłaszcza podczas pełnej konserwacji macierzy lub obciążeń wieloma SSD.
Potwierdź układ elektryczny gniazda, odczytaj LnkSta, oblicz łączną przepustowość na podstawie zmierzonych prędkości dysków i odtwórz obciążenie przed zmianą sprzętu. Jeśli wydajność wzrośnie po przywróceniu szerszej lub bardziej bezpośredniej ścieżki PCIe, znalazłeś wąskie gardło; jeśli nie, zachowaj HBA i przetestuj resztę ścieżki magazynowania.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Dlaczego Home Assistant działa inaczej w sieci lokalnej i przy połączeniach zdalnych?
Sesje Home Assistant w sieci LAN i zdalne korzystają z różnych ścieżek sieciowych; opóźnienie zdalne obejmuje DNS, szyfrowanie, sieć WAN, serwer proxy lub VPN...

Czy Home Assistant działa niezawodnie za CGNAT-em lub podwójnym NAT-em?
CGNAT i podwójny NAT zazwyczaj nie wpływają na lokalne sterowanie Home Assistantem; zmieniają głównie sposób, w jaki zdalni klienci mogą utworzyć ścieżkę przychodzącą do...

Jak opóźnienie sieci wpływa na działanie Home Assistant podczas awarii Internetu?
Utrata dostępu do Internetu i opóźnienia sieciowe to różne awarie: lokalne ścieżki urządzeń mogą nadal działać szybko, podczas gdy DNS, integracje z chmurą, bramy...

