Upptäck hårdvaran med hjälp av dmidecode
Automatisk maskinvarudetektering har alltid varit lite som ett lotteri, men det har blivit bättre under de senaste åren eftersom många tillverkare dokumenterar sina produkter mer detaljerat och har specifik information tillgänglig online också. För att ta reda på hårdvaruinformationen om RAM-minne installerat i din maskin, använd dmidecode
kommando (paket för Debian GNU / Linux, Ubuntu och Linux Mint: dmidecode).
Bland annat rapporterar detta verktyg detaljerad information om installerade systemkomponenter som processor, baseboard och RAM. Informationen är baserad på Desktop Management Interface (DMI) [1], som är ett ramverk som klassificerar de enskilda komponenterna på en stationär dator, bärbar dator eller server genom att abstrahera dessa komponenter från programvaran som hanterar dem [2]. Alternativet --skriv minne
avser minnesenheter. För andra DMI-klasser, se manualsidan för dmidecode.
# dmidecode 2.12
SMBIOS 2.7 närvarande.
Handtag 0x0007, DMI typ 16, 23 byte
Fysiskt minnesarray
Plats: moderkort eller moderkort
Användning: Systemminne
Felkorrigeringstyp: Ingen
Max kapacitet: 16 GB
Felinformationshandtag: Medföljer inte
Antal enheter: 1
Handtag 0x0008, DMI typ 17, 34 byte
Minnesenhet
Arrayhandtag: 0x0007
Felinformationshandtag: Medföljer inte
Total bredd: 64 bitar
Databredd: 64 bitar
Storlek: 8192 MB
Formfaktor: SODIMM
Set: Ingen
Sökare: ChannelA-DIMM0
Banklokal: BANK 0
Typ: DDR3
Typdetalj: synkron
Hastighet: 1600 MHz
Tillverkare: Samsung
Serienummer: 25252105
Tillgångsmärke: Ingen
Artikelnummer: M471B1G73DB0-YK0
Rank: Okänd
Konfigurerad klockhastighet: 1600 MHz
Denna maskin är för närvarande utrustad med 8G DDR3 RAM med en konfigurerad klockhastighet på 1600 MHz. Som du kan se är den maximala tillgängliga kapaciteten för inbyggt RAM 16G vilket innebär att den kan utökas med en andra 8G-modul.
Grafisk information om minnet
Om du föredrar ett grafiskt gränssnitt för att hämta denna information kan verktygen Hardinfo [3] och Hardware Lister (GTK + version) [4] vara av intresse för dig. På Debian GNU / Linux, Ubuntu och Linux Mint är dessa program tillgängliga via paketen hardinfo och lshw-gtk. Figur 2 visar användargränssnittet för Hardinfo som visar minnesinformation på en Xubuntu-installation.
Hur mycket minne som för närvarande är tillgängligt
Ibland är mindre mer. På kommandoraden finns information om minnet tillgänglig via fri
kommando. På Debian GNU / Linux, Ubuntu och Linux Mint är detta program en del av procps-paketet [5]. Figur 2 visar utdata i ett terminalfönster.
Som ett urval av de ytterligare alternativen, fri
accepterar olika parametrar som:
-b (--bytes):
visa utdata som byte-k (--kilo):
visa produktionen som kilobyte-m (--mega):
visa utdata som megabyte-g (--giga):
visa utdata som gigabyte--tera:
visa utdata som terabyte-h (--human):
visa produktionen i läsbart format
I figur 3 visas utdata i megabyte med alternativet -m. Systemet har 4G RAM medan 725M för närvarande används.
Minnesinformation från Linux-kärnans synvinkel
Verktygen som nämns ovan är beroende av rå information som finns i proc-filsystemet i Linux-kärnan. För att visa dessa uppgifter matar du ut innehållet i filen / proc / meminfo
använda katt
verktyg i en terminal:
MemTotal: 7888704 kB
MemFree: 302852 kB
MemAvailable: 448824 kB
Buffertar: 17828 kB
Cachat: 326104 kB
SwapCached: 69592 kB
Aktiv: 2497184 kB
Inaktiv: 650912 kB
Aktiv (anon): 2338748 kB
Inaktiv (anon): 525316 kB
Aktiv (fil): 158436 kB
Inaktiv (fil): 125596 kB
Oförutsägbar: 64 kB
Låst: 64 kB
SwapTotal: 16150524 kB
SwapFree: 15668480 kB
Smutsig: 3008 kB
Återskrivning: 0 kB
AnonPages: 2774656 kB
Mappad: 4414752 kB
Shmem: 59900 kB
Plattan: 130216 kB
SRKrav: 61748 kB
SU-reclaim: 68468 kB
KernelStack: 7328 kB
Sidtabeller: 42844 kB
NFS_Unstable: 0 kB
Studs: 0 kB
WritebackTmp: 0 kB
CommitLimit: 20094876 kB
Committed_AS: 10344988 kB
VmallocTotalt: 34359738367 kB
Vmalloc Används: 367296 kB
VmallocChunk: 34359345768 kB
HardwareCorrupted: 0 kB
AnonHugePages: 0 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugesidesstorlek: 2048 kB
DirectMap4k: 78448 kB
DirectMap2M: 2756608 kB
DirectMap1G: 5242880 kB
$
För mer statistisk information om CPU-användning, minne och processer kan du titta på verktygen vmstat
, och iostat
(Debian-paket procps och sysstat).
Arbeta med processer - ps, htop och pstree
För att visa de aktiva processerna i ditt Linux-system använder du ps
kommando. Vanligtvis sorteras utdata alfabetiskt. Men ps
kommandot kan göra mycket mer. Använda alternativet aux --sortera -rss
utgången från processlistan sorteras efter deras minnesanvändning i uppifrån och ner-ordning. Figur 4 visar de processer som har högst behov av minne. Utdata sorteras efter den sjätte kolumnen med titeln RSS som förkortar Resident Set Size. Värdet anges i kilobyte.
Kommandona ps, pstree
och htop
är nära besläktade när det gäller den information dessa verktyg visar. Både pstree
och htop
visa en graf för att visualisera processberoenden. htop
fungerar som en interaktiv version som låter dig bläddra upp processlistan upp och ner. Figur 5 visar htop
på ett stationärt system med ett urval av processer sorterade efter deras specifika minnesanvändning (5: e kolumnen).
Hitta processer som använder Swap-minne
Ju fler processer lanseras desto mer minne används samtidigt. Så snart ditt Linux-system tar slut på oanvända minnessidor, bestämmer Linux-kärnan att byta minnessidor till disk med LRU-metoden (Least Recently Used). För att besvara frågan, vilka processer som använder swap-minne och hur mycket som används i synnerhet, kan du ta en titt på utgången från topprogrammet. 2016 publicerade Erik Ljungstrom en kort beskrivning av hur man hämtar den informationen och utvidgar den här kolumnen till utsidan av toppen [6]. Figur 6 visar denna utgång på ett system som har gott om minnessidor i RAM kvar och som för närvarande inte använder Swap.
Dessutom publicerade han redan 2011 ett bash-skript som utvärderar informationen från proc-filsystemet för att visa användningen av swap-processen efter process [7]. Till och med 7 år senare och redan beskrivet som föråldrat är skriptet fortfarande utmärkt och visar hur man automatiserar uppgifter i ett Linux-system. Det är därför vi är säkra på att det är bra att visa det här igen.
Skriptets utdata är som följer (kör som rot
användaren hämta fullständiga data):
PID = 1 - Använd byte: 0 - (systemd)
PID = 2 - Använd byte: 0 - (kthreadd)
PID = 3 - Använd byte: 0 - (ksoftirqd / 0)
PID = 5 - Använd byte: 0 - (kworker / 0: 0H)
PID = 6 - Använd byte: 0 - (kworker / u16: 0)
PID = 7 - Använd byte: 0 - (rcu_sched)
PID = 8 - Använd byte: 0 - (rcu_bh)
PID = 9 - Använd byte: 0 - (migration / 0)
PID = 10 - Använd byte: 0 - (vakthund / 0)
PID = 11 - Använd byte: 0 - (vakthund / 1)
PID = 12 - Använd byte: 0 - (migration / 1)
PID = 13 - Använd byte: 0 - (ksoftirqd / 1)
PID = 15 - Använd byte: 0 - (kworker / 1: 0H)
PID = 16 - Använd byte: 0 - (vakthund / 2)
PID = 17 - Använd byte: 0 - (migration / 2)
PID = 18 - Använd byte: 0 - (ksoftirqd / 2)
PID = 20 - Använd byte: 0 - (kworker / 2: 0H)
..
#
Slutsats
Linux-verktygslådan innehåller en oändlig lista över tillgängliga program som hjälper dig att analysera minnesanvändningen i ditt Linux-system. Vi tittade bara på en kort titt - från rådata till förbehandlad information - allt finns där. Känn bara dina verktyg. Att lära känna dem tar lite tid och spelar med dem.
Detta är del 2 av serien om Linux Kernel Memory Management. Del 1 diskuterar bytminne, i del tre av denna serie kommer vi att diskutera hur man kan optimera minnesanvändningen. Detta inkluderar hantering av ramdisks såväl som komprimerade swap-filer.
Länkar och referenser
- [1] DMI vid Distribution Management Task Force (DMTF)
- [2] DMI på Wikipedia
- [3] Hardinfo
- [4] lshw-gtk (Debian-paket för Stretch)
- [5] procps (Debian-paket för Stretch)
- [6] Erik Ljungstrom: Ta reda på vad som använder ditt byte
- [7] Erik Ljungstrom: Byt användning - 5 år senare
Linux Memory Management Series
- Del 1: Linux Kernel Memory Management: Swap Space
- Del 2: Kommandon för att hantera Linux-minne
- Del 3: Optimera Linux-minnesanvändning
Bekräftelser
Författaren vill tacka Mandy Neumeyer och Gerold Rupprecht för deras stöd när han förberedde denna artikel.