Inofficiell
På den här sidan
  1. 01Hårdvaruförväntningar och verklighet
  2. 02Gren 1: baslinjen, genom att isolera tjänster
  3. 03Gren 2: D-lägen och dolda flaskhalsar
  4. 04CPU-allokering: pCPU, lCPU och vCPU
  5. 05Att observera de virtuella maskinerna
  6. 06Att läsa graferna: de kritiska tillstånden
  7. 07KVM: god praxis för CPU-modellen
  8. 08Grundläggande kunskap: resursöverabonnemang

Hårdvarurealiteter, resursgränser och djupgående prestandaövervakning

När en QNAP NAS känns långsam börjar undersökningen med vad dess hårdvara klarar av. Sedan tittar den på vad NAS:en spenderar sina resurser på, och först därefter på de djupare köerna: processer som fastnat på I/O och virtuella maskiner som slåss om processorn.

  1. Förväntningarvad den här hårdvaran är till för
  2. Baslinjestoppa tilläggen, övervaka RAM och SWAP
  3. D-lägenprocesser fastnade på I/O
  4. vCPU:ertrådar, överabonnemang, steal-tid
  5. GraferBlackBox och Pulse, läs rätt

01Hårdvaruförväntningar och verklighet

QNAP-servrar byggs med delar som matchar deras pris. QNAP släpper fortfarande firmware-uppdateringar för enheter som är över tio år gamla, men det betyder inte att en gammal NAS eller instegsmodell kan köra dagens hela utbud av appar utan kompromisser. Mjukvaran blir tyngre i takt med att den utvecklas; hårdvaran förblir densamma.

En budget-NAS är designad för smidig fildelning. Att förvänta sig att den ska köra virtuella maskiner eller tunga databaser utan problem är att missförstå vad den är till för. Kontrollera vad din processor och ditt minne faktiskt klarar av, och ta ansvar för ditt val av hårdvara. NAS:ens huvuduppgift är att hantera filer; allt annat är ett tillägg som körs inom de resurser som finns kvar.

02Gren 1: baslinjen, genom att isolera tjänster

När NAS:en saktar ner, framför allt när minnet tar slut och den börjar använda SWAP (vilket drastiskt saktar ner varje åtgärd), är det första diagnostiska steget att isolera tjänsterna.

  1. Logga in på QTS eller QuTS hero.
  2. Öppna App Center och stoppa de icke-väsentliga apparna och tjänsterna en efter en. Workbench stoppar inga appar åt dig.
  3. Övervaka systemet i QTS Resource Monitor eller i Workbenchs Pulse (Utilities-skrivbordet, Start-menyn → Monitoring → Pulse; endast administratörer). Dess cockpit uppdateras varannan sekund: CPU-belastning med en stapel per logisk CPU, RAM använt mot totalt med page cache i ett eget band, en SWAP-stapel när NAS:en har swap, 1-minutsbelastningen (load) och run queue. Se hur CPU-belastningen och SWAP-användningen minskar.
  4. Hitta baslinjen: fortsätt stoppa tjänster tills NAS:ens kärnfunktion, smidig fildelning, är helt återställd.

Det är din hårdvaras baslinje. Därifrån startar du de andra apparna en i taget, strikt inom de resurser hårdvaran har kvar.

Film · 0:58. Pulse och BlackBox på en NAS som kör fyra virtuella maskiner på tolv trådar: cockpit, omdömet om CPU-konkurrens, VM-fliken, D + Z-filtret, sedan dagens heat map. Pulse · BlackBox · ägarens NAS, skrivskyddad (read only)

03Gren 2: D-lägen och dolda flaskhalsar

Ibland är problemet inte en överbelastad CPU eller brist på RAM. Systemet kan stanna upp med en processor som är långt ifrån fullbelastad när processer hamnar i oavbrytbar sömn, D-läget. Med Workbenchs egna ord har en process i tillstånd D fastnat i väntan på I/O från kärnan (disk, ett nätverksfilsystem, en drivrutin som har hängt sig) och kan inte ens dödas förrän denna I/O är slutförd. Många processer i D betyder att de köar, oftast bakom långsam disk-I/O, och enheten fryser.

Köbildningen gör mest skada när NAS:en kör virtuella maskiner (Virtualization Station, KVM). Om resurserna fördelas dåligt där syns det som tappade nätverkspaket och långa I/O-fördröjningar.

  • Pulse visar Processes in D-state (I/O) så snart en process är i D och markerar det som kritiskt när de är fler än två. På fliken Processes visar D + Z endast de fastnade (D) och zombie (Z)-processerna samt deras överordnade processer (parents).
  • BlackBox registrerar NAS:ens tillstånd var 20:e sekund från det ögonblick paketet körs; det finns inget du behöver slå på. Det lagrar CPU-belastning, iowait och klockfrekvens per kärna, load, run queue och Blocked (D); använt och tillgängligt minne, page cache, swap och OOM kills; nätverkstrafik, förlorade paket (drops) och TCP-omtransmissioner per gränssnitt; await, ködjup och utnyttjande (utilisation) per disk; temperaturer och fläktar; och för varje VM dess CPU, vCPU:er, minne och disk-I/O. Varje mätning från 20-sekundersintervallet sparas i ett dygn, därefter sparas sammanfattningar per minut i en vecka, per fem minuter i en månad och per timme i ett år.
  • Två olika D-räkningar. BlackBoxs Blocked (D) är kärnans egen räkning av blockerade uppgifter (tasks); Pulse räknar de processer det ser i läge D. De behöver inte stämma överens.
  • iowait, inte PSI. QNAP:s kärnor är byggda utan pressure stall information, så Workbench mäter I/O-fördröjning som iowait.
Pulse, D + Z. På den här NAS:en står det Processes in D-state (I/O) i titelfältet, filtret visar bara den enda processen i D och zombieprocesserna, och cockpiten ovanför visar att minnet är nästan fullt och att 15,2 av 29,3 GB swap används.

04CPU-allokering: pCPU, lCPU och vCPU

Innan du ger en VM resurser bör du känna till topologin:

  • pCPU (physical CPU): de fysiska kärnorna i NAS-processorn.
  • lCPU (logical CPU): de kärnor som operativsystemet ser, inklusive Hyper-Threading. Hyper-Threading dubblar inte prestandan; som en tumregel lägger det till cirka 30 % genomströmning.
  • vCPU (virtual CPU): de virtuella kärnor som tilldelas VM:arna.

Pulse räknar logiska CPU:er: när det står 12 cores på en sexkärnig, tolvtrådig Xeon W-1250 är det alltså trådar.

Överabonnemangsfällan. Att ge 128 vCPU:er till VM:ar på en 32-kärnig processor förutsätter att de aldrig belastas för fullt samtidigt. När de väl gör det hinner inte hypervisorn schemalägga vCPU:erna tillräckligt snabbt, och VM:arna avstannar i väntan på CPU-tid, vilket inne i ett gästsystem visar sig som steal time (stulen tid). Pulse rapporterar det från värdsidan (host):

  • vCPU over-subscription (information) när de körande VM:arna har fler vCPU:er än NAS:en har logiska CPU:er;
  • VMs contending for CPU (varning) när värden dessutom är över 75 % upptagen eller dess run queue är längre än antalet trådar. Anmärkningen på den här NAS:en: 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 mäts inuti gästen. På NAS:en är värdet avsiktligt noll; Workbenchs egen anmärkning säger att du inte kan se en gästs steal från värden. Bedöm resurskonflikten (contention) på NAS:en genom antalet vCPU:er i förhållande till trådarna, den procentuella belastningen (busy) och run queue, och läs av steal inuti VM:en (st-kolumnen för top eller vmstat i en Linux-gäst).
Pulse, CPU. VM contention, 17 vCPU:er på 12 logiska CPU:er, run queue är högre än trådantalet, varje CPU är upptagen till nästan 90 %, och steal-kolumnen visar 0 % på värden, precis som den ska göra.

05Att observera de virtuella maskinerna

Workbench har ingen agent som du installerar i en VM. Det mäter den NAS som det körs på, och det omfattar de virtuella maskiner som NAS:en kör:

  1. Öppna Pulse, VM-fliken: varje körande VM med dess vCPU:er, CPU%, minne, RSS, tillstånd och process-ID, samt titelraden Hosting 4 VM(s), 17 vCPUs.
  2. Öppna BlackBox (Start-menyn → Monitoring), växla till Heat map och aktivera spåret Virtual machines: varje VM:s CPU-användning över dagen, bredvid temperaturerna och diskarnas await. Dess diagram behåller också varje VM:s vCPU:er, minne och disk-I/O, samt när varje VM startades och stoppades.
  3. Om du vill följa en VM:s nätverksanslutning lägger du till dess adress i BlackBox under Settings → Monitored hosts. BlackBox registrerar då svarstiden (round trip) och paketförlusten (packet loss).
  4. Inuti VM:en observerar du dess steal time med gästens egna verktyg.

Fönstret Virtual Machines · LOCAL (Local NAS → Virtual Machines) visar varje VM:s konfiguration från Virtualization Station: dess vCPU:er, topologi, CPU-set, CPU-modell, diskar och nätverkskort. När du öppnar fönstret körs QNAP:s egna diagnostiska dumpar, och resultatet hamnar i Workbenchs cache; ingen inställning ändras.

Pulse, VM. Fyra VM:ar, totalt 17 vCPU:er; den med 8 vCPU:er använder mer CPU än fem kärnor motsvarar. Flikens märke visar: 17 vCPU / 12 cores, överabonnemang (over-subscribed).

06Att läsa graferna: de kritiska tillstånden

  • Högt D-läge och I/O-fördröjning. Processer väntar på diskarna. BlackBoxs veckorapport kallar det Processes waiting on storage (en iowait vid 95:e percentilen på 20 % eller mer är en varning, 40 % eller mer är kritiskt) och pekar ut den disk som belastas mest; Slow array member flaggar en disk vars await är dubbelt så hög som de andra diskarnas i arrayen och minst 50 ms (kritiskt vid 200 ms), och Disk with no headroom markerar en disk som är 90 % upptagen eller mer under två timmar. Författarens råd: flytta VM:en till en SSD-volym, kontrollera diskarnas hälsa (prestandaguiden) och säkerställ att ingen annan process överbelastar RAID:en.
  • Många processer i CPU-kö (CPU queueing). NAS:ens processor är överabonnerad: Pulse säger VMs contending for CPU, och varningen Virtual machine hogging the host i veckorapporten uppmärksammar en VM som använder 150 % av en kärna eller mer (300 % är kritiskt). Tilldela färre vCPU:er till VM:arna: börja med en eller två per VM och lägg till fler bara när gästen behöver dem.
  • Termisk strypning (Thermal throttling). En hög CPU-temperatur, följt av en lägre klockfrekvens och längre fördröjningar, innebär att processorn överhettas. Veckorapporten kallar detta CPU thermal throttling: en kärna körs på 60 % eller mindre av sin egen vanliga klockfrekvens medan CPU:n belastas till minst 60 %. På heat mapen är 65 °C gult och 80 °C rött. Workbenchs egna råd: gör rent kylflänsen, fläktarna och luftintagen från damm, kontrollera att fläktarna snurrar, och förbättra luftflödet eller sänk rumstemperaturen; en högre fläkthastighet i QTS hjälper också.
BlackBox, heat map, 24 timmar. Kärnorna och processorpaketet tillbringar en stor del av dagen vid 80 °C eller mer (rött), diskarnas await har toppar här och där, och spåret för de virtuella maskinerna börjar nedanför. Spåret för host round trips är avstängt på den här bilden.

07KVM: god praxis för CPU-modellen

  • Host / passthrough (rekommenderas): ger VM:en själva NAS-processorn, med alla instruktionsuppsättningar som den har (till exempel AVX). Det ger bäst prestanda och minst overhead på en enskild NAS.
  • En emulerad modell (en generisk Intel- eller AMD-CPU): döljer värdens processor. Detta är användbart i ett kluster för att flytta körande VM:ar mellan fysiskt olika värdar; på en enskild NAS kostar det bara prestanda.

Fönstret Virtual Machines · LOCAL visar CPU-modellen som varje VM har tilldelats (till exempel Westmere) och dess topologi; Workbench bedömer inte valet.

08Grundläggande kunskap: resursöverabonnemang (overcommit)

Så undviker du att dränka VM-prestandan när NAS:en arbetar vid gränsen för vad den klarar. Förhållandet mellan vCPU:er och fysiska kärnor (pCPU) är det första som är värt att räkna på:

Överabonnemang: vinster, risker och råd (Hyper-V, VMware, Citrix)
ResursVinstRiskRåd
CPU (vCPU : pCPU)fler VM:ar, billig marginal för korta spikarvid överbelastning saktar steal och köer ner varje VMproduktion 2:1–4:1, kritiska VM:ar upp till 2:1; värden under 80 %
RAM (ballooning, Dynamic Memory)minne flyttas medan VM:arna körs, bra för vilande VM:arom värden börjar swappa leder det till en drastisk prestandasänkninglåt aldrig värden swappa aktiva sidor; reservera minne för kritiska VM:ar
Lagring (thin)sparar plats, diskar skapas på ett ögonblicken full datastore stoppar VM:arna omedelbartvarningar vid 75–85 %; återta utrymme (UNMAP); kritiska data hellre thick

Allmän regel. Överabonnemang är säkert vid en lätt, ojämn belastning om man har en aktiv övervakning, men farligt under belastningstoppar utan marginal. Håll en reserv.

Tips

  • Börja med 1 vCPU per VM och lägg till fler först när belastningen kräver det. Fler vCPU:er än nödvändigt innebär bara mer overhead för schemaläggaren, inte högre hastighet.
  • Räkna fysiska kärnor, inte trådar. Ge inte VM:arna tillsammans fler vCPU:er än värden har kärnor.
  • Håll värdens CPU under 80 %. Över 90 % konkurrerar VM:arna om CPU-cykler och steal-värdet växer inuti gästsystemen.
  • Läs av top i gästen: %wa indikerar väntan på I/O (en disk-flaskhals), %st är steal (för mycket överabonnemang), %id är ledig kapacitet.
  • Högt %wa? Snabbare lagring eller en SSD. Högt %st? Färre vCPU:er eller färre VM:ar.
  • VirtIO för disk och nätverk, som är mycket snabbare än emulering. PCIe eller GPU passthrough endast när det verkligen krävs: enheten tillhör då en enda VM.

En VM-ögonblicksbild (snapshot) är inte en backup

En ögonblicksbild sparar bara skillnaden från sin startpunkt (ändringarna på diskarna, och med sparat tillstånd även minnet). Skadas startpunkten eller snapshot-kedjan blir även ögonblicksbilderna oanvändbara. För verkligt skydd säkerhetskopierar du hela VM-avbildningar: med en export, med HBS eller på ett separat medium.