översikt
ibland kan vi behöva kontrollera om det finns total minnesstorlek på en server som kör Linux eller vi kan behöva använda minnesstatistik i skalskript. Lyckligtvis har vi tillgång till många verktyg som vi kan använda för att kontrollera om det finns totalt fysiskt minne. I denna handledning kommer vi att ta olika tillvägagångssätt för att tjäna det syftet genom att använda flera användbara kommandon och verktyg.
2. gratis kommando
gratis är det enklaste av alla kommandon vi ser. Den används för att skriva ut den fysiska och byta minnesanvändning-som standard skrivs den ut till standardutgång. Det fria kommandot är ett av de allmänt använda kommandona för att snabbt söka efter RAM-statistik eftersom det är tillgängligt på de flesta Linux-distributioner. Vi kan helt enkelt skriva det fria kommandot på vår terminal utan några flaggor:
$ free
total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0
som vi kan skrivs storleken på det fysiska minnet i byte. Vi kan dock enkelt skriva ut utmatningen i ett läsbart format med hjälp av-h eller –human-flaggan:
$ free -h
total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B
som framgår av utgången ovan har vi totalt 7, 6 GiB RAM. Dessutom finns det många andra alternativ som kan användas för att skriva ut utmatningen i det format vi gillar som –kilo, –mega, –Giga och så vidare. Ett annat intressant alternativ är-S-alternativet:
$ free -h -s 5
– s-flaggan står för sekunder, så gratis kommer att skriva ut RAM-användningen var 5: e sekund i det här exemplet. Det är särskilt användbart om vi vill övervaka RAM-användningen med ett angivet intervall. Vi kan enkelt avsluta processen med Ctrl + C kortkommando.
3. vmstat Command
liksom det fria kommandot är vmstat (virtual memory statistics) också tillgängligt på de flesta Linux-distributioner. Som standard, när vi skriver vmstat-kommandot, kommer det att skriva ut det fria, buffrade och cachade minnet tillsammans med swap, CPU, io och systeminformation:
$ 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
flaggan-w eller-wide skriver ut utmatningen i ett brett läsbart format. Eftersom vi är intresserade av total RAM-storlek, kommer vi att lägga till flaggan – s eller-stats:
$ 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örsta posten i utgången är totalt fysiskt RAM. Ibland behöver vi inte all information, så vi kan använda grep för att extrahera endast önskad post:
$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory
4. top Command
top är i grunden en kommandoradsuppgiftshanterare med en realtidsutgång. Det används för att kontrollera de processer som körs i en ren tabelllayout. Det visar oss också CPU, RAM och systeminformation i allmänhet. Vi kan avfyra det genom att helt enkelt köra toppkommandot:
$ 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 minnesinformationen bredvid mem-fältet och observera att vi har totalt 7833 MiB Totalt RAM.
5. dmidecode Utility
dmidecode är ett hjälparverktyg som skriver ut information om hårdvarukomponenter – som hårdvaruspecifikationer, serienummer och BIOS – versioner-i ett läsbart format. Maskinvaruinformationen extraheras från DMI-tabellen. Vi kan också använda den för att hitta intressant information om vårt system, till exempel det maximala stödda minnet.
5.1. Installera dmidecode
dmidecode är inte installerat på vissa Linux-distributioner som standard, så vi kommer att installera det först. Vi kan installera dmidecode direkt från vårt distributionsförvar med hjälp av en pakethanterare.
för Ubuntu – baserade distributioner kan vi installera paketet via apt:
# apt install dmidecode
för RHEL, Fedora och CentOS kan vi använda yum:
# yum install dmidecode
på Arch-baserade distributioner, helt enkelt använda pacman:
# pacman -Sy dmidecode
5.2. Använda dmidecode
när installationen är klar kan vi köra kommandot dmidecode från vår terminal:
# dmidecode
vi måste ha root-privilegier för att köra dmidecode. När vi kör kommandot kan vi se detaljerad maskinvaruinformation. Den innehåller mycket information relaterad till våra hårdvarukomponenter, men vi är bara intresserade av vår totala minnesstorlek.
lyckligtvis kan vi mata alternativet –typ till kommandot för olika komponenter som BIOS, minne, processor, temperaturer och så vidare. Alternativet-typ förväntar sig ett nummer för DMI-typer.
i vårt fall vill vi titta på minnes DMI-typen, som kan nås med de tilldelade numren 5, 6, 16, 17, 18, 19, 20, 21, och 22. Vi är dock intresserade av numret 19, som kommer att skriva ut RAM-enheterna som för närvarande är anslutna till slitsarna på vårt moderkort:
# 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 bara en enda RAM-enhet med 8 GB total storlek installerad i en av RAM-kortplatserna.
6. /proc / meminfo virtuell fil
/ proc-katalogen är en speciell typ av katalog som innehåller virtuella filer. Dessa virtuella filer är ett sätt att ta en titt på Linux-kärnan, processerna och konfigurationerna. Dessa filer finns faktiskt inte på disken och tar inget utrymme, men de skapas när de läses. Tillgång till vissa av filerna kräver root-åtkomst.
det finns en speciell virtuell fil med namnet meminfo, inuti / proc-katalogen, som kan läsas med kommandon som cat och less. Meminfo-filen innehåller information om vår fysiska minnesstorlek bland annan användbar information. Låt oss läsa/proc / meminfo-filen med cat:
$ cat /proc/meminfo
i exemplet ovan har vi använt cat-kommandot, vilket är ett användbart verktyg som kan läsa från en fil eller standardinmatning. När kommandot körs kommer det att läsa / proc / meminfo och presentera oss med en lång utgång angående vårt fysiska minne. Vi är bara intresserade av den totala RAM-storleken, som visas i de tre bästa raderna i utgången:
$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB
vi skrev bara ut de rader som vi är intresserade av genom att använda huvudkommandot. Argumentet-n som ges till huvudkommandot används för att ange antalet rader som ska läsas. Storlekarna är tryckta i kilobytes och bör ge oss en uppfattning om vad vårt totala, fria och tillgängliga fysiska minne är.
låt oss anta att vi skriver ett Bash-skript där vi behöver bearbeta den fysiska RAM-storleken. Vi kan uppnå det genom att läsa/proc / meminfo-filen först och sedan grep den totala minnesstorleken:
#!/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"
låt oss nu spara skriptet och göra det körbart:
$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB
använda GUI Task Managers
det finns en mängd olika GUI task managers som vi kan använda för att kontrollera CPU, RAM och nätverksanvändning förutom att hantera processer. Låt oss ta en snabb titt på de mest populära för Linux.
7.1. GNOME System Monitor
GNOME System Monitor är standard Aktivitetshanteraren som levereras med skrivbordsmiljön GNOME. Men om vi kör en annan skrivbordsmiljö kan vi enkelt leta efter gnome-system-monitor-paketet i vårt distributionspaketförvar. När den är installerad kan vi starta den från kommandoraden:
$ gnome-system-monitor
när vi navigerar till fliken Resurser kan vi se vår totala minnesstorlek bland annan statistik.
7.2. KSysGuard
KSysGuard är standardaktivitetshanteraren som utvecklats av KDE-communityn och levereras som standard med KDE. På samma sätt, om vi använder en annan skrivbordsmiljö, kan vi enkelt installera den på vårt system genom att leta efter ksysguard-paketet i paketförvaret. Vi kan starta det med kommandot ksysguard när det är installerat:
$ ksysguard
när ksysguard startar kan vi gå till fliken systembelastning och se vår minnesinformation tillsammans med en fin graf.
slutsats
i den här artikeln tittade vi på olika kommandon och verktyg som kan hjälpa oss att ta reda på den fysiska minnesstorleken för vårt Linux-system.
vi täckte det minimala fria kommandot och dess alternativa vmstat-kommando. Sedan använde vi toppkommandot för att ta reda på olika systeminformation. Vi tittade också på dmidecode-verktyget och hur vi kan extrahera den fysiska minnesinformationen från DMI-tabellen.
efteråt lärde vi oss vad /proc-katalogen är och hur vi kan läsa /proc/meminfo-filen för att kontrollera total RAM-storlek och använda den i ett bash-skript. Slutligen lärde vi oss om ett par grafiska uppgiftshanterare och hur vi kan använda dem för att söka efter RAM-användning och statistik.
om du har några års erfarenhet av Linux-ekosystemet, och du är intresserad av att dela den erfarenheten med samhället, ta en titt på våra Bidragsriktlinjer.