Hur man korrekt testar RAM på QNAP-servrar med MemHound
Att testa RAM på ett operativsystem som är igång (userspace) är en teknisk utmaning. Operativsystemet, virtualisering och cachningstjänster (framför allt ZFS ARC) reserverar ständigt adressutrymme och blockerar åtkomsten till det.
MemHound, fönstret Memory Doctor i StorageDiag Workbench, arbetar sig uppför en upptrappningsstege: Quick → Standard → Deep → Hammer → Boot. Det låser allt ledigt RAM som det får ta, minus en marginal på 256 MB, skriver testmönster i det och läser tillbaka dem. Varje block hålls kvar tills genomgången är slut, så att kärnan måste lämna över varje ledig sida. Nedan ser du hur du kontrollerar minnesstabiliteten för din konfiguration och ditt filsystem.
- Quicksnabb genomgång, NAS:en fortsätter att fungera
- Standardrörliga inversioner, NAS:en fortsätter att fungera
- Deepstoppar tjänster, frigör ARC
- Hammerrow-hammer på varje kärna
- BootUSB-minnet, utanför NAS-systemet
01Daglig diagnostik på QTS (ext4)
Med ett traditionellt filsystem (ext4) reserverar QTS inte stora mängder RAM för sig självt, så det är enklare att göra ett tillförlitligt test från det system som är igång. Minnesfel visar sig ofta i användarutrymmet, vilket gör regelbundna snabbtest effektiva.
- Stäng av icke-kritiska nätverkstjänster (Samba, NFS, AFP).
- Stoppa resurskrävande appar i App Center (HDMI-skrivbordsstationer, containrar, virtuella maskiner) och låt endast StorageDiag vara igång. Ha en enda webbläsarflik öppen mot NAS:en.
- Med cacharna frigjorda och tjänsterna stoppade är det mesta av det fysiska RAM-minnet ledigt för testet. Kortet Quick är märkt
DAILYnär minst 90 % av RAM-minnet är ledigt. - Kör Quick-testet. Det är snabbt eftersom det kör två mönster efter en adresskontroll och hoppar över den cache-rensning per rad som Standard använder. Ställ in 1 till 3 genomgångar (fältet Passes tar 1 till 16 och börjar på 1). Om minnet som testet når har ett hårdvarufel hittar testet det nästan direkt.
02Diagnostik på QuTS hero (ZFS)
Filsystemet ZFS använder ARC (Adaptive Replacement Cache), vilket kan ta upp det mesta av det tillgängliga RAM-minnet. I det här fallet täcker ett vanligt Quick-test bara en bråkdel av minnet.
- Välj Deep-testet istället för Quick.
- När du bekräftar (Stop services & test) stoppar MemHound NAS-tjänsterna och App Center-apparna (webbpanelen fortsätter att fungera), tömmer ZFS ARC och kärnans cachar. Det frigör det mesta av det fysiska minnet för testet: på en 128 GB TS-1288X ökade det tillgängliga minnet från 96,6 GB till 116,9 GB.
- Arbetsflöde: en Quick-genomgång över det frigjorda RAM-minnet körs först. Om den hittar fel avslutas proceduren tidigt, vilket sparar tid. Om den inte hittar några går verktyget vidare till Standard-genomgången.
- Nedtid: tjänsterna förblir nere medan de stoppas och medan båda genomgångarna körs, och en Standard-genomgång över mycket RAM kan ta timmar. De startar av sig själva när testet är klart, när du avbryter det, om testprocessen dör, och senast två timmar efter start. Om det enbart tar mer än 30 minuter att stoppa tjänsterna avbryts testet och allt återställs.
03Absolut testning (Rescue-läge / offline)
När kärnloggen (klog) pekar på instabilt minne (spontana segfaults i flera program, call traces, machine checks eller EDAC-fel) men testerna från det system som är igång (Quick, Deep) slutar med PASS, går du över till en isolerad miljö. Den förbigår NAS:ens operativsystem helt.
Alternativ A: ett startbart USB-minne (rekommenderas)
USB-minnet byggdes så att hela testet körs av sig självt, även på enheter du inte kan ansluta en skärm och tangentbord till. Inget kräver en knapptryckning. Startposten gör USB-minnet till standard för nästa omstart, testet startar av sig självt, och det rapporterar sina framsteg på NAS:ens egen adress, som MemHound-fönstret läser åt dig. Efter ett PASS startar NAS:en om till QTS av sig själv och fönstret visar omdömet; efter ett minnesfel stänger testet av NAS:en (se nedan). En skärm och ett tangentbord behövs bara när den fasta programvaran (firmware) inte kan ta emot startposten och USB-minnet måste startas från enhetens startmeny.
- Klicka på Create bootable USB i titelfältet i MemHound-fönstret.
- Sätt i ett USB-minne som är större än 192 MB i en USB-port på QNAP:en. Allt på det raderas, och dess nuvarande formatering spelar ingen roll.
- Klicka på Update the image när guiden erbjuder en nyare version (Download the image första gången), följ sedan anvisningarna: Continue, skriv in enhetsnamnet, Erase and write, Add the boot entry.
- Starta om servern från det förberedda diagnostik-USB-minnet (Restart now and test). När NAS:en är tillbaka visar fönstret omdömet.
USB-minnet startar endast x86-enheter: en ARM-enhet kan inte starta den generiska avbildningen.
När testet vid uppstart inte går som planerat
- NAS:en startar inte testet från USB-minnet. Add the boot entry lägger en fil,
grub/custom.cfg, på NAS:ens egen startpartition. Vid uppstart letar NAS:ens starthanterare (GRUB) efter en volym med namnetMEMHOUNDoch startar den när den hittar en. GRUB ser ett USB-minne endast genom den fasta programvarans egna USB-stöd, så NAS:en startar QTS som vanligt när den fasta programvaran inte presenterar USB-minnet vid uppstart (vissa billiga USB-minnen eller minnen av låg kvalitet gör inte det), när USB-uppstart är avstängt i den fasta programvarans inställningar, eller av en anledning som den fasta programvaran inte visar. Prova ett annat USB-minne, en USB-port på baksidan, eller starta USB-minnet från enhetens startmeny (F11, eller den tangent som den här modellen använder, vid uppstart). Guiden säger This firmware cannot be given a boot entry när starthanteraren inte läser filen alls, och The boot entry here is an old one när en tidigare version skrev den (Replace the boot entry). Ett USB-minne vars test redan har körts startas inte igen: skriv det på nytt med Create bootable USB för att testa en gång till. - NAS:en stängde av sig själv och kom inte tillbaka. Det är vad testet gör när det hittar ett minnesfel: det stänger av NAS:en avsiktligt, så att inget skriver till diskarna med minne i det tillståndet, och det startar inte om den. Ett test som godkänns startar istället om NAS:en till QTS. En NAS som stängde av sig själv under uppstartstestet och förblev avstängd pekar därför på ett minnesfel. Detaljerna finns på USB-minnet (FAT32, namn
MEMHOUND): läs/memhound/report-<time>.txtochmap-<time>.jsonpå valfri dator, eller anslut USB-minnet till en fungerande NAS som kör StorageDiag Workbench och öppna MemHound, som läser det själv.
Alternativ B: Rescue-läge (utan konfigurerade diskar) över SSH
Om du föredrar att arbeta på distans och kan grunderna i kommandoraden ger det här läget ett fullständigt test utan USB-minne.
- Logga in på QNAP-servern via SSH.
- I textmenyn (QTS Console Management) väljer du att starta om servern i Rescue-läge (utan konfigurerade diskar).
- Efter omstarten hittar Qfinder servern som ”uninitialized”. Det är väntat.
- Aktivera SSH från Qfinder. Logga in som
admin(på QTS 5.2 och senare är standardlösenordet cloud-lösenordet; på äldre versioner är det den fullständiga MAC-adressen i versaler utan kolon). - Ladda ner och packa upp MemHound med det första blocket nedan och starta sedan testerna i textläge med det andra.
Följ inte initierings- eller återställningsskärmen i webbläsaren: använd endast Qfinder. Rescue-läget kräver ett DHCP-nätverk med internetåtkomst.
# Ladda ner och packa upp MemHound
arch=$(uname -m)
[ "$arch" = armv7l ] && arch=armhf
wget https://www.qnaputilities.com/pub/memhound/bin/memhound.tar.gz
tar zxvf memhound.tar.gz
chmod +x memhound-*
# Quick-test med 2 genomgångar (rekommenderad startpunkt) ./memhound-$arch --quick --passes 2 --ui # Standard-test (efter ett Quick PASS med End reason : completed) ./memhound-$arch --standard --ui
Quick kontrollerar adresserna först och skriver sedan ett schackbräde och en slumpmässig moving inversion. Standard upprepar de två mönstren och lägger till elva till, allt i en körning, och gör en genomgång om du inte lägger till --passes. När textgränssnittet stängs skriver MemHound ut en sammanfattning på engelska. Fortsätt till Standard när det står Verdict : PASS och End reason : completed: en körning som avbröts på grund av minnesbrist (memory pressure) säger fortfarande PASS, med End reason : aborted: …. Avsnitt 04 förklarar de andra omdömena.
04Hur man tolkar resultaten
MemHound fattar beslut utifrån fasta regler, och reglerna beror på testet. Quick, Standard, Deep och Hammer letar efter fel i det minne de når. Benchmark and Quality, längre ner, kvalificerar ett helt minnes-kit.
Quick, Standard, Deep och Hammer
- Hårda och övergående fel (Hard and transient). En enda felaktig läsning dömer inte ut en modul. MemHound räknar det som övergående: kartan markerar det som Suspect och textsammanfattningen säger
PASS_WITH_TRANSIENTS. Ett fel blir hårt när en senare kontroll misslyckas igen på samma adress i MemHounds eget minne (den virtuella adressen; den fysiska skrivs ut bredvid somp=), som standard efter två träffar (--hard-threshold 2). Alla hårda fel ger omdömetFAIL. - Vad Workbench-fönstret säger. Dess statusrad räknar båda typerna, till exempel FAIL — 0 hard fault(s), 1 transient. Finns det inget hårt fel upprepar du testet offline (med USB-minnet eller i Rescue-läge) innan du skyller på en modul: guiden i appen ser ett resultat med bara övergående fel som ett skäl att testa om offline, aldrig som ett skäl att returnera modulen (RMA). Textsammanfattningen tillägger att sådana resultat kan tyda på strömförsörjningen, värme eller timings på gränsen.
- ECC-räknare och kärnloggen. ECC-räknarna (EDAC) och kärnloggens händelser visas bredvid resultatet, och sammanfattningen lägger till
<== HARDWARE ECC ERRORS DURING TESTnär en räknare ökade. De ändrar inte omdömet, så du måste kontrollera dem själv. - Hur körningen slutade. Sammanfattningen slutar med
End reason:completed,stopped by userelleraborted: …. En körning som inte slutade medcompletedtestade inte allt som var tänkt, oavsett vad omdömesraden säger.
Bra att veta: Benchmark and Quality
Knappen Benchmark and Quality i MemHounds titelfält mäter uthållig minnesbandbredd mot JEDEC-siffran för de installerade modulerna, kontrollerar latensjitter och underkänner vid minsta bitfel. Dess omdöme är PASS (eller PASS-UNQUALIFIED), MARGINAL, FAIL eller INCONCLUSIVE, och dess regler är strängare än felsökningens.
Ett klick på knappen startar körningen direkt, utan någon fråga. Den första körningen kan inte avbrytas, och som standard publiceras dess resultat på den offentliga RAM-tavlan.
- Fel. Ett bitfel, ett okorrigerat ECC-fel (UE) eller en kritisk kärnhändelse som loggats under körningen ger omdömet FAIL. Kritiska händelser är en machine check eller ”Hardware Error”, ett okorrigerat minnesfel, en memory failure, datakorruption eller en kernel panic. Ett korrigerat ECC-fel (CE) begränsar omdömet till MARGINAL: modulen fungerar, men kittet kan inte certifieras. Segfaults, call traces, Oops och OOM-dödningar visas men ändrar inte omdömet.
- Ett matchat kit. Testet kvalificerar ett matchat kit. Testet underkänns redan vid spärren (gate) när modulerna skiljer sig åt (efter artikelnummer, eller efter storlek, hastighet, typ och ECC när DMI inte anger artikelnumret), när det finns 3 moduler eller ett udda antal över 4, eller när kanalerna A och B har olika kapacitet. Körningen fortsätter för information, men omdömet är FAIL, och resultatet varken sparas eller delas. När DMI inte rapporterar något hoppas spärren över.
- En upptagen NAS. När bandbredden är för låg (FAIL eller MARGINAL) eller latensjittret misslyckas medan NAS:en är upptagen (en 1-minutsbelastning över 0,6 per CPU), har ont om minne (under 40 % ledigt vid starten) eller stryps, är omdömet INCONCLUSIVE: det är systemets tillstånd som är orsaken, inte modulerna. En körning som stoppas av dig eller av minnesskyddet är också INCONCLUSIVE. Bitfel, UE, kritiska kärnhändelser, mönsterfel, bit fade och kit-spärren mildras aldrig på detta sätt.
05RAM i en NAS, god praxis och hårdvaruegenskaper
Innan du skyller på diskarna eller nätverket för långsamma överföringar hjälper det att veta vad som är speciellt med minne i en NAS. NAS-minne är inte minne för en speldator. En NAS är igång dygnet runt under en jämn belastning: systembuffertar, ZFS-cachen (ARC), virtuella maskiner och containrar. Vad den behöver av minnet är stabilitet och kompatibilitet, inte rekordhöga klockhastigheter. Den tolererar också fel sämre än en stationär dator: lång drifttid och en konstant belastning lockar fram sällsynta fel som frekventa omstarter skulle dölja på en PC.
"Det fungerar" är inte "stöds"
- Bortom specifikationerna. En NAS startar ofta med mer minne än processortillverkarens officiella gräns, till exempel 32 GB i ett system vars angivna maximum är 16 GB.
- Stabilt vid första anblicken. En sådan konfiguration klarar oftast starttestet (POST), rapporterar sin fulla kapacitet och fungerar bra i vila. Felen dyker upp under en lång, tung belastning.
- Tillverkarens support. När något går fel kan QNAP:s support neka hjälp tills felet bekräftas på originalmodulerna som stöds. Spara originalmodulerna ifall du behöver skapa ett supportärende.
Att blanda moduler: vad du ska undvika, och varför
Blandade moduler gör inkompatibilitet och instabilitet mycket mer sannolika.
- Olika tillverkare eller hastigheter. Modulerna har olika SPD-profiler och sub-timings, och minneskontrollern måste ställa in (träna) alla efter det som de har gemensamt, oftast den långsammaste gemensamma JEDEC-profilen.
- En tredje modul. Att lägga till en modul till ett par bryter dual-channel-symmetrin: en del av minnet körs i det långsammare single-channel-läget, och den extra modulen ökar den elektriska belastningen på bussen. Tre moduler kan ge mindre bandbredd och mer latens än två matchade. MemHounds Benchmark and Quality vägrar att kvalificera tre moduler, eller något udda antal över fyra, av den anledningen.
- ECC med non-ECC. Blanda aldrig felkorrigerande (ECC) moduler med vanliga (non-ECC) moduler.
Dual channel och rollen för ECC
- Dual channel. Ett matchat par av identiska moduler (samma kapacitet, hastighet, timings och rank-organisation) är det stabila valet och använder båda kanalerna samtidigt, en 128 bitar bred väg. I verklig användning är vinsten oftast 1,2× till 1,5×. Det spelar roll vid minnestungt arbete som videotranskodning, där den integrerade GPU:n delar minnesbandbredden med processorn. För enkel fildelning är vinsten liten: nätverket och diskarna sätter gränsen där.
- ECC och ZFS. ECC-minne korrigerar enbitsfel när de inträffar och upptäcker tvåbitsfel. Det spelar störst roll på QuTS hero: ZFS verifierar kontrollsummorna för det den läser från diskarna, men den litar på det som finns i minnet. En bit som slår om i RAM-minnet innan dess kontrollsumma beräknas skrivs till disk med en giltig kontrollsumma, som om den vore korrekt, och stannar där.
- Vad ECC kräver. ECC beror på processorn och moderkortet. På konsumentplattformar utan ECC-stöd, till exempel många Intel Celeron- och Pentium-processorer, kan ingen inställning slå på det.
Symptom på dåligt minne
Innan du skyller dålig prestanda på diskarna bör du se hur NAS:en beter sig. Dåligt eller inkompatibelt minne visar sig som:
- ingen start alls, eller omstarter om och om igen, direkt efter att minnet har bytts ut;
- NAS:en hittar mindre minne än vad som är installerat;
- slumpmässiga frysningar eller spontana omstarter;
- på plattformar med ECC, okorrigerade fel (machine checks, EDAC UE) i kärnloggen, vilket är bevis på ett hårdvarufel. Ett enstaka korrigerat fel är det inte (Workbenchs egen guide till machine checks: Don't panic at a single corrected event), men korrigerade fel som fortsätter komma från en modul pekar på den.
OOM-fel
Kärnans OOM-dödare (Out Of Memory) avslutar processer när en begäran om minne inte kan tillgodoses, för att hålla själva systemet igång. Oftast betyder det för lite minne för det som körs, eller överbelastat minne, inte en felaktig modul. Det kan hända medan resursövervakaren (Resource Monitor) fortfarande visar gott om ledigt minne, eftersom ledigt inte är detsamma som användbart för just den begäran:
- begäran kan behöva ett sammanhängande block, och ledigt minne som är utspritt i små bitar räcker inte till för den;
- en container eller app kan ha nått sin egen minnesgräns, oavsett vad NAS:en som helhet har ledigt;
- minne som hålls av ZFS ARC, huge pages eller låsta sidor lämnas inte över direkt;
- och på felaktig hårdvara tar kärnan sidor ur bruk efter minnesfel (
Memory failurei kärnloggen), och om systemet inte känner av en modul fullt ut får det mindre minne att arbeta med.
Håll därför ett öga på det tillgängliga (available) minnet snarare än det lediga (free) minnet, och testa minnet i alla fall. Varje MemHound-test kontrollerar adresserna först och rapporterar en adress som har fastnat innan något mönster körs, och Workbench sätter en varning på sin minnesikon när ett paket (bundle) visar OOM-dödningar eller ett blandat minnes-kit.
| Plattform | ECC | Moduler | Exempel på QNAP-modeller |
|---|---|---|---|
| Intel Celeron, Pentium (Jasper Lake, Gemini Lake) | nej | SODIMM DDR4 | Serierna TS-464, TS-264, TS-664, TS-x53 |
| AMD Ryzen Embedded V1500B, V1000 | ja | SODIMM DDR4 | TS-873A, TS-473A, TS-1273AU |
| Intel Xeon E, W | ja | UDIMM DDR4 | TS-883XU, TS-983XU, TVS-h1688X |
| Intel Atom C3000, C5000 | ja | SODIMM, UDIMM DDR4 | rackmonterade ingångsmodeller (entry-enterprise) |
| Intel Xeon D | ja | RDIMM DDR4 | ES2486dc |
| AMD EPYC | ja | RDIMM DDR4 | TS-h1290FX |
På en plattform utan ECC (till exempel en TS-464) slår ingen inställning på ECC. UDIMM-moduler är obuffrade; RDIMM och LRDIMM är registrerade (registered) och avlastar kontrollern, så att en kanal klarar fler moduler med stor kapacitet.
Exempel: TS-464, "det fungerar" är inte "stöds"
TS-464 har en Intel Celeron N5095 eller N5105 och två SODIMM DDR4-platser, utan ECC. Det officiella maxvärdet är 16 GB (2 × 8 GB), processorns egen gräns. I praktiken startar 2 × 16 GB (32 GB) och visar sin fulla kapacitet, men det är utanför Intels och QNAP:s specifikationer. Ett sådant minne kan klara uppstartstestet och fungera bra i vila, och ge fel först under en lång, tung belastning, så testa en ny konfiguration innan du litar på den.
| Vad du blandar | Vad som händer | Resultat | Råd |
|---|---|---|---|
| Olika tillverkare, olika kit | olika SPD-profiler, sub-timings, rank-organisation och DRAM-chip; kit valideras endast som ett set | minnet faller tillbaka till JEDEC-grundprofilen, möjlig instabilitet under belastning | ett kit från en låda |
| Olika hastigheter | kontrollern ställer in allt minne efter den lägsta gemensamma profilen | allt minne saktar ner till den långsammaste modulen (3200 + 2400 → 2400) | samma hastighet, latens och spänning |
| Olika kapaciteter (16 + 8 GB) | startar oftast med full kapacitet, men fullt dual-channel är inte säkert | osäker bandbredd; vissa modeller med platser i par startar inte | ett par av samma kapacitet |
| Tre moduler istället för två | bryter dual-channel-symmetrin och belastar en kanal | en del av minnet körs i single-channel; på AMD en lägre garanterad klockfrekvens | ett jämnt, matchat antal moduler |
| ECC med non-ECC | ett annat ordformat | systemet stänger av ECC eller startar inte alls | endast en typ |
Kan tre moduler vara långsammare än två? Ja, framför allt på AMD. En Ryzen-minneskontroller sänker sin garanterade klockfrekvens med antalet moduler och ranker per kanal: DDR4 3200 med en modul per kanal, 2933 med två single-rank, 2666 med två dual-rank. Fler moduler ger mer kapacitet och mindre bandbredd. När en uppgift får för lite minne är mer kapacitet ändå bättre än att minnet tar slut och systemet börjar swappa.
| App | Känslig för | Vad man ska hålla koll på |
|---|---|---|
| Virtualization Station | kapacitet och bandbredd | värden (host) behåller ca 1,5–2 GB för sig själv; vid minnesbrist använder värden swap och varje VM saktar ner samtidigt |
| Container Station | kapacitet | tunga stackar (Nextcloud, Immich, databaser) behöver ca 16 GB |
| QuTS hero (ZFS, ARC) | kapacitet | minst 8 GB, 16 GB för deduplicering, 32 GB och mer rekommenderas; hög användning av ARC är normalt, inte ett fel |
| QuMagie, Qsirch | kapacitet | indexering kan ta mycket minne |
| Transkodning, iGPU | bandbredd | dual-channel hjälper grafiken; själva transkodningen via Quick Sync påverkas lite av antalet kanaler |
God praxis i korthet
- Ett matchat par identiska moduler: samma kapacitet, hastighet, timings och rank-organisation. Det ger full dual-channel och stabilitet.
- Behåll originalmodulerna. Innan du skapar ett supportärende sätter du tillbaka fabriksmodulerna och kontrollerar om problemet kvarstår.
- Testa efter en uppgradering, framför allt utöver det officiella maxvärdet: Quick först, sedan Deep eller USB-minnet.
- Kontrollera den upptäckta kapaciteten i Resource Monitor: mindre än installerat innebär en inkompatibel eller dåligt isatt modul.
- Ett jämnt antal moduler av samma kapacitet. Vissa modeller startar inte med ett omatchat par.
- Fler kanaler är inte alltid snabbare. För fildelning sätter nätverket och diskarna gränsen; integrerad grafik, virtuella maskiner och ZFS känner av dual-channel mest.