Grundsatzfrage zu SMP

Warum Debian und/oder eine seiner Spielarten? Was muss ich vorher wissen? Wo geht es nach der Installation weiter?
Antworten
Benutzeravatar
trons
Beiträge: 27
Registriert: 28.08.2003 17:18:51

Grundsatzfrage zu SMP

Beitrag von trons » 16.11.2003 10:03:07

Moin!

Ich hab mir letztens mit voller Begeisterung einen etwas älteren Rechner gekauft. IBM IntelliStation, falls das jem. etwas sagen sollte. Jedenfalls ist das Board dualfähig und so kaufte ich mir einen zweiten Pentium II für mehr Rechnenleistung. Das sollte sich auch auf jeden Fall bemerkbar machen.

Auf dem System hatte ich zuerst einen 2.3b.f. Kernel installiert, jedoch ist der ja nicht von Haus aus SMP-fähig, also habe ich mir den 2.4.22 Kernel runtergeladen, gebaut und siehe da /proc/cpuinfo zeigt mir Debian beide CPU's an.
Jedoch finde ich es merkwürdig, wie die Prozessorauslastung vonstatten geht, ich mußte z.B. an dem Kernel noch was nachbessern und erneut kompilieren. Unter top wird der laufende Prozess angezeigt, jedoch benutzt er nur eine CPU! Ist das Verhalten richtig, oder habe ich was beim Kernel vergessen? Sollte die Auslastung nicht symmetrisch sein? Oder können die Prozesse nur jeweils eine Rechneneinheit nutzen?

:?:

Vielen Dank im voraus!

Benutzeravatar
Operations
Beiträge: 179
Registriert: 13.10.2003 17:23:19

Beitrag von Operations » 16.11.2003 11:34:13

Hallo trons,
Unter top wird der laufende Prozess angezeigt, jedoch benutzt er nur eine CPU! Ist das Verhalten richtig, oder habe ich was beim Kernel vergessen?
Das Verhalten ist so richtig, da deine verwendeten Programme (z.B. gcc) nur in den aller seltensten Fällen automatisch Gebrauch von 2 Prozessoren (SMP = Symetric Multi Processing) machen. Man muß den Programmen eigentlich immer sagen, das sie mehr als eine CPU nutzen sollen.

Im Falle des Kernel kompilierens muß man (glaube ich nach einigem lesen - habe selber kein SMP System) anstatt
besser

Code: Alles auswählen

make -jZAHL
ZAHL steht für die Anzahl der gleichzeitig laufenden gcc Instanzen/Prozesse. D.h. mit "make -j2" werden 2 gcc Prozesse aufgerufen, welche der Scheduler des Kernels auf die 2 Prozessoren verteilen sollte. Ein Prozess je CPU.
Sollte die Auslastung nicht symmetrisch sein? Oder können die Prozesse nur jeweils eine Rechneneinheit nutzen?
Ein Prozess oder Thread kann immer nur auf einem Prozessor laufen. Um 2 Prozessoren zu nutzen braucht man mindestens 2 Prozesse oder einen Prozess mit 2 oder mehr Threads die vom Kernel auf die verfügbaren Prozessoren aufgeteilt werden.


So weit ich gesehen habe arbeitet der eine oder andere hier aus dem Board in einem Rechenzentrum und sollte wohl mehr Wissen zum Thema SMP Nutzung haben.

Wenn du auf die Schnelle Infos dazu brauchst, so kannst du auch mal bei http://www.linuxforen.de in der Suche "SMP" eingeben. Dort ist weitaus mehr zu dem Thema zu finden als hier. Alternativ kannst du auch mittels http://www.google.de Infos dazu finden. "linux smp" als Sucheingabe düften eine Menge Links liefern.


MFG

Operations

init 0
Beiträge: 673
Registriert: 21.10.2003 19:40:28

Beitrag von init 0 » 16.11.2003 12:44:53

Ich habe mir vor einem Jahr einen Dual Athlon geleistet werde den aber alsbald wenn ich mir was neues leisten kann verkaufen. Das Ding ist mir zu laut.
Nun zu deiner Frage?
ich mußte z.B. an dem Kernel noch was nachbessern"
Was gibts den an einem 2.4 Kernel zum nachbessern? SMP einschalten und gut ist.
Ansonsten hat Operations recht. Mach "make -j3" überall da wo du ansonsten "make" machen würdest. Dabei kannst auch einen "export make="make -j3"" machen damit andere das auch mitkriegen. Die 3 ist 1+Anzahl deiner Prozessoren. Die Zahl selber kannste wählen wie du willst. Aber mehr als 3 Macht auf einer Dualprozessormachine keinen Sinn. Daß die Programme deine zwei Prozessoren nicht ausnützen ist eine andere Sache. Das Betriebssystem tut es. Unter Windows sieht die Sache auch nicht anders aus. Benutze Gkrellm um die Lastverteilung anzuschauen und um zu sehen wie ein Prozess welchess recht CPU intensiv ist von einem Proz zu anderen geschoben wird. Soweit ich weiss laufen nur Kernelthreads auf mehrere prozessoren. Userthreads nur auf einem. Darauf nagle mich bitte nicht fest. Programme die sich forken habens auch gut.

cu

Benutzeravatar
trons
Beiträge: 27
Registriert: 28.08.2003 17:18:51

Beitrag von trons » 16.11.2003 14:55:13

Moin!

Danke für die prompten Antworten und Tipps. Wer noch was hinzufügen kann, immer schreiben. Ich bin sehr interessiert an diesem Thema!
Was gibts den an einem 2.4 Kernel zum nachbessern? SMP einschalten und gut ist.
Ich hab mich wahrscheinlich falsch ausgedrückt. Sicherlich möchte ich den Kernel nicht selber von Hand nachbessern, sondern die meine Frage war eher auf eine weitere Funktion beim Kernel-Bau bezogen!

So viel lauter finde ich die Systeme nicht. Nagut meine CPU's sind ja auch noch passiv gekühlt, aber ein Freund von mir hat ein TyanTiger MPX mit zwei 2400er MP's drauf und es ist nicht sonderlich laut. Sicherlicht hat er zwei oder drei Euro mehr für seine Lüfterwahl investiert, aber es lohnt sich!

Antworten