PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : CPU Leistung für einen Prozess einschränken, wie geht?



Sonny
01.02.06, 08:27
Hallo!

Ich habe zwei Anwendungen die sich gegenseitig stören (CPU Last)
Nun habe ich die eine mit nice gestartet, was wohl nicht ausreicht.
Gibt es die Möglichkeit, dass eine Appli z.B. maximal 20% der CPU bekommt?
(Ich habe 2 CPUs im Rechner)

HEMIcuda
01.02.06, 08:49
Aldem, wie geht? Voll Checka odda was?
Ich versteh jetzt Dein konkretes Problem nicht. Wenn Du der einen App eine niceness von 20 verpasst, dann wartet die ganz unterwuerfig, bis sich der Scheduler mal dazu herablaesst, dieser App Rechenzeit zu verpassen. Wenn Du dementsprechend der hoeherprioren App eine Niceness von - sagen wir - -10 angedeihen laesst, dann bekommt die erstmal die Rechenzeit zugewiesen.
Das Ganze bringt herzlich wenig, wenn Deine Apps singlethreaded sind. Dann wird jeder App eine CPU zugewiesen.

'cuda

Sonny
01.02.06, 09:32
wie geht <=> howto

es sieht so aus, als würde die eine Anwendung die Festplatte massiv beschäftigen und die andere kommt dann nicht mehr richtig drauf

alterpinguin
01.02.06, 10:20
vielleicht suchst Du deshalb an der falschen Stelle -
.
Echtzeitbetrieb - eine Frage der benutzten Resourcen (hier z.B. Festplatten-IO?), die nie überlastet werden dürfen, d.h. das System(oder der User) muß vorher wissen was Hard/Software verkraftet - oder Däumchen drehen......
.
.
und das Warten auf die Festplatte hat dann was mit der CPU zu tun, falls jemand das Programm so gestrickt hat, daß das Programm aktiv wartet .... - sollte aber bei den meisten Programmen nicht zutreffen.

Sonny
01.02.06, 10:25
ich überwache RAM und CPU mit webmin und der merkt dass die CPU stark in Anspruch genommen wird.

simulieren kann man mein Problemchen ganz einfach:

dd disk > /dev/null

und schon bekommt z.B. der Apache das Servieren der Seiten nicht mehr gebacken.

Sonny
01.02.06, 10:26
vielleicht suchst Du deshalb an der falschen Stelle -
.
n.

das ist gut möglich

Sonny
01.02.06, 15:01
hat evtl. noch jemand eine Idee dazu?

HEMIcuda
01.02.06, 15:16
Mehr RAM, die Daten des einen Prozesses auf eine separate Platte auslagern, ...

'cuda

munkmill
01.02.06, 15:19
ich überwache RAM und CPU mit webmin und der merkt dass die CPU stark in Anspruch genommen wird.


OT: Mit welchem Webmin-Modul lässt sich das denn bewerkstelligen?

baumgartner
01.02.06, 15:35
vielleicht DMA nicht aktiviert?

Jasper
01.02.06, 21:36
ich überwache RAM und CPU mit webmin und der merkt dass die CPU stark in Anspruch genommen wird.

simulieren kann man mein Problemchen ganz einfach:

dd disk > /dev/null

und schon bekommt z.B. der Apache das Servieren der Seiten nicht mehr gebacken.

das ist sehr gut möglich. i/o-requests sind oftmals nicht unterbrechbar. langsam reagierende hardware bremst damit ganz gewaltig die CPU aus. dann ist iowait recht hoch.
wenn es hardware ohne eigenintelligenz ist und die intelligenz in dem treiber implementiert ist, kann die cpu-last ebenfalls hoch sein, allerdings ist es dann nicht iowait sondern der system-anteil. beides lässt sich sehr leicht mit vmstat feststellen.

-j

Sonny
02.02.06, 08:21
Damit hängt es zusammen. Es ist allerdings keine Schwache hw sondern eine sehr starke. SCSI + 2 x Xeon. Leider kenne ich keinen Befehl, der die Zugriffsgeschwindigkeit eines Prozesses auf die Platte reduziert.

Jasper
02.02.06, 17:18
dann mach deinen dd-test nochmal und lass ein 'iostat -x' mitlaufen. interessant sind die spalten avgrq-sz, avgqu-sz, await, svctm und %util. vor allem svctm. poste doch mal die werte von iostat.

-j

alterpinguin
03.02.06, 14:33
ist im Admin-Hirn verankert. Wenn Du mehrere SCSI-Festplatten hast, dann kannst Du das leicht überprüfen. Einfach die Platte auf der nicht das System wohnt mal per dd nach /dev/null kopieren. Dann solltest Du die CPU Belastung für das Schreiben nach /dev/null deutlich sehen und sofern die Festplatte bei SCSI Zugriffen nicht den Kontroller anhält, solange sollten andere Zugriffe nicht gestört werden. Wenn Du das allerdings auf einer Festplatte machst, dann gibt es da nur den Weg mit möglichst viel Speicher die Schreib/Lesevorgänge damit zu puffern - was nur solange wirkt solange der Speicher für die anfallende Datenmenge groß genug ist, so daß Schreiben/Lesen nicht zum Nadelöhr wird.
----
Es gilt immer noch: Der Festplatten-IO ist um etliche Zehnerpotenzen langsamer als jeder andere Speicherzugriff der CPU.
----
Deshalb werden z.B. für Datenbanken, deren Daten auf extra Platten ausgelagert, gleiches z.B. auch für Log-Dateien, etc. und am Besten noch für jeden Task eine eigene CPU - eine für Netzwerk-IO, Plattenspeicher, Rechnen, ...

übrigens, wer ein schnelles DVD-Laufwerk hat, kann es auch damit probieren - einfach mal die Datentransferrate messen - und dabei sollte der Rest von der Festplatte ungebremst weiterlaufen - es sei die Festplatte und DVD sind nicht getrennt angebunden, was aber der Admin wissen sollte.