DRINGEND: CPU-Infos auslesen unter LINUX (HT/Anzahl Kerne, Sockel, etc)

dbpaule

Grand Admiral Special
Mitglied seit
29.10.2007
Beiträge
2.591
Renomée
153
Hi zusammen,

ich gehe per PUTTY auf nen Server rauf und versuche herauszufinden, wie viele CPUs auf dem Teil stecken. Per cat /proc/cpuinfo werden mir vier CPUs angezeigt, aber nur zwei verschiedene core ids. Demnach sinds zwei reale CPUs, die jeweis Hyper Threading beherrschen. Soweit ist alles klar. Aber ich will folgendes angezeigt bekommen:

1. Anzahl der Sockel
2. Anzahl der belegten Sockel
3. Anzahl der CPUs
4. Beherrscht die CPU HT
5. Ist bei der CPU HT aktiviert
6. Wie viele reale Kerne hat die CPU
7. Wie viele Kerne hat die CPU insgesamt
8. Anzahl der Kerne insgesamt in dem Server (sowohl physisch als auch simuliert)

Hier stoße ich an meine eh schon sehr begrenzten Linux-Kenntnisse. Bitte um Hilfe! Falls ich ein Script schreiben muss, bitte sagt mir, wie ich das machen muss. Habs noch nie getan. Ich hoffe ihr könnt helfen.

LG, Paule
 
Mit dem tool lshw solltest Du das wesentliche auslesen können. Wenn es nicht da ist installieren, dann mit
Code:
lshw | less
als root auslesen (Pfeil rauf und runter). Die cpu Features siehst Du in /proc/cpuinfo.* Im /proc und /sys Verzeichnis findest Du die aktuellen Systemzustände, du musst nur wissen wo, das sind temporäre Verzeichnisse, die bei jedem Boot neu angelegt werden.

*lshw zeigt sie auch an.
 
OK, danke erstmal. Werd wahrscheinlich ein Script schreiben müssen. Mit grep werd ich dann die Infos filtern.

LG, Paule
 
grep ist immer gut. :P

Aber die Teilausgabe von lshw zeigt mir bezüglich eines Atom jenes an:
Code:
     *-cpu
          description: CPU
          product: Intel(R) Atom(TM) CPU N270   @ 1.60GHz
          vendor: Intel Corp.
          physical id: 4
          bus info: cpu@0
          version: 6.12.2
          serial: 0001-06C2-0000-0000-0000-0000
          slot: U1
          size: 1600MHz
          capacity: 2160MHz
          width: 32 bits
          capabilities: boot fpu fpu_exception wp vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 xtpr pdcm movbe lahf_lm cpufreq
          configuration: id=0
        *-cache:0
             description: L1 cache
             physical id: 5
             slot: L1 Cache
             size: 64KiB
             capacity: 64KiB
             capabilities: asynchronous internal write-back
        *-cache:1
             description: L2 cache
             physical id: 6
             slot: L2 Cache
             size: 512KiB
             capacity: 4MiB
             capabilities: burst external write-back
        *-logicalcpu:0
             description: Logical CPU
             physical id: 0.1
             width: 32 bits
             capabilities: logical
        *-logicalcpu:1
             description: Logical CPU
             physical id: 0.2
             width: 32 bits
             capabilities: logical

In diesem Fall hätte man so greppen können:
Code:
lshw | grep -A 37 '*-cpu'
Aber wer weiß schon, wieviele Zeilen folgen?

Direkt zu der Stelle springt man so:
Code:
lshw | less +/*-cpu
*lol* falls noch von Interesse.
 
Jupp, hab ich auch so gemacht.
LG, Paule
 
lshw kann/darf ich nicht draufspielen, da das Skript auch auf allen anderen Servern funktionieren muss.

LG, Paule
 
Die Aufgabe, die du da hast, ist nicht so trivial lösbar. Die Anzahl der Sockel ist nicht so einfach und vor allem konsistent über verschiedene Systeme zu bestimmen. Sprich 1. und 2. lassen sich so einfach nicht lösen. Der Rest ist über /proc/cpuinfo auslesbar. Das Tool x86info ist auch ganz nützlich, aber ich denke, das wird dir auch nicht zur Verfügung stehen. Würde dir bzgl. der Sockelanzahl aber auch nicht weiter helfen.
Bei der Sockelanzahl kann dir dmidecode eventuell weiterhelfen. Das hängt aber davon ab, welche Informationen der Board-Hersteller im BIOS hinterlegt hat. Du kannst dich nicht darauf verlassen, dass das überall und auch überall richtig implementiert ist.
 
Naja, ich werd mal die ca. 2000 Server jetzt ausarbeiten und mit dbsinfo, cpuinfo und dmidecode arbeiten. Werd mir ne Matrix erstellen müssen, da von SLES 9 -11 alles vorkommt. Zudem sind mehr als 7 CPU-Typen im Einsatz, wo HT als Flag gesetzt ist. das wird ne Arbeit...

LG, Paule
 
auch amd-cpus mit mehreren kernen melden ht-fähigkeit, obwohl sie bekanntlich kein ht unterstützen. wenn eine cpu also ht-fähigkeit signalisiert, musst du nach gucken, ob sie von intel ist, oder von amd.

edit:
hmmm, selbst der core 2 duo meines laptops meldet ht-fähigkeit.
oder ist "htt" das flag für hyperthreading? aber wofür steht dann "ht"? ???
 
Zuletzt bearbeitet:
kann nicht sein, da der c2d auch "ht" meldet, aber kein hypertransport hat.
 
Dann weiß ich es auch nicht *noahnung*.

MfG Dalai
 
Zurück
Oben Unten