Guten Tag Leute,
habe folgenden Thread schon gelesen
http://debianforum.de/forum/viewtopic.p ... it=taskset
und bin nicht weiter gekommen.
Ich habe mir meine Prozesse angeguckt und alle laufen auf Mask f.... Einen Prozess würde ich gerne direkt nur einen CPU zuordnen, weil er sonst instabil läuft.
Jetzt verstehe ich nicht ganz den zusammenhang mit dem "f", "0x00000001", der CPU/kern Zuordnung
Den Befehl Taskset habe ich soweit verstanden, nur mir fehlt die Eingabe der Zuordnung/CPU/Kern
Auf einigen Seiten geben sie anstatt "f" eine "1...x" ein, aber solange ich da nicht genauestens Bescheid weiß werde ich da nichts ändern. ("f" soll wohl für alle Kerne stehen).
Vielen Dank
Anhang:
Important information regarding kernel-updates:
If you want to use your own kernel, please make sure you don't touch the
kernel boot parameters (append) as some of our hardware requires the
parameters acpi=ht and/or noapic.
rocoto0xx:~# more /proc/cpuinfo
processor : 0(1,2,3)
vendor_id : AuthenticAMD
cpu family : 16
model : 2
model name : Quad-Core AMD Opteron(tm) Processor 1352
stepping : 3
cpu MHz : 1050.000
cache size : 512 KB
physical id : 0
siblings : 4
core id : 0 (1,2,3)
cpu cores : 4
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 5
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov
pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp
lm 3dnowext 3dnow constant_tsc pni cx16 popcnt lahf_lm cmp_legacy svm extapic c
r8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs ts ttp tm stc 100mhzsteps
hwpstate
bogomips : 2111.41
clflush size : 64
Taskset: CPU Mask Frage
-
- Beiträge: 1581
- Registriert: 01.05.2004 13:21:26
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: DE
Re: Taskset: CPU Mask Frage
Herzlich Willkommen im Forum,
Mit der manpage und etwas Wissen über Zahlendarstellung auf dem Computer wird das schon. Wie du schon richtig bemerkt hast, bedeutet die Zahl 0xFFFFFFFF nutze alle Prozessoren. Diese Zahl ist hexadezimal (Basis des Zählsystems ist 16 und nicht 10 wie du es gewöhnt bist). Im hexadezimalen System werden alle Zahlen größer 9 als Buchstaben angegeben, 10 = A, 11= B und so weiter bis F = 15. Das Hexadezimale ist wiederum nur eine Vereinfachung für zB. den Programmierer, denn der Rechner versteht eigentlich nur 0 oder 1 (aus oder an), das ist binär (Basis des Zählsystems ist 2). Ein F (hexadezimal) bedeutet 1111 (binär), man schreibt zur Erkennung von hexadezimalen Zahlen auch 0xF. In diesem Sinne bedeutet die Maske 0x1 nichts anderes als 0001 (binär, der erste Prozessor), und 0x2 bedeutet 0010 (binär, der zweite Prozessor). Wenn du jetzt die Maske (Auswahl der Prozessoren) für deinen Prozesses setzen willst, kannst du folgendes verwenden:
Ich hoffe, dass ist so einigermaßen verständlich. Prinzipiell kannst du mit taskset nichts kaputtmachen und das Programm wird sich bei falschen Parametern sicher bemerkbar machen (oder auch nicht *g).
hth, storm
Zu deinem letzten Satz (sozusagen als Schlüssel zum Thema): richtig.Bf2Linux hat geschrieben:Ich habe mir meine Prozesse angeguckt und alle laufen auf Mask f.... Einen Prozess würde ich gerne direkt nur einen CPU zuordnen, weil er sonst instabil läuft.
Jetzt verstehe ich nicht ganz den zusammenhang mit dem "f", "0x00000001", der CPU/kern Zuordnung
...
Auf einigen Seiten geben sie anstatt "f" eine "1...x" ein, aber solange ich da nicht genauestens Bescheid weiß werde ich da nichts ändern. ("f" soll wohl für alle Kerne stehen).
Mit der manpage und etwas Wissen über Zahlendarstellung auf dem Computer wird das schon. Wie du schon richtig bemerkt hast, bedeutet die Zahl 0xFFFFFFFF nutze alle Prozessoren. Diese Zahl ist hexadezimal (Basis des Zählsystems ist 16 und nicht 10 wie du es gewöhnt bist). Im hexadezimalen System werden alle Zahlen größer 9 als Buchstaben angegeben, 10 = A, 11= B und so weiter bis F = 15. Das Hexadezimale ist wiederum nur eine Vereinfachung für zB. den Programmierer, denn der Rechner versteht eigentlich nur 0 oder 1 (aus oder an), das ist binär (Basis des Zählsystems ist 2). Ein F (hexadezimal) bedeutet 1111 (binär), man schreibt zur Erkennung von hexadezimalen Zahlen auch 0xF. In diesem Sinne bedeutet die Maske 0x1 nichts anderes als 0001 (binär, der erste Prozessor), und 0x2 bedeutet 0010 (binär, der zweite Prozessor). Wenn du jetzt die Maske (Auswahl der Prozessoren) für deinen Prozesses setzen willst, kannst du folgendes verwenden:
- taskset 0x00000001 dein_kommando # für die erste cpu (binär: 0001 = dezimal: 1)
- taskset 0x00000002 dein_kommando # für die zweite cpu (binär: 0010 = dezimal: 2)
- taskset 0x00000003 dein_kommando # für die erste *und* zweite cpu (binär: 0011 = dezimal: 3)
- taskset 0x0000000F dein_kommando # für vier kerne (binär: 1111 = dezimal: 15 = hexadezimal: F)
Ich hoffe, dass ist so einigermaßen verständlich. Prinzipiell kannst du mit taskset nichts kaputtmachen und das Programm wird sich bei falschen Parametern sicher bemerkbar machen (oder auch nicht *g).
hth, storm
drivers/ata/libata-core.c: /* devices which puke on READ_NATIVE_MAX */
Re: Taskset: CPU Mask Frage
Zwei Artikel aus dem Linux-Magazin zu Multiprozessorbetrieb und cpusets:
http://www.linux-magazin.de/Heft-Abo/Au ... n-Technik/
mit Beispielen:
http://www.linux-magazin.de/Heft-Abo/Au ... n-Technik/
http://www.linux-magazin.de/Heft-Abo/Au ... n-Technik/
mit Beispielen:
http://www.linux-magazin.de/Heft-Abo/Au ... n-Technik/
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")
Re: Taskset: CPU Mask Frage
Das war sehr verständlich und ich bedanke mich für deine Mühen...
Hail Debianforum
Hail Debianforum