A rendszer stabilitásának ellenőrzése

Terméktámogatási adatbázis (hmeyer_memtest-sig11)

Kérés

Szeretnénk megbizonyosodni arról, hogy a Linux stabilan fut az adott hardveren.

Eljárás

Feltételezzük hogy telepítettük a rendszermag forrását és a szükséges fejlesztői eszközöket (pl. a fordítót), ezután ellenőrizhetjük a rendszer stabilitását a következő kicsiny szkripttel:

#!/bin/bash
#
# Adapted from http://www.bitwizard.nl/sig11
#
#set -x

cd /usr/src/linux

t=1
while [ -f log.$t ] 
  do
  t=`expr $t + 1`
done

if [ ! -r .config ]; then
  echo -e
  echo -e "There was no .config file found in /usr/src/linux ."
  echo -e "This means that the kernel sources have not been configured yet."
  echo -e "If you continue, \"make cloneconfig\" will be executed to create"
  echo -e "a kernel configuration based on the currently running kernel."
  echo -e "\n"
  echo -e "Press <Ctrl>-<C> to abort or <ENTER> to continue ..."
  read
  make cloneconfig
fi

touch log.1
watch "ls -lt log.*" &

while true
  do
  make clean &> /dev/null
  make -k bzImage > log.$t 2> /dev/null
  t=`expr $t + 1`
done

A szkript eredeti verziója az alábbi címen található: http://www.bitwizard.nl/sig11. Itt néhány háttérinformációt is olvashatunk a teszttel kapcsolatban.

A teszt előnyei más módszerekkel (pl, memtest86) szemben:

  1. A teljes rendszer tesztelésre kerül, nem csak a RAM
  2. A rendszer működőképes marad a teszt futása közben is

A szkript egy végtelen ciklusban fordítja a rendszermagot (make bzimage) és menti a make kimenetét egy külön naplófájlba (amely egyre nő) minden egyes futáskor.

Normál esetben minden egyes futás ugyanazt a kimenetet kell eredményezze.

Amíg fut, a szkript folyamatosan frissülő információkat ad, amelyek az alábbi paranccsal nézhetők meg:

ls -l /usr/src/linux/log.*

It could look like this:

Every 2s: ls -lt log.*               Wed Aug  8 15:22:02 2001 
-rw-r--r--    1 root     root         5472 Aug  8 15:22 log.4
-rw-r--r--    1 root     root       127120 Aug  8 15:21 log.3
-rw-r--r--    1 root     root       127120 Aug  8 15:12 log.2
-rw-r--r--    1 root     root       127120 Aug  8 15:04 log.1

Ebben a példában az első három alkalommal teljesen végrehajtódott a szkript. Jó jel, ha a fájlméret nem különbözik. Mindenesetre a legbiztosabb módszer ha a tesztet 24 órán keresztül futtatjuk. Jobb módszer a fájlméretek összehasonlításánál az md5sum ellenőrzőösszegek használata:

linux:/usr/src/linux # md5sum log.*
51e25c01370ce034b2c00d4c71995f02  log.1
51e25c01370ce034b2c00d4c71995f02  log.2
51e25c01370ce034b2c00d4c71995f02  log.3
a014cc76b1fb46a3cc5b84484403a1b7  log.4

Nem meglepő, hogy a negyedik naplófájl eltérő ellenörző összegű, mivel ennek futása nem fejeződött még be. Az összes többi (befejezett) naplófájl azonos ellenőrző összeget mutat.

Megjegyzés: Különféle okokból az első futtatás eltérő kimenetet eredményezhet a továbbiakhoz képest. Általános szabályként kimondhatjuk, hogy az első és utolsó (nem befejezett) naplófájlon kívüli naplófájlok ellenőrző összegének meg kell egyeznie.


Lásd még:
o Memóriahibák kiszűrése a memtest86 programmal

Kulcsszavak: CRASH, FREEZE, SEGMENTATION FAULT, SIGNAL 11, SIG11, MEMTEST86, RENDSZER, STABILITáS, ELLENőRZéS

SDB-hmeyer_memtest-sig11, Copyright SuSE Linux AG, Nürnberg, Germany - Verzió: 08. Aug 2001
SuSE Linux AG - Utoljára frissítve: 01. Dec 2002 feladó: comp (sdb_gen 1.40.0)