Wéi iwwerwaacht d'Systemverbrauch, Stéierungen a Probleemer mat Linux Serveren - Deel 9


Och wann Linux ganz zouverlässeg ass, sollten weise Systemadministrateuren e Wee fannen fir d'Verhalen an d'Notzung vum System zu all Moment en Aa ze halen. Assuréieren en Uptime sou no bei 100% wéi méiglech an d'Disponibilitéit vu Ressourcen si kritesch Bedierfnesser a ville Ëmfeld. D'Untersuchung vun der Vergaangenheet an der aktueller Status vum System erlaabt eis méiglech Problemer virauszesoen an héchstwahrscheinlech ze verhënneren.

Aféierung vum Linux Foundation Certification Program

An dësem Artikel wäerte mir eng Lëscht vun e puer Tools presentéieren déi an de meeschte Upstream Verdeelunge verfügbar sinn fir de Systemstatus z'iwwerpréiwen, Ausbroch ze analyséieren an lafend Themen ze léisen. Speziell, vun der Onmass vu verfügbaren Donnéeën, konzentréiere mir eis op CPU, Späicherplatz an Erënnerungsverbrauch, Basisprozessmanagement a Loganalyse.

Späicherplatz Utilisatioun

Et ginn 2 bekannte Kommandoen am Linux, déi benotzt gi fir d'Späicherplazverbrauch ze kontrolléieren: df an du.

Deen éischten, df (wat fir Disk Free steet), gëtt normalerweis benotzt fir d'Gesamtdiskussiounsverbrauch no Dateiesystem ze berichten.

Ouni Optiounen mellt df d'Diskspaceverbrauch a Bytes. Mam -h Fändel weist et déiselwecht Informatioun mat MB oder GB amplaz. Notéiert datt dëse Bericht och d'Gesamtgréisst vun all Dateiesystem (an 1-K Blocken), déi fräi a verfügbar Plazen, an de Montagepunkt vun all Späicherapparat enthält.

# df
# df -h

Dat ass sécherlech flott - awer et gëtt eng aner Begrenzung déi e Dateiesystem onbrauchbar ka maachen, an dat leeft aus Inoden. All Dateien an engem Dateiesystem ginn op eng Inode mapéiert déi seng Metadaten enthält.

# df -hTi

Dir kënnt d'Quantitéit u benotzten a verfügbaren Inoden gesinn:

Laut dem uewe genannte Bild ginn et 146 benotzt Inoden (1%) an /home, dat heescht datt Dir nach ëmmer 226K Dateien an deem Dateiesystem erstellt.

Bedenkt datt Dir aus Späicherplatz laang lafe kënnt ier Dir aus Inoden leeft, a vice-versa. Aus deem Grond musst Dir net nëmmen d'Späicherplazverbrauch iwwerwaachen, awer och d'Zuel vun den Inoden, déi vum Dateiesystem benotzt ginn.

Benotzt déi folgend Kommandoen fir eidel Dateien oder Verzeichnisser ze fannen (déi 0B besetzen) déi Inoden ouni Grond benotzen:

# find  /home -type f -empty
# find  /home -type d -empty

Dir kënnt och de -delete Fändel um Enn vun all Kommando derbäisetzen, wann Dir och déi eidel Dateien an Verzeichnisser läschen wëllt:

# find  /home -type f -empty --delete
# find  /home -type f -empty

Déi viregt Prozedur huet 4 Dateien geläscht. Loosst eis d'Zuel vun de benotzten/verfügbaren Noden nach eng Kéier iwwerpréiwen an/Heem:

# df -hTi | grep home

Wéi Dir gesitt, ginn et 142 elo benotzt Inoden (4 manner wéi virdrun).

Wann d'Benotzung vun engem bestëmmte Dateiesystem iwwer engem virdefinéierte Prozentsaz ass, kënnt Dir du benotzen (kuerz fir Diskusbrauch) fir erauszefannen wat d'Fichier'en sinn déi am meeschte Plaz besetzen.

D'Beispill gëtt fir /var gegeben, déi wéi Dir am éischte Bild hei uewen gesitt, op seng 67% benotzt gëtt.

# du -sch /var/*

Notiz: Dir kënnt op eng vun den uewe genannten Ënnerverzeechnunge wiesselen fir genau erauszefannen wat an hinnen ass a wéi vill all Element besetzt. Dir kënnt dann dës Informatioun benotze fir entweder e puer Dateien ze läschen wann et net gebraucht gëtt oder d'Gréisst vum logesche Volumen verlängeren wann néideg.

Lies Och

  1. 12 Nëtzlech \df Kommandoen fir Disk Space ze kontrolléieren
  2. 10 Nëtzlech du Kommandoen fir Disk Notzung vu Dateien a Verzeichnungen ze fannen

Erënnerung a CPU Benotzung

De klassesche Tool am Linux dat benotzt gëtt fir eng Gesamtprüfung vun der CPU/Gedächtnisnotzung a Prozessverwaltung auszeféieren ass htop, awer ech hu mech fir Top niddergelooss well et aus der Këscht an all Linux Verdeelung installéiert ass.

Fir unzefänken, gitt einfach de folgende Kommando an Ärer Kommandozeil, a dréckt Enter.

# top

Loosst eis eng typesch Topoutput ënnersichen:

An de Reihen 1 bis 5 gëtt déi folgend Informatioun ugewisen:

1. Déi aktuell Zäit (20:41:32) an Uptime (7 Stonnen an 41 Minutten). Nëmmen ee Benotzer ass um System ageloggt, an d'Laascht duerchschnëttlech während de leschten 1, 5, respektiv 15 Minutten. 0.00, 0.01 an 0.05 weisen datt iwwer dës Zäitintervaller de System 0% vun der Zäit idle war (0.00: keng Prozesser waarden op d'CPU), et gouf dann ëm 1% iwwerlaascht (0.01: Duerchschnëtt vun 0.01 Prozesser) goufen op der CPU gewaart) an 5% (0,05). Wa manner wéi 0 an déi méi kleng d'Zuel (0,65, zum Beispill), war de System Idle fir 35% während de leschten 1, 5 oder 15 Minutten, je wou 0,65 schéngt.

2. Am Moment sinn et 121 Prozesser déi lafen (Dir kënnt déi komplett Oplëschtung an 6 gesinn). Nëmmen 1 vun hinnen leeft (Top an dësem Fall, wéi Dir an der %CPU Kolonn gesitt) an déi reschtlech 120 waarden am Hannergrond awer \schlofen a bleiwen an deem Zoustand bis mir se uruffen.Wéi? Dir kënnt dëst verifizéieren andeems Dir eng mysql-Prompt opmaacht an e puer Ufroen ausféiert.Dir mierkt wéi d'Zuel vun de lafende Prozesser eropgeet.

Alternativ kënnt Dir e Webbrowser opmaachen an op all Säit navigéieren déi vun Apache servéiert gëtt an Dir kritt datselwecht Resultat. Natierlech ginn dës Beispiller ugeholl datt béid Servicer an Ärem Server installéiert sinn.

3. eis (Zäit Lafen Benotzer Prozesser mat onverännert Prioritéit), sy (Zäit Lafen Kernel Prozesser), ni (Zäit Lafen Benotzer Prozesser mat geännert Prioritéit), wa (Zäit waarden op I/O Fäerdegstellung), Salut (Zäit déi d'Hardware Ënnerbriechunge verbrauchen), si (Zäit déi d'Software ënnerbrach gëtt), st (Zäit geklaut vum aktuellen vm vum Hypervisor - nëmmen a virtualiséierten Ëmfeld).

4. Kierperlech Erënnerungsverbrauch.

5. Plazverbrauch tauschen.

Fir d'RAM Erënnerung z'iwwerpréiwen an d'Benotzung z'änneren, kënnt Dir och de gratis Kommando benotzen.

# free

Natierlech kënnt Dir och d'-m (MB) oder -g (GB) Schalter benotzen fir déiselwecht Informatioun a mënschlech liesbarer Form ze weisen:

# free -m

Egal wéi, Dir musst bewosst sinn datt de Kernel sou vill Erënnerung wéi méiglech reservéiert an et fir Prozesser verfügbar mécht wann se et froen. Besonnesch d'Linn -/+ Puffer/Cache weist déi aktuell Wäerter nodeems dësen I/O Cache berücksichtegt gëtt.

An anere Wierder, d'Quantitéit vun Erënnerung benotzt vun Prozesser an de Montant sinn fir aner Prozesser (an dësem Fall, 232 MB benotzt an 270 MB sinn, respektiv). Wann Prozesser dës Erënnerung brauchen, wäert de Kernel automatesch d'Gréisst vum I/O Cache reduzéieren.

Lies Och: 10 Nëtzlech gratis Kommando fir d'Linux Memory Usage z'iwwerpréiwen

Prozesser méi no kucken

Zu all Moment lafen et vill Prozesser op eisem Linux System. Et ginn zwee Tools déi mir benotze fir Prozesser no ze iwwerwaachen: ps an pstree.

Mat den Optiounen -e an -f kombinéiert an eng (-ef) kënnt Dir all d'Prozesser oplëschten, déi momentan op Ärem System lafen. Dir kënnt dësen Output op aner Tools päifen, wéi grep (wéi am Deel 1 vun der LFCS Serie erkläert) fir d'Ausgab op Äre gewënschte Prozess ze schmuel:

# ps -ef | grep -i squid | grep -v grep

De Prozessoplëscht hei uewen weist déi folgend Informatioun:

Besëtzer vum Prozess, PID, Parent PID (den Elterende Prozess), Prozessorbenotzung, Zäit wou de Kommando ugefaang huet, tty (den? weist datt et en Daemon ass), déi kumuléiert CPU Zäit, an de Kommando mat dem Prozess assoziéiert.

Wéi och ëmmer, Dir braucht vläicht net all déi Informatioun, a wëllt de Besëtzer vum Prozess weisen, de Kommando deen et ugefaang huet, seng PID an PPID, an de Prozentsaz vun der Erënnerung déi et am Moment benotzt - an där Reiefolleg, a sortéiert no Gedächtnisverbrauch an erofgaangend Uerdnung (notéiert datt ps par défaut no PID zortéiert ass).

# ps -eo user,comm,pid,ppid,%mem --sort -%mem

Wou de Minuszeechen virum %mem d'Sortéierung an ofstigend Uerdnung ugeet.

Wann aus iergendengem Grond e Prozess ufänkt ze vill Systemressourcen ze huelen an et ass méiglecherweis d'allgemeng Funktionalitéit vum System a Gefor ze bréngen, wëllt Dir d'Ausféierung stoppen oder pausen andeems Dir ee vun de folgende Signaler mam Killprogramm benotzt. Aner Grënn firwat Dir géift iwwerleeën dëst ze maachen ass wann Dir e Prozess am Virdergrond gestart hutt awer et wëllt pausen an am Hannergrond weidergoen.

Wann déi normal Ausféierung vun engem bestëmmte Prozess implizéiert datt keen Ausgang op den Ecran geschéckt gëtt wärend et leeft, kënnt Dir et entweder am Hannergrond starten (en Ampersand um Enn vum Kommando addéieren).

process_name &

oder,
Wann et ugefaang huet am Virdergrond ze lafen, pauséiert et a schéckt se an den Hannergrond mat

Ctrl + Z
# kill -18 PID

Notéiert w.e.g. datt all Verdeelung Tools ubitt fir graziéis ze stoppen/unzefänken/nei ze starten/nei ze lueden allgemeng Servicer, sou wéi Service a SysV-baséiert Systemer oder systemctl a systemd-baséiert Systemer.

Wann e Prozess net op dës Utilities reagéiert, kënnt Dir et mat Gewalt ëmbréngen andeems Dir et de SIGKILL Signal schéckt.

# ps -ef | grep apache
# kill -9 3821

Also .. Wat ass geschitt/ass geschitt?

Wann et iergendeng Zort Ausbroch am System gouf (sief et e Stroumausfall, e Hardwarefehler, e geplangten oder ongeplangten Ënnerbriechung vun engem Prozess, oder all Anomalie iwwerhaapt), d'Logbicher an /var/log b> sinn Är bescht Frënn fir ze bestëmmen wat geschitt ass oder wat d'Problemer verursaache kéint, déi Dir konfrontéiert.

# cd /var/log

E puer vun den Elementer an /var/log si regulär Textdateien, anerer sinn Verzeichnisser, an nach aner sinn kompriméiert Dateie vu rotéierten (historeschen) Logbicher. Dir wëllt déi mat dem Wuertfehler an hirem Numm kontrolléieren, awer d'Inspektioun vum Rescht kann och praktesch kommen.

Foto dësem Szenario. Är LAN Clienten kënnen net op Netzwierkdrucker drécken. Den éischte Schrëtt fir dës Situatioun ze léisen ass an de /var/log/cups Verzeichnis a kuckt wat do dran ass.

Dir kënnt de Kommando Schwanz benotzen fir déi lescht 10 Zeilen vun der error_log Datei ze weisen, oder tail -f error_log fir eng Echtzäit Vue vum Logbuch.

# cd /var/log/cups
# ls
# tail error_log

Déi uewe genannte Screenshot liwwert hëllefräich Informatioun fir ze verstoen wat Äre Problem kéint verursaachen. Bedenkt datt d'Schrëtt follegt oder d'Feelfunktioun vum Prozess korrigéiert nach ëmmer de Gesamtproblem net léisen, awer wann Dir direkt vun Ufank un benotzt gëtt fir d'Logbicher ze kontrolléieren all Kéier wann e Problem entstinn (sief et e lokalen oder en Netzwierk) wäert definitiv um richtege Wee sinn.

Och wann d'Hardwarefehler komplizéiert kënne sinn fir ze léisen, sollt Dir d'dmesg an d'Message-Logbicher an d'Grep iwwerpréift fir verwandte Wierder zu engem Hardware-Deel, deen anscheinend defekt ass.

D'Bild hei drënner ass vun /var/log/messages geholl nodeems Dir no dem Wuertfehler gesicht hutt mat dem folgenden Kommando:

# less /var/log/messages | grep -i error

Mir kënne gesinn datt mir e Problem mat zwee Späichergeräter hunn: /dev/sdb an /dev/sdc, déi am Tour e Problem mat der RAID-Array verursaachen.

Conclusioun

An dësem Artikel hu mir e puer vun den Tools exploréiert déi Iech hëllefe kënnen ëmmer bewosst ze sinn iwwer de Gesamtstatus vun Ärem System. Zousätzlech musst Dir sécher sinn datt Äre Betribssystem an installéiert Packagen op hir lescht stabil Versiounen aktualiséiert ginn. An ni, ni, vergiesst d'Logbicher ze kontrolléieren! Da gitt Dir an déi richteg Richtung fir déi definitiv Léisung fir all Probleemer ze fannen.

Fillt gratis Är Kommentaren, Suggestiounen oder Froen ze hannerloossen -wann Dir eppes hutt- andeems Dir de Formulaire hei drënner benotzt.