Testování paměti: memtester

Před uvedením hardwaru do provozu můžete chtít otestovat jeho funkčnost. V případě pamětí RAM doporučujeme použití diagnostického nástroje memtester. Setkat se můžete i s dalšími nástroji, například s nástrojem memtest86+. Výhodou použití memtesteru je, že dokáže ve spolupráci s dalšími nástroji poskytnout detailní informace o zjištěných chybách.

Nabootovat Ubuntu z flash disku

Vytvořte si bootovací flash disk Ubuntu. Použít můžete například nástroj unetbootin, nebo si stáhněte Ubuntu Desktop a zkopírujte na flash disk pomocí dd.

Nabootujte z flash disku a vyberte možnost 'Try Ubuntu'.

Nainstalujte potřebné balíčky

Nejdříve je potřeba editovat seznam repozitářů a updatovat index.

  • Otevřete v editoru sources.list: editor /etc/apt/sources.list
  • Smažte řádek deb cdrom:[...]
  • Na konec řádku, kde je název aktuálního vydání Ubuntu (tj. xenial, yakkety apod.), přidejte slovo 'universe'
  • Obnovte index: apt-get update

Nainstalujte balíčky příkazem:

  • apt-get install mcelog openssh-server memtester edac-utils

Kromě memtesteru se vám nainstalují balíčky mcelog (loguje zjištěné hardwarové chyby) a edac-utils (detekce poruch ECC a dalších chyb). Openssh-server je potřeba pro zajištění přístupu přes SSH – k čemu je to dobré je popsáno níže.

Zkontrolujte, že mcelog běží a log je v pořádku: systemctl status mcelog. V případě chyb "mcelog: Warning: cpu 0 offline?, imc_log not set" zaveďte do jádra modul msr: modprobe msr && systemctl restart mcelog (viz 1, 2).

Přihlaste se na testovaný stroj přes SSH

Tím, že se na testovaný stroj přihlásíte odjinud a testovat budete přes SSH, uvidíte výstupy na konzoli i v případě kritického selhání. Aby bylo možné přihlásit se jako root, je potřeba nastavit mu heslo a povolit to (tj. v souboru /etc/ssh/sshd_config změnit volbu 'PermitRootLogin' na 'yes'). To lze udělat spuštěním těchto příkazů:

  • sudo passwd
  • sed -i 's/^\(PermitRootLogin\).*/\1 yes/' /etc/ssh/sshd_config
  • systemctl reload sshd

Přihlaste se na stroj přes SSH. Tip: Pokud zrovna u sebe nemáte další počítač, můžete se z testovaného stroje přes SSH přihlásit na nějaký jiný, na který máte přístup. Na tomto jiném stroji spusťte screen (emulátor terminálu) a ze screenu se potom přihlaste zpátky na svůj testovaný stroj. Pokud by se něco pokazilo, můžete se kdykoli a odkudkoli přihlásit na stroj, na kterém běží screen a spustit screen -r, čímž se vrátíte ke svojí virtuální obrazovce. Případně můžete screen spustit s volbou -L, čímž zapnete logování do souboru screenlog.0.

Zastavte všechno, co nemusí nutně běžet, a uvolněte paměť

Pozor! Pokud pracujete na testovaném stroji lokálně, nejprve se přepněte do textové konzole, protože init 3 vypne grafické prostředí. To lze udělat stlačením Ctrl+Alt+F2 nebo zadáním příkazu sudo chvt 2.

  • init 3
  • systemctl stop avahi-daemon cups-browsed [...]
  • echo 3 > /proc/sys/vm/drop_caches

Otestujte paměť

Nejdříve zjistěte, kolik máte dostupné paměti:

  • free -h, sloupec available.

Jiná možnost, jak to zjistit, je pokusit se spustit memtester s větším množstvím paměti, než může dostat, a ve výpisu najít, kolik jí může dostat ('want' bude požadované množtví, 'got' bude to, kolik může reálně dostat).

Spusťte testování. Doporučujeme nechat si nějakou rezervu (cca 1 GB), tj. nezabrat veškerou dostupnou paměť:

  • date; memtester 499G; date

Upozorňujeme, že testování bude běžet donekonečna, respektive dokud ho nezastavíte. Případně můžete omezit počet iterací (příkazem memtester 499G 3 ho omezíte na 3).

Případné chyby vypíše memtester nebo do konzole zaloguje mcelog. Na závěr můžete zkontrolovat výstupy příkazů edac-util a dmesg.

Odpovědný kontakt: unix(atsign)fi(dot)muni(dot)cz