Archiv verlassen und diese Seite im Standarddesign anzeigen : Arbeitsspeicher eines Prozesses bewusst begrenzen
Hallo Gemeinde,
ich habe hier die Aufgabe, ein Programm zu überwachen, welches unter großer HDD-I/O Last arbeitet. Dabei wäre für mich auch interresant zu wissen, wie sich das Programm verhält, wenn mein System anfängt zu swappen.
Da ich (leider) viel RAM habe, fällt es mir schwer, überhaupt so weit zu kommen, dass mein System swappt.
Kennt ihr da Tools, mit denen man den max. genutzen Arbeitsspeicher begrenzen kann ?
Du koenntest die Speichergroesse beim Boot mit dem Kernelparameter mem=groesse limitieren und damit testen. Wie man den RAM waehrend der Laufzeit begrenzen kann, wuesste ich jetzt nicht.
'cuda
Hi,
gibt den befehl
> ulimit -a
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) 32
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) unlimited
cpu time (seconds, -t) unlimited
max user processes (-u) 3836
virtual memory (kbytes, -v) unlimited
interessant wäre wohl hier "virtual memory" und "max memory size"...
tests mal aus, vielleicht brings ja den gewünschten efekt
War auch meine erste Idee, aber: Wenn ich mich recht entsinne wäre der Effekt, dass der Prozess nicht mehr Speicher bekommt (und ggf. gekillt wird) - aber eben nicht gezwungen wird zu swappen und _das_ ist ja das, was der TE erreichen will...
Ob man das gewünschte ohne HW-Änderungen oder entsprechenden Kernel-Parameter erreichen kann ist fraglich. Evtl. eine entsprechend große RamDisk einrichten (ich vermute mal, die würde nicht geswappt werden?) oder/und mit der swappiness spielen, andere nicht-nice laufende Programme in den Speicher holen, ...
...- aber eben nicht gezwungen wird zu swappen ...
wenn dem so ist, dann frage ich mich wozu ulimit den paramter für "virtual memory" hat??? wäre ja dann überflüssig oder?
Moment - virtual-memory != Benutzen des swap-Speichers.
top - 11:52:07 up 50 days, 2:52, 1 user, load average: 0.00, 0.00, 0.00
Tasks: 79 total, 1 running, 77 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.2%us, 0.2%sy, 0.0%ni, 99.4%id, 0.1%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1035276k total, 805728k used, 229548k free, 306356k buffers
Swap: 1052248k total, 0k used, 1052248k free, 428916k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
17889 root 15 0 2168 896 704 R 2 0.1 0:00.01 top
1 root 15 0 2044 588 508 S 0 0.1 0:04.05 init
2 root RT 0 0 0 0 S 0 0.0 0:24.78 migration/0
...
http://en.wikipedia.org/wiki/Virtual_memory
VirtualBox oder VMware , oä benutzen und darin eine Linuxspielwiese einrichten.
... und die swappt auf HD?
Was spricht dagegen sich selber ein kleines Programm zu schreiben, dass sich Speicher holt? Wie ich die ersten Versuche mit malloc() durchgeführt habe, hat mein System ziemlich oft swappen müssen ;)
naja, das Programm muss den Speicher ja effektiv und dauernd nutzen - ansonsten wird es nur nicht der zu überprüfende Prozess geswappt - was wiederum also nichts bringt...
Hallo zusammen,
ja, ich habe einfach ein Programm geschrieben, welches Speicher belegt. Ich habe zwar ein Tool namen rmss gefunden, welches mir auch hilft, aber das gibt leider nur für Power PC's.
Dennoch danke für die vielen Tipps.
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.