Bądź: Wyszukaj na stronie z użyciem Google
reklama:

piątek, 10 lipca 2009

Ograniczanie użycia procesora dla poszczególnych aplikacji

Autor: , 10:21, piątek, 10 lipca 2009


Jeśli jedna z aplikacji często zbyt spowalnia komputer wykorzystując zbyt dużą cześć mocy obliczeniowej procesora, na przykład Firefox po uruchomieniu kilku gier Flash, można prosto ograniczyć wybranemu procesowi czy folderowi maksymalny poziom użycia CPU.

Całość będzie kontrolowana przez narzędzie cpulimit, które można wgrać w Ubuntu poleceniem:
sudo apt-get install cpulimit

Poszczególne parametry wyglądają następująco:

-p, --pid=N (Nazwa bądź identyfikator PID procesu)
-e, --exe=PLIK (Nazwa pliku wykonywalnego)
-P, --path=ŚCIEŻKA (Ścieżka do pliku wykonywalnego bądź programu)

Opcje

-l, --limit=N (Procentowe ograniczenie dozwolonego użycia CPU)
-v, --verbose (Statystyki działania)
-z, --lazy (Wyłączanie programu po tym jak ograniczana aplikacja zostanie zamknięta)
-h, --help (Wyświetla pomoc i kończy działanie)

Przykłady użycia:

Ogranicza maksymalne użycie Firefoksa do 30%:
cpulimit -e firefox -l 30
Zamiast "firefox" można oczywiście podać nazwę innego procesu, który sprawdzimy na przykład w monitorze systemu (System=>Administracja=>Monitor Systemu).

Ograniczenie procesu do 50% o PID 1234:
cpulimit -p 1234 -l 50

źródła: tips4linux.com, digipedia.pl; fot: huangjiahui, za: Flickr.com

Tagi: ,

Komentarze 15 comments
Anonimowy pisze...

prosiłbym jeszce o jakis fajny przeglad programów pod konsole typu moc itp

Anonimowy pisze...

Adrian, chłopie! Używam debiana od kilku ładnych lat ale Ci powiem, że mnie często zaskakujesz rzeczami, których nie znałem - tak trzymać! Pozdro

rom pisze...

System>Administracja>Monitor systemu, zakładka Procesy. Prawoklik na wybrany proces i zmieniamy wartość "nice" (przedział -20 do +19). Im większa wartość "nice" tym mniej zasobów będzie pochłaniało wykonanie procesu.
Nie modyfikowałem jeszcze wartości "nice" procesów, ale efekt powinien być taki sam jak w sposobie podanym przez Adriana, i do tego nie trzeba pamiętać składni poleceń w konsoli.

mr_zola pisze...

@rom: "nice" o którym piszesz to priorytet a adrian pisze o ograniczeniu mocy procesora dla procesu

Anonimowy pisze...

Tylko co zrobić jeśli się ma procesor który sam jest "ograniczony"? :D

Lukasz pisze...

Trzeba wyprobowac. Czasami skype wciaga mi 90% mocy, a czasami przyzwoicie na 30% sie trzyma. Dzieki Adrian za wskazowke ;)

Anonimowy pisze...

Mam pytanie czy muszę mieć włączony przez cały czas terminal żeby korzystać z tej funkcji za każdym razem jak mam włączoną przeglądarkę? Czy jest możliwość zapamiętania tej funkcji,żeby już na stałe było ograniczenie CPU do 30% ?

Cieniek pisze...
Ten komentarz został usunięty przez autora.
Cieniek pisze...

nie dam sobie ręki uciąć, ale możesz spróbować wcisnąć ALT+F2 i tam wpisać np: firefox & sleep 2 & cpulimit -e firefox -l 30 -z

Anonimowy pisze...

Dzięki za radę,jest tak samo jak przy wpisaniu polecenia ręcznie.Firefox niestety za każdym razem się restartuje,ale to i tak jest świetny sposób na ten zafleszowany internet no i komputer jakoś inaczej zaczyna sie zachowywać:-)

Anonimowy pisze...

addon : flashblock i brak problemu zajetego procesora w ff..

DekeR pisze...

czy można dodać ograniczenia tylko dla jednego [np. 2,3,4...] procesorów, czy przykładowe 30% tyczy się każdego z nich?

mejdej pisze...

maly oftop:
czy jest moze takie narzedzie, ale do ograniczania transferu dysku twardego dla aplikacji?
Podczas kopiowania duzych katalogow caly system ma 'zwieche', dziala jakby nie chcial, odpowiedzi z aplikacji sa z parominutowym opoznieniem etc.

Anonimowy pisze...

Tak, są programy ograniczające prędkość kopiowania/przenoszenia danych między partycjami. Zainteresuj się wszelkimi Menagerami. Na Windows jest Total-Commander który ma taką opcję (dawno temu jak jeszcze używałem windows to działało poprawnie). Na linux jest gnome-commander który przypuszczalnie również ma tę funkcję.

Anonimowy pisze...

Próbuję ograniczyć proces, ale jak bym nie próbował to działa to tak:
1. Wpisuję cpulimit -e NazwaProcesu -l 10
2. Enter
3. Wyskakuje: no target process found

Proces normalnie może być wykonany z linii komend poprzez wpisanie jego nazwy z podaniem parametrów.

Wie ktoś może co robię źle? Mam ubuntu 11.10.

Jest to serwer i zależy mi, żeby proces, który normalnie zżera cały proces przez kilkadziesiąt sekund nie zamulał działania strony internetowej.

Prześlij komentarz


Popularne posty

Etykiety