Om du har kört vilket operativsystem som helst under en längre tid har du förmodligen stött på konstiga fenomen. När det kommer till datorer är konstigt oftast ovälkommet. Ju längre du kör en viss OS-installation utan ominstallation, desto mer sannolikt är det att du ser åtminstone några konstigheter. Detta kan vara allt från program som fryser, till att din kylfläkt plötsligt går igång, till alla möjliga konstigheter.
För kommersiella stationära operativsystem med massiva installationsbaser är det lätt att hitta support i form av officiell tillverkare (OEM) eller OS-utvecklare felsöknings- och dokumentationssidor. Men för Linux är sådana resurser inte alltid tillgängliga. Även när de är det, ger de inte alltid konsekvent vägledning från distribution till distribution och är inte garanterade att ta hänsyn till användarens specifika hårdvara.
I det här stycket kommer jag att erbjuda några rutter du kan korsa för att spåra misstänkt beteende på ditt Linux-system. Denna sekvens av diagnostik är varken definitiv eller stel. Jag påstår inte att jag vet allt du bör göra för att ta reda på vad som har gått snett på ditt Linux-system, och även om jag gjorde det skulle det bli en episk dikt av en artikel.
Det är mycket möjligt att inte alla förfaranden är tillämpliga på det aktuella problemet. Mitt mål är dock att lägga fram ett stort antal tester som åtminstone borde ge dig en plats att börja. Bekvämt kommer dessa (med ett undantag) att tjäna dig väl på skrivbordet eller server Linux, eftersom de använder kommandoradsverktyg.
Det som följer kommer att fortsätta i ordningsföljd av hög till låg abstraktionsskikt, nämligen från applikationsnivå ner till OS-nivå. Utan vidare, låt oss börja gräva.
Avstängd webbläsare? Öppna dess Task Manager
Webbläsare har blivit så robusta och centrala för datorupplevelsen att de nu har sin egen processhanterare i OS-stil. Dessa verktyg gör det möjligt för användare att se vilka öppna webbanslutningar som använder systemresurser och hur mycket.
Om din webbläsare är huvudprogrammet som körs på din dator när resurstoppar eller nedgångar dyker upp, är processhanteraren en ovärderlig resurs. Det ger en tydligare bild än din OS-processhanterare eftersom webbläsarens processhanterare är medveten om vilka av dess ingående processer som drivs av vilka webbsidor.
Varje webbläsare har sitt eget sätt att komma till sin aktivitetshanterare. I Firefox och Chrome kan du komma åt aktivitetshanteraren från deras respektive övre högra menyer. Chromium och nära derivator (som Chrome) erbjuder också möjligheten att trycka på Shift + Escape-tangenterna för att komma åt verktyget. När du har aktivitetshanteraren öppen kan du sortera processer efter CPU eller minnesanvändning för att avgöra vad som stör någon av dem. Slutligen kan du döda en webbläsarprocess som försöker klamra sig fast vid din dators hårdvara.
Ta det från “toppen”
Om din webbläsare inte är stjärnan i programmet, kommer du förmodligen att vilja se Allt processerna som ditt system jonglerar med. Det bästa sättet att göra det är att öppna din terminal och använda topp kommando. I huvudsak är det en uppgiftshanterare för Unix-liknande system (som Linux). Med den kan du se CPU-användning, minnesanvändning och mycket mer för varje aktiv process. Som du kan förvänta dig kan du sortera efter denna statistik också. Alla utomkontrollerade processer kan dödas direkt från topp.
Men om du tänker topp är din genomsnittliga uppgiftshanterare, tänk om. Du kan sortera efter alla tillgängliga mätvärden, inklusive körtid och “trevlighet” (i princip processprioritet). Åh ja, det finns processprioritet. Du kan också välja att visa processer som ett träd, vilket indikerar vilka processer som skapat andra. Det bästa av allt är att du kan söka efter vilken textsekvens som helst, en funktion som verkligen saknas i många konkurrerande operativsystems uppgiftshanterare.
Översikt över öppna filer
Om du misstänker att problemet inte är CPU eller minnesförbrukning utan ovanlig disk I/O, dra ut lsof. Det är ett verktyg som jag både älskar och inte använder i närheten av tillräckligt. Detta CLI-kommando listar alla filer som för närvarande är öppna. Med andra ord låter det användare granska alla filer som läses från eller skrivs till.
De lsof kommandot har kraftfulla alternativ för många för att täcka i detalj, för att begränsa vilka typer av filer som ska matas ut. En av mina favoriter är “-u”-flaggan för att filtrera till eller exkludera filer av användaren som kommer åt dem. Om du har en rad skumma processer (kanske från topp), kan du använda “-p”-flaggan för att bara slå upp dessa processer (med PID) för att se filerna som den arbetar med.
Mitt favoritsätt att göra korta verk av lsofs utgången är att röra den in i grep och se vad jag kan hitta. På så sätt kan jag söka efter vilket mönster som helst, oavsett om det är användare, sökväg eller något annat jag kan tänka mig.
Bry dig inte om jag avkodar
Letar du efter fågelperspektiv över all hårdvara på ditt system? Leta inte längre än dmidecode.
Utför dmidecode i skalet med superanvändarprivilegier kommer att skriva ut en sammanfattning av din systemhårdvara, med en lista över märke, modell och lägen för utrustningen som ditt operativsystem sitter ovanpå. Detta är särskilt användbart om du använder en mer DIY-smak av Linux, eller försöker få ovanlig hårdvara att fungera.
Till exempel, om du behöver installera en icke-standardiserad kärnmodul, körs dmidecode kommer att informera dig om vilken enhet systemet upptäcker, och därmed vilken modul du behöver lägga till.
Linux är inte en destination, det är en process
Om saker och ting börjar bli riktigt håriga kan du börja gräva i ditt systems funktion på lägre nivå.
Först på vår djupdykning är /proc katalog. Till skillnad från vanliga kataloger som kvarstår med statiskt innehåll mellan stövlar, /proc fylls dynamiskt med information som läses från kärnan och hårdvaran vid uppstart, uppdateras kontinuerligt under drift och försvinner vid avstängning. Eftersom allt här behandlas som en fil behöver användarna bara läsa filerna för att se vad som skrevs till dem.
Jag skulle absolut kunna stå ut med att bekanta mig bättre med vad som finns här, men en del petande gav intressanta fynd. Till exempel kan du se monteringsalternativen för alla dina fysiska diskar. Du kan också få räkningar för misslyckade kärnoperationer som hängningar och panik. Du kan till och med granska alla hårdvarudrivrutiner som laddas vid uppstart.
För att ge ett mer konkret exempel kunde jag se mig själv dumpa /proc/scsi/device_info för att kontrollera varför ett insatt SCSI-gränssnitt inte upptäcktes. Du kanske måste vara lite kreativ med /procmen det kommer inte att göra dig besviken om du gör det.
Hämta ‘dmesg’
På tal om kärnan, du kan upptäcka exakt vad den har hållit på med genom att köra dmesg med superanvändarbehörighet. Detta matar ut kärnloggen till din konsol i kronologisk ordning från start. Om kärnan någonsin försökte arbeta med någon hårdvara och kom till kort, kommer den att journalföra sitt avvisade framsteg här.
Även om du förmodligen inte behöver ta till dmesg ofta är det ett kommando som varje Linux-användare behöver veta enbart på grund av hur snabbt det låter dig komma till botten med hårdvaruproblem. Det är kommandot som foruminvånare förväntar sig att du ska köra så att de kan få vad de behöver för att veta vilken riktning de ska peka dig.
Linux är laddat med alla möjliga bra systemdiagnosverktyg, men när något på ditt system går fel, kommer du förmodligen inte att göra det med de ovanstående.