Überprüfung der System-Stabilität

Supportdatenbank (hmeyer_memtest-sig11)

Anliegen

Sie möchten sicher gehen, dass Ihre Hardware unter Linux stabil läuft.

Vorgehen

Vorausgesetzt Sie haben die Kernelquellen und die benötigten Entwicklungswerkzeuge (Compiler usw.) installiert, können Sie mit dem folgenden kleinen Skript die Systemstabilität sehr gut überprüfen:

#!/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

Das Original dieses Skripts finden Sie unter http://www.bitwizard.nl/sig11. Dort wird auch der Hintergrund dieses Tests erläutert.

Vorteile dieser Überprüfung gegenüber anderen Methoden (z.B. memtest86) sind

  1. Das gesamte System wird gestestet, nicht nur der Arbeitspeicher
  2. Der Betrieb des Systems muss für diesen Test nicht unterbrochen werden

Das Skript lässt in einer Endlosschleife die Kernelquellen übersetzen (make bzimage) und speichert die Ausgabe von make für jeden Durchlauf in einer eigenen Logdatei (die übrigens recht groß wird).

Normalerweise wäre zu erwarten, dass der make Prozess bei jedem Durchlauf exakt die gleichen Ausgaben erzeugt.

Das Skript zeigt während es läuft einen ständig aktualisierten Blick auf

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

Das könnte z.B. so aussehen:

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

In diesem Beispiel sind die ersten drei Durchläufe bereits abgeschlossen. Dass sich die Dateigröße der ersten drei Log-Dateien nicht unterscheidet ist bereits ein gutes Zeichen. Wer sicher gehen will sollte das Skript allerdings bis zu 24 Stunden laufen lassen und sich nicht nur auf die Dateigröße verlassen. Mit md5sum steht ein geeignetes Werkzeug zur Verfügung um zu überprüfen, ob die Logdateien tatsächlich identisch sind:

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

Dass die vierte Logdatei eine unterschiedliche Prüfsumme ergibt muss nicht wundern, da dieser Durchlauf noch nicht abgeschloosen ist. Die Prüfsummen der bereits abgeschlossenen Durchläufe sollte allerdings identisch sein.

Anmerkung: Unter bestimmten Umständen kann es vorkommen, dass der erste Durchlauf ein leicht unterschiedliches Resultat im Vergleich zu den weiteren Durchläufen liefert. Als Faustregel kann also gelten, dass alle Durchläufe mit Ausnahme des ersten und des letzten (noch nicht abgeschlossen) identische Ergebnisse liefern müssen.


Siehe auch:
o Allgemeine Hardwareprobleme
o Speicherprobleme mit memtest86 ermitteln

Stichwörter: ABSTURZ, CRASH, FREEZE, SEGMENTATION FAULT, SIGNAL 11, SIG11, MEMTEST86, STABILITAET

SDB-hmeyer_memtest-sig11, Copyright SuSE Linux AG, Nürnberg, Germany - Version: 08. Aug 2001
SuSE Linux AG - Zuletzt generiert: 26. Apr 2002 von hmeyer (sdb_gen 1.40.0)