oversigt
nogle gange skal vi muligvis kontrollere for den samlede hukommelsesstørrelse på en server, der kører Linuk, eller vi skal muligvis bruge hukommelsesstatistik i shell-scripts. Heldigvis har vi adgang til adskillige værktøjer, som vi kan bruge til at kontrollere for total fysisk hukommelse. I denne tutorial vil vi tage forskellige tilgange til at tjene dette formål ved at bruge flere nyttige kommandoer og værktøjer.
2. gratis kommando
gratis er den enkleste af alle de kommandoer, vi vil se. Det bruges til at udskrive det fysiske og bytte hukommelsesforbrug — som standard udskrives det til standardoutput. Den gratis kommando er en af de meget anvendte kommandoer til hurtigt at kontrollere for RAM-statistik, fordi den er tilgængelig på de fleste distributioner. Vi kan simpelthen skrive den gratis kommando på vores terminal uden flag:
$ free
total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0
som vi kan, udskrives størrelsen på den fysiske hukommelse i bytes. Vi kan dog nemt udskrive output i et menneskeligt læsbart format ved hjælp af-H eller-human flag:
$ free -h
total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B
som det kan ses i output ovenfor, har vi i alt 7,6 GiB RAM. Derudover er der mange andre muligheder, der kan bruges til at udskrive output i det format, vi kan lide som –kilo, –mega, –Giga osv. En mere interessant mulighed er-s-indstillingen:
$ free -h -s 5
– s-flaget står for sekunder, så free udskriver RAM-brugen hvert 5.sekund i dette eksempel. Det er især nyttigt, hvis vi vil overvåge RAM-brugen med et bestemt interval. Vi kan nemt afslutte processen med Ctrl + C tastaturgenvej.
3. vmstat-kommando
ligesom den gratis kommando er vmstat (virtual memory statistics) også tilgængelig på de fleste distributioner. Når vi skriver vmstat-kommandoen, udskriver den som standard den gratis, bufferede og cachelagrede hukommelse sammen med bytte, CPU, IO og systemoplysninger:
$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0
det brede flag udskriver output i et bredt læsbart format. Da vi er interesseret i total RAM størrelse, vi kommer til at tilføje-S eller-stats flag:
$ vmstat -s
8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks
den første post i output er total fysisk RAM. Nogle gange har vi ikke brug for al info, så vi kan bruge grep til kun at udtrække den ønskede post:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
4. top Command
top er dybest set en kommandolinjeopgave med en realtidsudgang. Det bruges til at kontrollere de kørende processer i et rent bordlayout. Det viser os også CPU, RAM og systemoplysninger generelt. Vi kan fyre det op ved blot at køre den øverste kommando:
$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem
øverst kan vi se hukommelsesoplysningerne ved siden af mem-feltet og observere, at vi har i alt 7833 MiB af total RAM.
5. dmidecode Utility
dmidecode er et hjælpeværktøj, der udskriver oplysninger om udstyrskomponenter – såsom udstyrsspecifikationer, serienumre og BIOS – versioner-i et menneskeligt læsbart format. Oplysninger om udstyr hentes fra DMI-tabellen. Vi kan også bruge det til at finde interessante oplysninger om vores system, såsom den maksimale understøttede hukommelse.
5.1. Installation af dmidecode
dmidecode er ikke installeret på nogle distributioner som standard, så vi skal installere det først. Vi kan installere dmidecode direkte fra vores distributionslager ved hjælp af en pakkehåndtering.
for Ubuntu-baserede distributioner kan vi installere pakken via apt:
# apt install dmidecode
for RHEL, Fedora og CentOS kan vi bruge yum:
# yum install dmidecode
på Arch-baserede distributioner skal du blot bruge pacman:
# pacman -Sy dmidecode
5.2. Brug af dmidecode
når installationen er afsluttet, kan vi køre dmidecode-kommandoen fra vores terminal:
# dmidecode
vi skal have root privilegier til at køre dmidecode. Når vi kører kommandoen, kan vi se detaljerede oplysninger om udstyr. Den indeholder en masse information relateret til vores udstyrskomponenter, men vi er kun interesserede i vores samlede hukommelsesstørrelse.
heldigvis kan vi fodre indstillingen –type til kommandoen for forskellige komponenter såsom BIOS, hukommelse, processor, temperaturer og så videre. Indstillingen-type forventer et tal for DMI-typer.
i vores tilfælde ønsker vi at se på DMI-hukommelsestypen, som du kan få adgang til med de tildelte numre 5, 6, 16, 17, 18, 19, 20, 21, og 22. Vi er dog interesserede i nummeret 19, som udskriver de RAM-enheder, der i øjeblikket er knyttet til slots på vores bundkort:
# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1
som vi kan se, har vi kun en enkelt RAM-enhed med 8 GB total størrelse installeret i en af RAM-slots.
6. /proc / meminfo virtuel fil
mappen /proc er en speciel type mappe, der indeholder virtuelle filer. Disse virtuelle filer er en måde at tage et kig på kernen, processer og konfigurationer. Disse filer findes faktisk ikke på disken og tager ikke plads, men de oprettes, når de læses. Adgang til nogle af filerne kræver root-adgang.
der er en speciel virtuel fil med navnet meminfo, inde i /proc-mappen, der kan læses med kommandoer som cat og less. Meminfo-filen indeholder oplysninger om vores fysiske hukommelsesstørrelse blandt andre nyttige oplysninger. Lad os læse/proc / meminfo-filen ved hjælp af cat:
$ cat /proc/meminfo
i eksemplet ovenfor har vi brugt cat-kommandoen, som er et nyttigt værktøj, der kan læse fra en fil eller standardinput. Når kommandoen er udført, vil den læse / proc / meminfo og præsentere os for en lang output vedrørende vores fysiske hukommelse. Vi er kun interesseret i den samlede RAM-størrelse, der vises i de tre øverste linjer i output:
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB
vi udskrev kun de linjer, som vi er interesseret i ved hjælp af hovedkommandoen. Argumentet-n, der leveres til hovedkommandoen, bruges til at specificere antallet af linjer, der skal læses. Størrelserne er trykt i kilobyte og skal give os en ide om, hvad vores samlede, gratis og tilgængelige fysiske hukommelse er.
lad os antage, at vi skriver et Bash-script, hvor vi skal behandle den fysiske RAM-størrelse. Vi kan opnå det ved først at læse /proc/meminfo-filen og derefter grep den samlede hukommelsesstørrelse:
#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"
lad os nu gemme scriptet og gøre det eksekverbart:
$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB
brug af GUI Task Managers
der er en række GUI task managers, som vi kan bruge til at kontrollere for CPU, RAM og netværksbrug ud over at styre processer. Lad os tage et hurtigt kig på de mest populære af dem.
7.1. GNOME System Monitor
GNOME System Monitor er standard task manager, der leveres med GNOME desktop miljø. Men hvis vi kører et andet skrivebordsmiljø, kan vi nemt kigge efter gnome-system-monitor-pakken på vores distributionspakkelager. Når det er installeret, kan vi starte det fra kommandolinjen:
$ gnome-system-monitor
når vi navigerer til fanen Ressourcer, kan vi se vores samlede hukommelsesstørrelse blandt andre statistikker.
7.2. KSysGuard
KSysGuard er standard task manager udviklet af KDE-fællesskabet og leveres som standard med KDE. Tilsvarende, hvis vi bruger et andet skrivebordsmiljø, kan vi nemt installere det på vores system ved at kigge efter ksysguard-pakken i pakkelageret. Vi kan starte den med ksysguard-kommandoen, når den er installeret:
$ ksysguard
når ksysguard starter, kan vi gå til fanen systembelastning og se vores hukommelsesoplysninger sammen med en dejlig graf.
konklusion
i denne artikel kiggede vi på forskellige kommandoer og værktøjer, der kan hjælpe os med at finde ud af den fysiske hukommelsesstørrelse på vores Linuks-system.
vi dækkede den minimale gratis kommando og dens alternative vmstat-kommando. Derefter brugte vi den øverste kommando til at finde ud af forskellige systemoplysninger. Vi kiggede også på dmidecode-værktøjet, og hvordan vi kan udtrække de fysiske hukommelsesoplysninger fra DMI-tabellen.
bagefter lærte vi, hvad /proc-mappen er, og hvordan vi kan læse /proc/meminfo-filen for at kontrollere den samlede RAM-størrelse og bruge den i et bash-script. Endelig lærte vi om et par grafiske task managers, og hvordan vi kan bruge dem til at kontrollere for RAM-brug og statistik.
hvis du har et par års erfaring i økosystemet, og du er interesseret i at dele denne oplevelse med samfundet, kan du se vores retningslinjer for bidrag.