Hur man begränsar CPU-användningen av vilken process som helst i Linux
Har du någonsin upplevt situationen där du öppnar en viss applikation (som Firefox) och det stannar hela systemet? Om du kör en webbserver är det sista som du vill se att ha ett program kraschar hela systemet och ta ner alla webbplatser.
Cpulimit är en applikation för Linux som kan begränsa CPU-användningen av en process. Det är användbart om du vill begränsa en viss applikation från att ta upp för mycket CPU-resurser och därmed krascha systemet. Detta kan också vara användbart när du behöver köra flera intensiva program samtidigt.
Obs! Cpulimit ska fungera för alla Linux distro. I denna handledning använder vi Ubuntu för illustration.
Installation
I Ubuntu kan du installera cpulimit via Ubuntu Software Center, klicka här för att installera, eller skriv följande kommando i terminal:
sudo apt-get install cpulimit
Användande
Använd kommandot för att begränsa en process
sudo cpulimit -p PID-1 CPU%
PID är process-ID för den pågående applikationen och CPU% är procentandelen (endast 0-100, antal) av CPU-resurser som tillåts för appen. Du kan få PID från System -> Administration -> System Monitor .
Från skärmdumpen ovan kan du se att Swiftfox-programmet (en variant av Firefox) tar upp 68% av CPU-resurserna innan CPU-gränsen är inställd. Låt oss se vad som händer när vi begränsar CPU-användningen till 20%.
% CPU faller omedelbart under 20% och överskred aldrig 20% -markeringen igen.
Utöka cpulimit - Automatiserar hela processen
Cpulimit är användbart när du stöter på en applikation som tar upp mycket CPU-resurser, eller behöver utföra batchjobb. Dessutom kan du också ställa in det för att övervaka systemet för eventuella felaktiga applikationer. Detta är särskilt användbart vid en serverinställning.
abcuser från Ubuntu Forum har kommit med ett bra skript som automatiserar övervakningen av ditt system och begränsar alla processer som överstiger en förinställd CPU-gräns. I skriptet kan du också ställa in svartlista / vitlista för specifika applikationer.
Innan vi börjar, se till att du har cpulimit och gawk installerat.
sudo apt-get install cpulimit gawk
Ladda ner skript här. Extrahera tjärfilen till din hemmapp. Du borde ha två filer i mappen cpulimit : cpulimit_daemon.sh och cpulimit .
Öppna filen cpulimit_daemon.sh i din textredigerare (gEdit) och ändra följande:
CPU_LIMIT : Det här är de högsta CPU-resurserna som är tillgängliga för varje applikation. Standardvärdet är 20%.
DAEMON_INTERVAL : Detta är intervallet för manuset för att kontrollera systemet. Standardinställningen är inställd på 3 sekunder.
BLACK_PROCESS_LIST : Det här innehåller listan över objekt som specifikt vill övervaka. Du kan använda "|" avgränsaren för att inkludera flera processer. Till exempel " mysql|firefox|gedit
".
WHITE_PROCESSES_LIST : Det här innehåller listan över objekt som du inte vill övervaka. Du kan använda "|" avgränsaren för att inkludera flera processer. Till exempel " mysql|firefox|gedit
".
Obs! En eller båda variablerna BLACK_PROCESSES_LIST och WHITE_PROCESSES_LIST måste vara tomma. Du kan inte ha en svartlista och en vitlista samtidigt.
Inställning
Kopiera filen cpulimit_daemon.sh till / usr / bin / folder
sudo cp ~ / cpulimit / cpulimit_daemon.sh / usr / bin sudo chmod 700 /usr/bin/cpulimit_daemon.sh
Kopiera cpulimit- filen till /etc/init.d/folder, ställ in det nödvändiga tillståndet och få det att köras under statup.
sudo cp ~ / cpulimit / cpulimit /etc/init.d/ sudo chown root: root /etc/init.d/cpulimit sudo chmod + x /etc/init.d/cpulimit sudo uppdatering-rc.d cpulimit standardinställningar
Nu starta om systemet. Cpulimit-demonen bör startas automatiskt.
Du kan öppna en terminal och typ:
sudo service cpulimit status
för att kontrollera om cpulimit-demonen körs. Om det inte körs, starta det med kommandot
sudo service cpulimit start
Alternativt, stoppa det med:
sudo service cpulimit stopp
Avinstallera
För att avinstallera, här är vad du behöver göra:
1. Stopp cpulimit daemon
sudo service cpulimit stop # Stopp cpulimit daemon och alla cpulimited processer
2. Ta bort demon från uppstartsproceduren
sudo update-rc.d -f cpulimit ta bort # Ta bort symboliska länkar
3. Ta bort startproceduren
sudo rm /etc/init.d/cpulimit # Ta bort cpulimit boot-up script
4. Ta bort cpulimit-demonen
sudo rm /usr/bin/cpulimit_daemon.sh # Ta bort cpulimit demon script
5. Avinstallera cpulimit-programmet
sudo apt-get bort cpulimit
Avinstallera gawkprogrammet eventuellt
sudo apt-få bort gawk
För mer information, se Ubuntu Forum för mer detaljer.
Kodkredit : abcuser från Ubuntu Forum