Hogyan ellenőrizhető a memóriahasználat folyamatonként Linuxon

How Check Memory Usage Per Process Linux



Manapság egy számítógép sok programot tud egyszerre futtatni. A CPU-nak nem okoz gondot ezeknek a programoknak a kezelése, mert a CPU-k több maggal rendelkeznek a többfeladatos kezeléshez.

Ezen programok mindegyike egy vagy több folyamatként fut. Minden folyamat kioszt magának bizonyos mennyiségű RAM -ot vagy memóriát. Fontos, hogy a folyamat megfelelően működjön. Ha egy folyamat nem tud elegendő RAM -ot vagy memóriát kiosztani, akkor a folyamat nem hozható létre, és a program nem tud elindulni.







Tehát a számítógépen végzett egyik alapvető feladat annak ellenőrzése, hogy mennyi memóriát vagy RAM -ot (véletlen hozzáférésű memória) használ az egyes folyamatok. Mivel a RAM vagy a számítógép memóriája korlátozott.



Képzeljen el egy esetet, amikor valamilyen programot szeretne futtatni, de az nem sikerül, mert nincs elég memóriája. Lehet, hogy néhány folyamat sok memóriát használ, amire jelenleg nincs szüksége. Ezeket a folyamatokat megölheti vagy leállíthatja, hogy felszabadítsa a RAM -ot vagy a memóriát, így elindíthatja fontos programjait.



Ebben a cikkben megmutatom, hogyan ellenőrizheti a Linux gépen futó folyamatok memóriahasználatát. A cikkben szereplő bemutatókhoz a Debian 9 Stretch -t fogom használni. De minden modern Linux disztribúción működnie kell. Lássunk neki.





Használhatja a ps parancs a Linux összes folyamatának memóriahasználatának ellenőrzésére. Egy probléma van ezzel az eljárással. ps valójában nem azt mutatja meg, hogy egy folyamat mennyi memóriát használ KB vagy MB formátumban, de megmutatja, hogy mennyi memóriát használ fel százalékosan.

A következő paranccsal ellenőrizheti a Linux operációs rendszeren futó folyamat memóriahasználatát (százalékban):



$ps -vagypid, felhasználó,%én én,parancsfejsze| fajta -b -k3 -r

Amint láthatja, az összes százalékos memóriahasználatú folyamat csökkenő sorrendben jelenik meg (először a memória nagy részét használó folyamatok vannak felsorolva).

A folyamatok memóriahasználatának ellenőrzése pmap segítségével:

Egy folyamat vagy egy folyamathalmaz memóriáját ellenőrizheti ember által olvasható formátumban (KB -ban vagy kilobájtban) a gombbal pmap parancs. Csak a folyamatok PID -jére van szüksége, amelyek memóriahasználatát ellenőrizni kívánja.

Tegyük fel, hogy ellenőrizni szeretné, hogy a PID 917 processz mennyi memóriát használ. Ehhez fuss pmap alábbiak szerint:

$sudopmap917

Amint láthatja, a 917 folyamat által felhasznált teljes memória 516104 KB vagy kilobájt. Itt láthatja azt is, hogy a PID 917 -es folyamat futtatásához szükséges könyvtárak és egyéb fájlok mennyi memóriát használnak.

Ha nem érdekli, hogy a könyvtárak vagy más függő fájlok mennyi memóriát használnak, akkor futtassa pmap alábbiak szerint:

$sudopmap917 | farok -n 1

Amint láthatja, csak a folyamat által felhasznált teljes memória kerül nyomtatásra a képernyőn.

Ha szeretné, ezt tovább szűrheti awk és csak a méretet kapja meg KB -ban vagy kilobájtban. Ehhez fuss pmap alábbiak szerint:

$sudopmap917 | farok -n 1 | awk ' / [0-9] K / {print $ 2}'

Amint láthatja, csak a memóriafelhasználás KB -ban vagy kilobájtban kerül nyomtatásra.

Most azt is felsorolhatja, hogy mennyi memóriát használ fel több folyamat a PID -jük használatával pmap alábbiak szerint:

$sudopmap917 531 | markolatteljes

JEGYZET: Itt a 917 és az 531 folyamat -azonosító vagy PID. Annyi PID -t helyezhet el, amennyit csak akar.

A pmap használata az összes folyamat memóriahasználatának listázására kilobájtban:

Ebben a részben megmutatom, hogyan kell saját shell scriptet írni a Linux operációs rendszeren futó összes folyamat memóriahasználatának listázásához, emberi olvasható formátumban (kilobájt vagy KB).

Először készítsen új fájlt sysmon az aktuális munkakönyvtárban a következő paranccsal:

$érintéssysmon

Most tegye a fájlt futtathatóvá a következő paranccsal:

$chmod+x rendszer

sysmon a parancsfájl, amely megjeleníti az összes futó folyamatot PID , TULAJDONOS , MEMÓRIA (KB -ban csökkenő sorrendben) és PARANCS . Kezdjük.

Nyissa meg a sysmon scriptet a kedvenc szövegszerkesztőjével, használni fogom Kate .

Most az első parancs, amelyet futtatni fogok, megadja a PID , TULAJDONOS és PARANCS az összes futó folyamat kettősponttal (:) szimbólummal elválasztva, és tárolja a RÁDIÓTEODOLITTAL MÉRT SZÉL változó. Ezután folytassa a kimenetet, és nyomtassa ki a képernyőn.

Amint látja, a megfelelő kimenetet kapom.

Most itt az ideje, hogy feldolgozza az egyes sorokat, tárolja a kettősponttal elválasztott információkat külön változókban. Ezt tettem a 7., 8. és 9. sorban.

Amint látja, tudok nyomtatni PID , TULAJDONOS és PARANCS most a saját formátumomban.

Most itt az ideje, hogy lekérjük az egyes PID -k memóriahasználatát. A 10. sor éppen ezt teszi.

Mint látható, minden tökéletesen működik. Most már ki tudom nyomtatni az egyes folyamatok memóriahasználatát kilobájtban (KB) is.

Most már csak a kimenet formázása kell, hogy szép legyen. Inkább a táblázat formátumát. Az 5. sor kinyomtatja a táblázat minden oszlopának fejlécét.

Végül kinyomtattam PID , TULAJDONOS , MEMÓRIA (KB -ban) és PARANCS minden folyamatot táblázatos formában a 14. sor használatával.

Amint látja, elég jól működik. Van azonban egy kis probléma, a folyamatok nincsenek megfelelően rendezve csökkenő sorrendben a memóriahasználat szerint.

Hogy ezt kijavítsam, eltávolítottam sort -bnr -k3 a 3. sorból, és mindent shell funkcióba csomagolt sysmon_main () . Ezután hagyta a rendezési feladatot a fajta parancs.

A végső shell script így néz ki:

Mint látható, remekül működik.

Most áthelyezheti olyan helyre, mint pl /usr/bin és a többi parancshoz hasonlóan hajtsa végre az alábbiak szerint:

$sudo mv -vsysmon/usr/am

Végrehajtó sysmon :

Köszönjük, hogy elolvasta ezt a cikket.