Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: .NET in Linux
In dit artikel wordt uitgelegd hoe u hulpprogramma's en htop
opdrachtregelprogramma's kunt gebruiken top
om processen te bewaken.
Voorwaarden
Net als in de vorige delen is dit onderdeel gestructureerd om meer nadruk te leggen op de theorie en principals die moeten worden gevolgd wanneer u begint met het oplossen van problemen. Er zijn geen vereisten. U moet echter de volgende items al hebben ingesteld als u alle stappen van deze training tot nu toe hebt gevolgd:
- Nginx heeft twee websites:
- De eerste website luistert naar aanvragen met behulp van de hostheader myfirstwebsite (
http://myfirstwebsite
) en stuurt de aanvragen door naar de demo ASP.NET Core-toepassing die luistert op poort 5000. - De tweede website luistert naar aanvragen met behulp van de buggyamb (
http://buggyamb
) hostheader en stuurt de aanvragen door naar de tweede ASP.NET Core voorbeeld buggy-toepassing die luistert op poort 5001.
- De eerste website luistert naar aanvragen met behulp van de hostheader myfirstwebsite (
- Beide ASP.NET Core-toepassingen worden uitgevoerd als services die automatisch opnieuw worden opgestart wanneer de server opnieuw wordt opgestart of de toepassingen niet meer reageren of mislukken.
- Een lokale Linux-firewall is ingeschakeld en geconfigureerd om SSH- en HTTP-verkeer toe te staan.
Doel van dit deel
Wanneer u een prestatieprobleem oplost, moet u mogelijk het CPU- en geheugengebruik van een proces bewaken om te begrijpen hoe het resourceverbruik zich in de loop van de tijd ontwikkelt. In Windows kunt u Taakbeheer gebruiken om dit te doen. Linux heeft verschillende hulpprogramma's die hetzelfde willen bereiken.
In dit gedeelte worden de top
hulpprogramma's en htop
opdrachtregelprogramma's voor het bewaken van processen onderzocht.
top
Als u het equivalent van Taakbeheer in Linux wilt openen, voert u de top
opdracht uit.
In dit voorbeeld kunt u in het eerste vermelde proces voor PID 19933 zien dat het proces een hoog CPU-gebruik vertoont en dat het geheugengebruik ook hoog is.
Kolommen selecteren en deselecteren
Als u kolommen wilt toevoegen of verwijderen in de weergave die het top
hulpprogramma biedt, selecteert u F terwijl u het hulpprogramma uitvoert. De kolommen die zijn gemarkeerd met een sterretje (*) zijn de kolommen die zijn geselecteerd voor weergave. Gebruik de pijltoetsen om door de beschikbare kolommen te bladeren en gebruik de spatiebalk om de kolommen te selecteren of de selectie op te heffen. Selecteer vervolgens Esc om af te sluiten.
De wijzigingen worden opgeslagen voor uw gebruikersaccount. De volgende keer dat u wordt uitgevoerd top
, ziet u de kolommen die u hebt geselecteerd.
De uitvoer filteren op gebruikers
Als u zich wilt richten op problematische scenario's voor resourceverbruik, is het belangrijk om te weten hoe u de top
uitvoer filtert. Een van de meest voorkomende methoden is het filteren van processen op gebruikersnaam. U kunt U selecteren en vervolgens de gebruikersnaam typen. In de volgende schermopname ziet u het top
hulpprogramma waarmee de beschikbare procesmomentopnamen voor de www-data-gebruiker worden gefilterd.
Wanneer u Enter selecteert, ziet u de processen die worden uitgevoerd door de opgegeven gebruiker (de www-data-gebruiker in dit voorbeeld).
Wanneer u de uitvoer van de gefilterde top
weergave inspecteert, ziet u dat twee van de processen .NET-processen zijn. Met deze twee processen worden de twee ASP.NET Core-toepassingen uitgevoerd, terwijl de andere twee processen deel uitmaken van Nginx.
U kunt filters gebruiken wanneer u de top
opdracht rechtstreeks uitvoert. Als u bijvoorbeeld de top -u www-data
opdracht uitvoert, levert deze dezelfde uitvoer op als u zou krijgen als u het top
hulpprogramma zou openen en U selecteert om te filteren op gebruiker.
Niet-actieve processen verwijderen
Selecteer I of voer de top -i
opdracht uit om de top
uitvoer te filteren om alleen de processen weer te geven die CPU verbruiken. In de volgende schermopname ziet u de uitvoer van de top -i -u www-data
opdracht. U ziet dat de top
uitvoer de niet-actieve processen verbergt, ook al zijn er vier processen die zijn gestart met het gebruikersaccount www-data. Alleen het proces met PID=19933 verbruikt CPU.
Selecteer ik opnieuw om de schakelaar in of uit te schakelen en ook de niet-actieve processen weer te geven.
Processen beëindigen
Als u een proces wilt doden of beëindigen, moet u een kill-signaal naar het proces verzenden. Misschien herinnert u zich misschien dat we de sudo kill -9 <PID>
opdracht eerder hebben gebruikt om een proces te beëindigen. U kunt processen ook doden met behulp van top
. Selecteer K om een proces te beëindigen terwijl top
het wordt uitgevoerd en typ vervolgens de PID van het proces dat u wilt beëindigen.
Nadat u Enter hebt geselecteerd, top
wordt u gevraagd naar het signaaltype. Selecteer Nog één keer Enter om het signaal 'beëindigen' (15/sigterm
) te verzenden.
Na een paar seconden ziet u dat het proces voor PID 122632 ontbreekt in de lijst. Houd er rekening mee dat in de lijsten het '122632'-proces overeenkomt met de BuggyAmb ASP.NET Core-toepassing. Omdat het is geconfigureerd om automatisch te starten, ziet u dat een nieuw .NET-proces met een nieuwe PID wordt gestart na het afsluiten.
htop
Htop is een procesviewer en een tekstmodustoepassing voor systeembewaking in realtime, vergelijkbaar met top
. Het is eenvoudig te gebruiken en er wordt een volledige lijst weergegeven met de processen die worden uitgevoerd.
Het htop
hulpprogramma is vooraf geïnstalleerd in de distributie van Ubuntu Linux die wordt gebruikt om de virtuele server voor deze cursus te installeren. Als htop
deze niet is geïnstalleerd in uw Linux-distributie, kunt u de pakketbeheerders in Linux gebruiken om deze te installeren. (Zie Deel 1.3- Installeer .NET in Linux voor meer informatie.)
Voer de htop
opdracht uit om het hulpprogramma te starten. U ziet een kleurrijke uitvoer die lijkt op de volgende:
Notitie
De onderste regel geeft de functietoetsen aan die u kunt gebruiken. Selecteer F6 om op verschillende opties te sorteren, gebruik de pijltoetsen om de PERCENT_MEM
kolom te selecteren en selecteer vervolgens Enter. Hiermee worden de processen gesorteerd op geheugengebruik.
Net als bij de top
opdracht kunt u sneltoetsen gebruiken voor verschillende functies. Selecteer bijvoorbeeld U om de gebruikersnaam in een lijst te selecteren.
Er is echter iets verwarrends in de htop
uitvoer. Op basis van de uitvoer van de laatste voorbeelden ziet u vier processen voor de gebruiker met www-data. We zien echter dat er nog veel meer items zijn. Wat kan dit gedrag veroorzaken?
Het verschil in de uitvoer treedt op omdat htop
zowel processen als de bijbehorende threads standaard worden weergegeven. Tenzij u de threads wilt zien, raden we u aan de threadweergave altijd uit te schakelen om de uitvoer duidelijker te maken. Als u de threadweergave wilt uitschakelen en alleen de processen wilt zien, selecteert u Shift+H. In de volgende schermopname ziet u de processen zonder threads.
Als u een proces moet beëindigen, selecteert u het proces met behulp van de pijltoetsen, selecteert u F9 en selecteert u Vervolgens Enter om het signaal 'beëindigen' te verzenden.
Dit beknopte overzicht moet u inzicht geven in welke processen resources op uw systeem worden uitgevoerd en verbruikt. Als u wilt afsluitenhtop
, selecteert u F10 of Ctrl+C.
Volgende stappen
In het volgende deel van deze serie (deel 3.3: foutopsporingsprogramma's, kerndumps en het verzamelen van kerndumps) worden foutopsporingsprogramma's en dumpbestanden besproken.