Scrubowanie macierzy RAID zwiększa opóźnienie lokalnego wnioskowania, gdy odczyty weryfikacyjne konkurują z ładowaniem modelu, wyszukiwaniem, rejestrowaniem danych lub presją na pamięć we współdzielonych ścieżkach pamięci masowej.
Model już znajdujący się w pamięci GPU może dekodować normalnie podczas scrubowania, podczas gdy jego pierwsze żądanie, wyszukiwanie RAG lub operacja spill nagle zwalniają. Scrubowanie skanuje przydzielone dane, odczytuje kopie nadmiarowe lub dane parzystości, weryfikuje integralność i może naprawiać uszkodzenia. Jego wpływ zależy mniej od samego słowa RAID, a bardziej od tego, których dysków, kolejek kontrolera, cykli CPU i stron pamięci podręcznej nadal potrzebuje wnioskowanie.
Scrubowanie zamienia niewykorzystaną przepustowość na operacje wejścia-wyjścia związane z weryfikacją
Scrubowanie systematycznie odczytuje przydzielone bloki, sprawdza sumy kontrolne lub parzystość i odbudowuje uszkodzone dane, gdy nadmiarowość na to pozwala. Nawet sprawne macierze wykonują odczyty i weryfikację, więc operacja może obciążać każdy dysk członkowski przez wiele godzin.
OpenZFS opisuje scrubowanie i resilvering jako osobną klasę operacji wejścia-wyjścia scrub, której współbieżność jest równoważona względem normalnych odczytów i zapisów. Zwiększenie aktywności scrubowania przyspiesza zakończenie weryfikacji, ale może zwiększyć opóźnienia operacji pierwszoplanowych.
Macierze z dyskami obrotowymi cierpią z powodu ruchu głowic, gdy odczyty scrubowania przeplatają się z małymi losowymi żądaniami, natomiast macierze SSD mogą wysycić przepustowość kontrolera lub wewnętrzne kanały pamięci flash. Dlatego ta sama nominalna przepustowość może powodować zupełnie różne opóźnienia ogona.
Wnioskowanie odczuwa scrubowanie tylko przez współdzielone zależności
Dekodowanie tokenów z wag i pamięci podręcznej KV znajdujących się w całości w pamięci jest głównie obciążeniem obliczeniowym i obciążeniem przepustowości pamięci. Pamięć masowa staje się widoczna podczas ładowania modelu, błędów stron mapowania pamięci, wyszukiwania, rejestrowania promptów, przełączania adapterów, przenoszenia KV lub dowolnego dostępu do punktu kontrolnego i indeksu.
OpenZFS odnotowuje, że operacje scrubowania wysyłają odczyty dyskowe, a kolejność skanowania zmienia sposób docierania pracy do puli. Te mechanizmy harmonogramowania skanowania mogą usuwać przydatne strony pamięci podręcznej lub zajmować kolejki, zanim dotrze opóźniony model albo odczyt wektorowy.
Obliczenia sum kontrolnych przez CPU i rekonstrukcja parzystości również mogą konkurować z tokenizacją, wyszukiwaniem lub wnioskowaniem przez CPU. Obserwowalne opóźnienie może pojawić się jako opóźnienie do pierwszego tokenu, opóźnienie wyszukiwania lub okresowe zatrzymania, a nie jako jednolity spadek liczby tokenów na sekundę.
Ograniczanie przepustowości wymienia czas zakończenia na opóźnienia ogona
Ograniczenie współbieżności scrubowania lub wstrzymanie weryfikacji w godzinach interaktywnych pozostawia więcej miejsca w kolejkach dla wnioskowania, ale wydłuża okres, w którym utajone błędy pozostają niewykryte. Samo harmonogramowanie pomaga tylko wtedy, gdy zapotrzebowanie jest przewidywalne, a scrubowanie nadal może zakończyć się w ramach celu konserwacji.
Przewodnik dostrajania OpenZFS stwierdza, że zwiększenie wartości opóźnienia scrubowania może ograniczyć wpływ scrubowania na obciążenia dynamiczne. Właściwe ustawienie zależy od sprzętu i obciążenia, ponieważ lustro, grupa RAID-Z, dysk SSD SATA i pula NVMe mają różne wąskie gardła.
Granica awarii pojawia się w przypadku zdegradowanej macierzy lub aktywnej naprawy. Rekonstrukcja danych może wymagać priorytetu przed opóźnieniami interaktywnymi, a silne ograniczanie przepustowości może wydłużyć podatność; właściwą reakcją nie jest ukrywanie ryzyka pamięci masowej za szybką rozmową z chatbotem.
Profiluj pojedyncze scrubowanie względem krytycznej ścieżki wnioskowania
Rejestruj czas do pierwszego tokenu p50 i p99, szybkość generowania tokenów, opóźnienie wyszukiwania, błędy stron modelu, głębokość kolejki dysku, opóźnienie odczytu, przepustowość, użycie CPU, rozmiar ARC lub pamięci podręcznej stron oraz postęp scrubowania przed weryfikacją i w jej trakcie. To rozróżnienie pozostaje widoczne podczas późniejszych testów domowych.
Użyj konkurencji o pamięć masową podczas tworzenia migawek, aby odróżnić konkurencję związaną z migawkami od konkurencji związanej ze scrubowaniem. Powtórz test z modelami znajdującymi się w pamięci i ładowanymi na zimno, z włączonym i wyłączonym RAG, z normalną i ograniczoną współbieżnością scrubowania oraz z bazowym testem obejmującym wyłącznie pamięć masową. Wynik pośredni musi pozostać możliwy do sprawdzenia, zanim automatyzacja przejdzie dalej.
Wybierz limit, który chroni interaktywne opóźnienia ogona, a jednocześnie pozwala na terminowe zakończenie kontroli integralności. Jeśli dekodowanie z pamięci GPU nie jest zakłócone, ale wyszukiwanie zwalnia, odizoluj lub nadaj priorytet współdzielonej ścieżce pamięci masowej zamiast dostrajać model.
Centrum Technologii i Sztucznej Inteligencji
Więcej do przeczytania

Czym jest dryf osadzeń i kiedy prywatny indeks wyszukiwania wymaga przebudowy?
Odkoduj dryf modelu, przetwarzania wstępnego, korpusu i zapytań; odróżnij monitorowanie od niezgodności oraz zdecyduj, kiedy prywatny indeks wymaga przebudowy.

Czym jest zgodność tokenizera i dlaczego może zakłócić przełączanie modeli?
Odkryj tożsamość słownictwa, znaczenie tokenów specjalnych, szablony czatu, buforowane tokeny, adaptery i kontrole zgodności przy lokalnym przełączaniu modeli.

Czym jest rezydencja modelu i kiedy lokalna usługa AI powinna przechowywać wagi w pamięci?
Poznaj rezydencję wag, poziomy pamięci podręcznej, zimne uruchomienia, eksmisję, multipleksowanie, presję pamięci oraz dowiedz się, kiedy domowa usługa AI powinna pozostać aktywna.

