Hallo,
ich habe ein kleines Programm, dass aufgabenbedingt viel Speicher und CPU-Ressourcen benötigt. Im Moment zieht sich das Skript alle freien Ressourcen und zwingt das System dadurch in die Knie. Mich würde nun interessieren ob und wie es möglich ist, Obergrenzen für Speicher und CPU zu definieren. Erschwärend kommt hinzu, dass das Skript auf einem Win-System mittels Cygwin läuft. Version ist python 2.4.
Vielen Dank im voraus, grim
Speicher/CPU-Limit definieren
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo grim!grim hat geschrieben:Mich würde nun interessieren ob und wie es möglich ist, Obergrenzen für Speicher und CPU zu definieren.
Willkommen im Python-Forum!
Den Speicherverbrauch kannst du, meines Wissens, nicht begrenzen. Wenn dein Programm nicht genügend Speicher zum Arbeiten bekommt, dann wird es nicht mehr funktionieren.
Die CPU-Auslastung kannst du auch nicht in Prozent regeln oder sonstwie auf einen Wert begrenzen.
Du kannst aber dein Programm so schreiben, dass es immer mal wieder eine Pause macht und damit den anderen Prozessen mehr Zeit lässt, sich wieder zu erholen.
Dieses Programm wird den Computer (eine CPU) voll auslasten:
Code: Alles auswählen
for i in xrange(10000):
x = 1
Code: Alles auswählen
import time
for i in xrange(10000):
x = 1
time.sleep(0.001)
Code: Alles auswählen
import time
for i in xrange(10000):
x = 1
if i % 10 == 0:
time.sleep(0.001)
mfg
Gerold
Zuletzt geändert von gerold am Freitag 27. April 2007, 11:49, insgesamt 2-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- Rebecca
- User
- Beiträge: 1662
- Registriert: Freitag 3. Februar 2006, 12:28
- Wohnort: DN, Heimat: HB
- Kontaktdaten:
Die CPU-Nuztung deines Prozesses kannst du unter *nix auch mit dem nice-Wert steuern:
verlangt am wenigsten gierig nach CPU. Es wird aber trozdem die CPU voll ausgelastet, nur werden halt andere Prozesse eher vorgelassen.
Kritischer ist aber eher der Arbeitsspeicher, wenn das System anfaengt, stark zu swappen. Wenn du keine Moeglickeit hast, das Skript resourcenschonender zu programmieren, faellt mir nur ein, das Programm in einer virtuellen Maschine/einem Emulator laufen zu lassen. Ist aber wohll mit Kanonen auf Spatzen geschossen... Und inwieweit das dem restlichen System hilft??? Wenn die virtuelle Maschine swappt, bleibt der Festplattenzugriff fuer das Hostsystem ja trotzdem langsam. Nur dass das Hostsystem eventuell noch nicht swappen muss...
Code: Alles auswählen
nice -n 19 meinprogramm
Kritischer ist aber eher der Arbeitsspeicher, wenn das System anfaengt, stark zu swappen. Wenn du keine Moeglickeit hast, das Skript resourcenschonender zu programmieren, faellt mir nur ein, das Programm in einer virtuellen Maschine/einem Emulator laufen zu lassen. Ist aber wohll mit Kanonen auf Spatzen geschossen... Und inwieweit das dem restlichen System hilft??? Wenn die virtuelle Maschine swappt, bleibt der Festplattenzugriff fuer das Hostsystem ja trotzdem langsam. Nur dass das Hostsystem eventuell noch nicht swappen muss...
Zuletzt geändert von Rebecca am Freitag 27. April 2007, 11:46, insgesamt 1-mal geändert.
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo grim!Rebecca hat geschrieben:Die CPU-Nuztung deines Prozesses kannst du unter *nix auch mit dem nice-Wert steuern:
Da fällt mir ein, dass du unter Windows mit ``START /LOW meinprogramm.exe`` die Prozesspriorität verändern kannst. Allerdings hilft das bei meinem täglichen Backup nicht besonders viel. Der IO wird trotzdem voll belastet. Da helfen meine zwei Prozessoren auch nichts mehr.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
Prozesspri zu setzen bringt schon was wenn man z.B Film guckt und gleichzeitig ein Spielspielt ( mach ich manchmal ) dann setze ich Film auf High damit der nicht hängt.
Also jetzt nicht mehr weil ich seit Janurar Ubuntu User bin. Und dank Nvidia, Wine und Ubuntu7.04 laufen auch alle Games perfekt. bei 6.10 hatte ich noch ein laggen in den Games.
Also jetzt nicht mehr weil ich seit Janurar Ubuntu User bin. Und dank Nvidia, Wine und Ubuntu7.04 laufen auch alle Games perfekt. bei 6.10 hatte ich noch ein laggen in den Games.