Folyamat prioritások beállítása kedvesen és tisztességesen Linuxon

A nice és renice parancsok segítségével finomhangolhatod, hogyan kezelje a kernel a folyamataidat a prioritások beállításával. Olvassa el ezt az oktatóanyagot, hogy megtanulja, hogyan használhatja őket Linux és Unix-szerű operációs rendszerekben, például a macOS-ben.

Ez mind folyamat kérdése

A Linux vagy Unix-szerű számítógépen belül számos folyamat fog futni, még mielőtt elindítaná a használni kívánt alkalmazást. E folyamatok többsége magának a Linuxnak vagy a grafikus asztali környezet támogató folyamatainak létfontosságú eleme. Sok minden történik a színfalak mögött. Természetesen csak annyi rendszererőforrás és CPU-idő áll rendelkezésre. A Linux kernel az összes ilyen folyamat vezérlője.

A kernelnek kell eldöntenie, hogy mely folyamatok kapnak most figyelmet és erőforrásokat, és melyek várnak. A kernel folyamatosan zsonglőrködik a folyamatokkal és a prioritásokkal annak érdekében, hogy a számítógép a lehető legzökkenőmentesebben fusson, és minden folyamat megkapja a megfelelő részesedést. Egyes eljárások kedvezményes elbánásban részesülnek. Annyira fontosak a számítógép általános működése szempontjából, hogy az ő igényeiknek kell az első helyen állniuk, mondjuk a böngészőjénél.

A szép érték

Az egyik kritérium annak meghatározására, hogy a kernel hogyan kezel egy folyamatot, a szép érték. Minden folyamatnak van szép értéke. A szép érték egy -19 és 20 közötti egész szám. Minden szabványos folyamat nulla szép értékkel indul.

  A lapok megtekintése teljes képernyős módban a Chrome-ban

Itt az a trükk, hogy minél magasabb a szép érték, annál szebb a folyamata a többi folyamathoz képest. Más szóval, a magas szép érték azt jelzi a kernelnek, hogy ez a folyamat szívesen vár. A negatív szám ellentéte annak, hogy szép. Minél nagyobb a negatív szép érték, annál önzőbb a folyamat. Megpróbál annyi CPU-időt begyűjteni, amennyit csak tud, figyelmen kívül hagyva a többi folyamatot.

A nice paranccsal beállíthatjuk a szép értéket, ha a folyamat elindul és a renice segítségével állíthatjuk be a szép értéket egy futó folyamatról.

A szép parancs

A nice paranccsal beállíthatjuk a szép értékét egy program indításakor. Ez lehetővé teszi, hogy növeljük vagy csökkentsük a rendszermag által a folyamatnak adott prioritást a többi folyamathoz képest.

Tegyük fel, hogy egy programozó írt egy Ackermann nevű programot. Ez kiszámítja Ackerman függvények. CPU- és memóriaigényes. A programozó a következő paranccsal indíthatja el a programot:

./ackermann

A top paranccsal megtekinthetjük a futó programot.

top

Az ackermann program részleteit fent láthatjuk. A szép érték az „NI” oszlopban lévő szám. Nullára állt, ahogy vártuk.

  Szimbólumok beszúrása a Google Dokumentumokba és Diákba

Indítsuk újra, és ezúttal tegyük kevésbé igényessé. A 15-ös szép értéket az ackermann programhoz a következőképpen állítjuk be. Írja be a nice, egy szóközt, -15-öt, egy másik szóközt, majd az elindítani kívánt program nevét. Példánkban a fiktív programozónk a ./ackermann fájlt használja.

nice -15 ./ackermann

Ügyeljen arra, hogy a „-15” nem negatív tizenöt. Ez pozitív tizenöt. A „-” szükséges annak jelzésére, hogy egy paramétert adunk át. Negatív szám jelzéséhez két „-” karaktert kell begépelnie.

Ha most újra felülről indulunk, láthatjuk a változást Ackermann viselkedésében.

top

Szép 15-ös értékével az Ackermann nem fogyasztja a legtöbb CPU-időt. A GNOME és a Rhythmbox is többet használ. Egy kicsit megfékeztük Ackermannt.

Most fordítsuk meg, és adjunk ackermannnak negatív szép értéket. Vegye figyelembe a két „-” karakter használatát. Ahhoz, hogy egy alkalmazást önzőbbé és kevésbé kedvessé tegye, sudo-t kell használnia. Bárki szebbé teheti az alkalmazását, de önzőbbé csak a szuperfelhasználók.

sudo nice --10 ./ackermann

Fussunk a tetejére, és nézzük meg, milyen különbséget tett ez.

top

Ackermann ezúttal szép -10-es értéket mutat. Újra a csúcsra került, és több CPU-időt fogyaszt, mint korábban.

A renice parancsnokság

A renice parancs segítségével beállíthatjuk egy futó folyamat szép értékét. Nem kell leállítanunk, és újra kell indítanunk. Menet közben beállíthatunk új értéket.

  Rejtett térfigyelő kamerák észlelése telefonjával

A renice parancs a folyamat folyamatazonosítóját vagy PID-jét veszi fel parancssori paraméterként. A folyamatazonosítót kivonhatjuk a felül található „PID” oszlopból, vagy a ps és grep segítségével kereshetjük meg nekünk, az alábbiak szerint. Nyilvánvalóan dave helyett a felhasználó nevét, ackermann helyett pedig annak a folyamatnak a nevét írja be, amelyik érdekel.

ps -eu dave | grep ackermann

Most, hogy megvan a PID, használhatjuk a renicével. Visszaállítjuk Ackermannt egy szebb viselkedésre, szép ötös értékkel. A futó folyamat szép értékének megváltoztatásához sudo-t kell használnia. Vegye figyelembe, hogy az 5-ös paraméteren nincs „-”. A pozitív számokhoz nem kell egy, a negatív számokhoz pedig csak egy kell, nem kettő.

sudo renice -n 5 2339

Megerősítést kapunk, hogy Renice megváltoztatta a szép értéket. Megmutatja nekünk a régi és az új értéket.

A kernel általában nagyszerű munkát végez a prioritások kezelésében, valamint a CPU-idő és a rendszererőforrások kiosztásában. De ha hosszú, CPU-igényes feladatot kell futtatnia, és nem érdekli, hogy mikor fejeződik be, akkor a számítógépe egy kicsit gördülékenyebbé válik, ha magasabb értéket állít be a feladathoz. Így mindenkinek szebb lesz.