Egy folyamat CPU-használatának korlátozása Linuxban a CPULimit eszközzel
Egy korábbi bejegyzésünkben elmagyaráztuk a CPUToolt, amellyel korlátozható és vezérelhető bármely folyamat CPU-használata Linuxban. Lehetővé teszi a rendszergazda számára, hogy megszakítsa egy folyamat (vagy folyamatcsoport) végrehajtását, ha a CPU/rendszer terhelése túllép egy meghatározott küszöbértéket. Itt megtudjuk, hogyan kell használni a cpulimit nevű hasonló eszközt.
A Cpulimit a folyamat CPU-használatának korlátozására szolgál, ugyanúgy, mint a CPUTool, azonban a megfelelőjéhez képest több használati lehetőséget kínál. Az egyik fontos különbség az, hogy a cpulimit a cputool-tól eltérően nem kezeli a rendszerterhelést.
Javasolt olvasmány: 9 hasznos parancs a CPU információinak lekéréséhez Linuxon
Telepítse a CPULimimit egy folyamat CPU-használatának korlátozásához Linuxban
A CPULimit a Debian/Ubuntu és származékai alapértelmezett szoftvertáraiból telepíthető csomagkezelő eszköz segítségével.
sudo apt install cpulimit
A RHEL/CentOS és a Fedora rendszerben először engedélyeznie kell az EPEL-tárat, majd telepítenie kell a cpulimit az ábrán látható módon.
# yum install epel-release
# yum telepítse a cpulimit
A folyamat CPU-használatának korlátozása a CUPLimit segítségével
Ebben az alszakaszban elmagyarázzuk, hogyan működik a cpulimit. Először futtassunk egy parancsot (ugyanaz a dd parancs, amelyet a cputool lefedésekor megnéztünk), aminek magas CPU-százalékot kell eredményeznie a háttérben (vegye figyelembe, hogy a folyamat PID a parancs futtatása után kerül kinyomtatásra) .
dd if=/dev/zero of=/dev/null &
[1] 17918
Ezután használhatjuk a top vagy glances eszközöket, amelyek egy futó Linux rendszer aktuális, gyakran frissített állapotát adják ki, hogy figyeljük a fenti parancs CPU-használatát.
top
Ha megnézzük a fenti kimenetet, láthatjuk, hogy a dd folyamat használja a CPU-idő legnagyobb százalékát 100,0%.
De ezt a cputlimit használatával korlátozhatjuk a következőképpen. A --pid
vagy -p
opció a PID megadására szolgál, a --limit
vagy -l
pedig egy folyamat használati százalékának beállítására szolgál.
Az alábbi parancs a dd parancsot (PID 17918) egy CPU mag 50%-ára korlátozza.
sudo cpulimit --pid 17918 --limit 50
Process 17918 detected
A cpulimit futtatása után felülről vagy pillantással megtekinthetjük a dd parancs aktuális CPU-használatát. A kimeneten belül az érték (51,5%-55,0% vagy valamivel nagyobb) között mozog.
A CPU-használatát másodszor is lefojthatjuk az alábbiak szerint, ezúttal tovább csökkentve a százalékot az alábbiak szerint:
sudo cpulimit --pid 17918 --limit 20
Process 17918 detected
Ahogy korábban is tettük, felülről vagy pillantásokkal megtekinthetjük a folyamathoz tartozó új CPU-használatot, amely 20–25,0% vagy ennél valamivel nagyobb tartományban lesz.
top
Megjegyzés: A shell interaktívvá válik – a cpulimit futása közben nem vár semmilyen felhasználói bevitelt. A leállításához (aminek le kell állítania a CPU-használat korlátozását) nyomja meg a [Ctrl + C]
billentyűt.
A cpulimit háttérfolyamatként való futtatásához használja a --background
vagy a -b
kapcsolót, ezzel felszabadítva a terminált.
sudo cpulimit --pid 17918 --limit 20 --background
A rendszerben lévő CPU magok számának megadásához használja a --cpu
vagy a -c
jelzőt (ezt általában a rendszer automatikusan észleli).
sudo cpulimit --pid 17918 --limit 20 --cpu 4
A folyamat CPU-használatának korlátozása helyett a --kill
vagy a -k
opcióval leállíthatjuk. Az alapértelmezés szerint a folyamatnak küldött jel a SIGCONT, de más jel küldéséhez használja a --signal
vagy a -s
jelzőt.
sudo cpulimit --pid 17918 --limit 20 --kill
A kilépéshez, ha nincs megfelelő célfolyamat, vagy ha az elhal, adja meg a -z
vagy a --lazy
karakterláncot, mint ez.
sudo cpulimit --pid 17918 --limit 20 --kill --lazy
További információkért és használati lehetőségekért tekintse meg a cpulimit kézikönyvoldalát.
man cpulimit
Tekintse meg a következő hasznos útmutatókat a CPU információinak és a CPU/rendszer teljesítményének figyeléséhez.
- Keresse meg a legjobban futó folyamatokat a Linux legnagyobb memória- és processzorhasználata alapján
- Cpustat – Figyeli a CPU kihasználtságát a folyamatok futtatásával Linux alatt
- CoreFreq – Hatékony CPU-megfigyelő eszköz Linux rendszerekhez
- Keresse meg a legjobban futó folyamatokat a Linux legnagyobb memória- és processzorhasználata alapján
- 20 parancssori eszköz a Linux teljesítményének figyelésére
- 13 Linux Performance Monitoring Tools – 2. rész
Összehasonlításképpen, a CPUTool és a CPULimit tesztelése után észrevettük, hogy az előbbi hatékonyabb és megbízhatóbb „folyamat CPU-használat korlátozása” funkciót kínál.
Ez a CPU-használat százalékos tartománya szerint történik, miután mindkét eszközt futtatták egy adott folyamaton. Próbálja ki mindkét eszközt, és írja be gondolatait ehhez a cikkhez az alábbi visszajelzési űrlap segítségével.