Realia sprzętowe, limity zasobów i głębokie monitorowanie wydajności
Gdy NAS QNAP działa wolno, szukanie przyczyny zaczyna się od tego, co potrafi jego sprzęt. Potem sprawdza się, na co NAS wydaje zasoby, a dopiero na końcu głębsze kolejki: procesy, które utknęły na I/O, i maszyny wirtualne, które walczą o procesor.
- Oczekiwaniado czego służy ten sprzęt
- Bazazatrzymaj dodatki, patrz na RAM i SWAP
- D-stateprocesy uwięzione na I/O
- vCPUwątki, nadsubskrypcja, steal
- WykresyBlackBox i Pulse, czytane dobrze
01Oczekiwania a rzeczywistość sprzętowa
Serwery QNAP mają podzespoły adekwatne do swojej ceny. QNAP wciąż wydaje aktualizacje dla urządzeń sprzed ponad dziesięciu lat, ale to nie znaczy, że stary lub podstawowy NAS uruchomi bez kompromisów cały dzisiejszy zestaw aplikacji. Oprogramowanie z czasem robi się cięższe, a sprzęt zostaje taki, jaki był.
Budżetowy NAS jest zaprojektowany do płynnego udostępniania plików. Oczekiwanie, że bez problemu pociągnie maszyny wirtualne albo ciężkie bazy danych, to nieporozumienie. Sprawdź, na co naprawdę stać Twój procesor i pamięć, i weź odpowiedzialność za wybór sprzętu. Podstawowym zadaniem NAS-a jest praca na plikach; cała reszta to dodatki, które działają w granicach pozostałych zasobów.
02Gałąź 1: baza, czyli izolacja usług
Gdy NAS zwalnia, a zwłaszcza gdy kończy mu się RAM i zaczyna używać SWAP (co mocno spowalnia każdą operację), pierwszym krokiem diagnostycznym jest izolacja usług.
- Zaloguj się do QTS albo QuTS hero.
- Otwórz App Center i po kolei zatrzymuj niekrytyczne aplikacje i usługi. Workbench nie zatrzymuje aplikacji za Ciebie.
- Obserwuj system w Monitorze zasobów QTS albo w Pulse w Workbenchu (biurko Utilities, menu Start → Monitoring → Pulse; tylko dla administratorów). Jego kokpit odświeża się co dwie sekundy: zajętość CPU z paskiem na każdy logiczny procesor, zajęty RAM na tle całego, z pamięcią podręczną na osobnym pasku, pasek SWAP, gdy NAS ma swap, obciążenie z ostatniej minuty i kolejkę. Patrz, jak spada obciążenie CPU i zajętość SWAP-u.
- Wyznacz bazę: zatrzymuj usługi, aż podstawowa funkcja NAS-a, płynna praca na plikach, wróci w pełni.
Tak wyznaczasz bazową wydajność swojego sprzętu. Od tego miejsca uruchamiaj pozostałe aplikacje pojedynczo, ściśle w granicach zasobów, które sprzętowi zostały.
03Gałąź 2: D-state i ukryte zatory
Czasem problemem nie jest przeciążony procesor ani brak RAM-u. System potrafi stanąć przy daleko niepełnym
CPU, gdy procesy tkwią w nieprzerywalnym uśpieniu, czyli w stanie D. Słowami samego Workbencha:
proces w stanie D czeka na I/O jądra (dysk, sieciowy system plików, zawieszony sterownik) i nie da się go nawet
zabić, dopóki to I/O się nie skończy. Wiele procesów w D oznacza, że ustawiają się w kolejce, zwykle za powolnym
I/O dysków, a urządzenie staje.
Najbardziej boli to, gdy NAS hostuje maszyny wirtualne (Virtualization Station, KVM). Złe przydzielenie zasobów powoduje wtedy gubienie pakietów sieciowych i długie opóźnienia I/O.
- Pulse zgłasza Processes in D-state (I/O), gdy tylko jeden proces jest w D, a powyżej dwóch oznacza to jako krytyczne. Na zakładce Processes przycisk D + Z zostawia tylko procesy uwięzione (D) i zombie (Z) oraz ich rodziców.
- BlackBox zapisuje stan NAS-a co 20 sekund od chwili, gdy działa pakiet; nie trzeba niczego włączać. Trzyma zajętość CPU, iowait i taktowanie każdego rdzenia, obciążenie, kolejkę i Blocked (D); pamięć zajętą i dostępną, pamięć podręczną, swap i zabicia przez OOM; dla każdego interfejsu ruch, gubione pakiety i retransmisje TCP; dla każdego dysku await, głębokość kolejki i wykorzystanie; temperatury i wentylatory; a dla każdej maszyny wirtualnej jej CPU, vCPU, pamięć i I/O dysku. Każdą 20-sekundową próbkę trzyma przez dobę, potem podsumowania minutowe przez tydzień, pięciominutowe przez miesiąc i godzinowe przez rok.
- Dwie różne liczby D. Blocked (D) w BlackBox to licznik zablokowanych zadań z jądra; Pulse liczy procesy, które widzi w stanie D. Nie muszą się zgadzać.
- iowait, nie PSI. Jądra QNAP nie mają PSI (pressure stall information), więc Workbench mierzy opóźnienie I/O jako iowait.
04Alokacja CPU: pCPU, lCPU i vCPU
Zanim przydzielisz maszynie zasoby, zrozum topologię:
- pCPU (Physical CPU): fizyczne rdzenie procesora NAS-a.
- lCPU (Logical CPU): rdzenie widoczne dla systemu, z Hyper-Threading. Hyper-Threading nie podwaja wydajności; według przybliżonej reguły dodaje około 30% przepustowości.
- vCPU (Virtual CPU): wirtualne rdzenie przydzielone maszynom.
Pulse liczy logiczne procesory: gdy na sześciordzeniowym, dwunastowątkowym Xeonie W-1250 pokazuje 12 cores, to są wątki.
Pułapka nadsubskrypcji. Przydzielenie 128 vCPU maszynom na 32-rdzeniowym procesorze zakłada, że nigdy wszystkie nie będą zajęte naraz. Gdy są, hipernadzorca nie nadąża z przydzielaniem vCPU, a maszyny stają, czekając na czas procesora; wewnątrz gościa widać to jako steal time. Pulse pokazuje to od strony hosta:
- vCPU over-subscription (informacja), gdy uruchomione maszyny mają więcej vCPU, niż NAS ma logicznych procesorów;
- VMs contending for CPU (ostrzeżenie), gdy dodatkowo host jest zajęty w ponad 75% albo jego kolejka jest dłuższa niż liczba wątków. Jego uwaga na tym NAS-ie: Over-subscribed (17 vCPUs / 12 cores) AND the host is busy (84%, queue 11) — your VMs are likely contending for physical cores NOW. This is CPU theft, host-side.
- Steal time mierzy się wewnątrz gościa. Na samym NAS-ie z założenia wynosi zero; Workbench sam
zaznacza, że steal gościa nie jest widoczny z hosta. Rywalizację na NAS-ie oceniaj po stosunku vCPU do wątków,
zajętości i kolejce, a steal odczytuj w maszynie (kolumna
stwtopalbovmstatw linuksowym gościu).
05Obserwowanie maszyn wirtualnych
Workbench nie ma agenta do instalowania w maszynie wirtualnej. Mierzy NAS, na którym działa, a to obejmuje maszyny wirtualne, które ten NAS hostuje:
- Otwórz Pulse, zakładkę VM: każda uruchomiona maszyna z vCPU, CPU%, pamięcią, RSS, stanem i numerem procesu, a w tytule wiersz Hosting 4 VM(s), 17 vCPUs.
- Otwórz BlackBox (menu Start → Monitoring), przełącz na Heat map i włącz pas Virtual machines: CPU każdej maszyny w ciągu dnia, obok temperatur i await dysków. Wykresy BlackBox trzymają też vCPU, pamięć i I/O dysku każdej maszyny oraz każde jej uruchomienie i zatrzymanie.
- Żeby śledzić zasięg sieciowy maszyny, dodaj jej adres w BlackBox w Settings → Monitored hosts: BlackBox zapisuje wtedy jej czas odpowiedzi i utratę pakietów.
- Wewnątrz maszyny obserwuj steal time jej własnymi narzędziami.
Okno Virtual Machines · LOCAL (Local NAS → Virtual Machines) pokazuje konfigurację każdej maszyny z Virtualization Station: vCPU, topologię, zestaw procesorów, model CPU, dyski i karty sieciowe. Jego otwarcie uruchamia własne zrzuty diagnostyczne QNAP do pamięci podręcznej Workbencha; nie zmienia żadnego ustawienia.
06Czytanie wykresów: stany krytyczne
- Wysoki D-state i opóźnienia I/O. Procesy czekają na dyski. Tygodniowy raport BlackBox nazywa to Processes waiting on storage (iowait w 95. percentylu od 20% to ostrzeżenie, od 40% stan krytyczny) i wskazuje najbardziej zajęty dysk; Slow array member oznacza dysk, którego await jest dwa razy wyższy niż u sąsiadów i wynosi co najmniej 50 ms (krytycznie przy 200 ms), a Disk with no headroom dysk zajęty w 90% lub więcej przez dwie godziny. Lekarstwo to rada autora: przenieś maszynę na wolumin SSD, sprawdź kondycję dysków (poradnik o wydajności) i sprawdź, czy inny proces nie wysyca macierzy RAID.
- Wysoka kolejka CPU. Procesor NAS-a jest przeciążony nadsubskrypcją: Pulse pokazuje VMs contending for CPU, a reguła raportu Virtual machine hogging the host oznacza maszynę, która zużywa 150% jednego rdzenia lub więcej (300% krytycznie). Zmniejsz liczbę vCPU maszyn: zacznij od jednego lub dwóch na maszynę i dodawaj, dopiero gdy gość ich potrzebuje.
- Dławienie termiczne. Wysoka temperatura CPU, potem niższe taktowanie i dłuższe opóźnienia oznaczają, że procesor się przegrzewa. Raport tygodniowy nazywa to CPU thermal throttling: rdzeń pracuje z 60% lub mniej swojego zwykłego taktowania, gdy CPU jest zajęte w co najmniej 60%. Na mapie ciepła 65 °C to kolor bursztynowy, a 80 °C czerwony. Rada samego Workbencha: wyczyść kurz z radiatora, wentylatorów i wlotów, sprawdź, czy wentylatory się kręcą, popraw przepływ powietrza albo obniż temperaturę w pomieszczeniu; pomaga też wyższa prędkość wentylatorów w QTS.
07Dobre praktyki KVM: model procesora
- Host / passthrough (zalecane): przekazuje maszynie sam procesor NAS-a, ze wszystkimi jego zestawami instrukcji (na przykład AVX). Daje najwyższą wydajność i najmniejszy narzut na pojedynczym NAS-ie.
- Model emulowany (generyczny Intel lub AMD): ukrywa procesor hosta. Przydaje się w klastrze, do przenoszenia działających maszyn między fizycznie różnymi hostami; na pojedynczym NAS-ie tylko obniża wydajność.
Okno Virtual Machines · LOCAL pokazuje model CPU, jaki dostała każda maszyna (na przykład Westmere), i jej topologię; Workbench nie ocenia tego wyboru.
08Wiedza podstawowa: nadsubskrypcja zasobów
Jak nie utopić wydajności maszyn wirtualnych na granicy mocy NAS-a. Proporcja vCPU do rdzeni fizycznych (pCPU) to pierwsze, co warto policzyć:
| Zasób | Zysk | Ryzyko | Zalecenie |
|---|---|---|---|
| CPU (vCPU : pCPU) | więcej maszyn, tani zapas na chwilowe skoki | przy nasyceniu steal i kolejki spowalniają wszystkie maszyny | produkcja 2:1–4:1, maszyny krytyczne do 2:1; host poniżej 80 % |
| RAM (balon, Dynamic Memory) | pamięć przesuwana w locie, dobre przy bezczynnych maszynach | swap hosta to drastyczny spadek wydajności | nie dopuść, by host swapował aktywne strony; rezerwy dla maszyn krytycznych |
| Storage (thin) | oszczędność miejsca, błyskawiczne tworzenie dysków | zapełnienie magazynu zatrzymuje maszyny natychmiast | alarmy przy 75–85 %; odzyskiwanie miejsca (UNMAP); krytyczne dane raczej thick |
Ogólna zasada. Nadsubskrypcja jest bezpieczna przy lekkim, nierównym obciążeniu i aktywnym monitoringu, a groźna przy szczytach bez zapasu. Zostaw rezerwę.
Wskazówki
- Zaczynaj od 1 vCPU na maszynę i dokładaj dopiero, gdy obciążenie tego wymaga. Więcej vCPU niż trzeba to większy narzut planisty, nie wydajność.
- Licz rdzenie fizyczne, nie wątki. Nie przydzielaj wszystkim maszynom razem więcej vCPU, niż host ma rdzeni.
- CPU hosta poniżej 80 %. Powyżej 90 % maszyny konkurują o cykle i w gościach rośnie steal.
- Czytaj top w gościu: %wa to czekanie na I/O (wąskie gardło dysków), %st to steal (za duża nadsubskrypcja), %id to zapas mocy.
- Wysokie %wa? Szybsza pamięć masowa albo SSD. Wysokie %st? Mniej vCPU albo mniej maszyn.
- VirtIO dla dysku i sieci, znacznie szybsze niż emulacja. Przekazanie PCIe lub GPU tylko wtedy, gdy naprawdę trzeba: urządzenie należy wtedy do jednej maszyny.
Migawka maszyny to nie kopia zapasowa
Migawka zapisuje tylko różnicę stanu względem punktu bazowego (zmiany dysków, a przy zapisie stanu także zawartość pamięci). Uszkodzenie bazy albo łańcucha migawek unieważnia też migawki. Do realnej ochrony rób kopię całych obrazów maszyn: eksport, HBS albo osobny nośnik.