2009-03-18 10 views
7

Muszę uruchomić skrypt Python z procesorem i pamięcią (analizowanie i modyfikowanie długiego pliku WAV) jako proces w tle na moim serwerze sieciowym (VPS), między HTTP upraszanie.Jak zarządzać procesem intensywnie obciążającym procesor na serwerze

Uruchomienie skryptu trwa do 20 sekund i niepokoi mnie wydajność na moim serwerze. Czy istnieje dobre podejście do obniżania priorytetu procesu, okresowego ograniczania kontroli do systemu operacyjnego lub w inny sposób ochrony wydajności mojego skromnego serwera?

+1

Robw, można wybrać właściwą odpowiedź? (ten, który pracował dla ciebie) –

Odpowiedz

7

Zakładając, że jest to serwer UNIX, możesz użyć numeru nice command, aby obniżyć jego priorytet. To powinno wystarczyć.

+0

Python wygodnie zapewnia os.nice (...) – timday

+0

fajnie! zła gra słów, ale takie jest życie. – Kurt

5

Można użyć cpulimit na serwerze opartym na systemie Linux. Pozwoli ci to ograniczyć użycie procesora (określ limit jako procent) nawet dla skryptów, które już zaczęły działać, a jego użycie jest całkiem proste.

Jest on dostępny w repozytorium Debiana, dzięki czemu można go łatwo zainstalować za pomocą apt-get:

apt-get install cpulimit 

Typowe sposoby korzystania cpulimit obejmuje:

# To limit CPU usage to 75% of program called foo: 
cpulimit -e foo -l 75 

# To limit CPU usage to 50% of program with pid = 1582 
cpulimit -p 1582 -l 50 
Powiązane problemy