怎么样查看电脑的内存总量(17 种查看 Linux 物理内存的方法)
编译自:https://www.2daygeek.com/easy-ways-to-check-size-of-physical-memory-ram-in-linux/
作者:RamyaNuvvula
译者:MjSeven
大多数系统管理员在遇到性能问题时会检查CPU和内存利用率。Linux中有许多实用程序可以用于检查物理内存。这些命令有助于我们检查系统中存在的物理内存,还允许用户检查各种方面的内存利用率。
我们大多数人只知道很少的命令,在本文中我们试图包含所有可能的命令。
你可能会想,为什么我想知道所有这些命令,而不是知道一些特定的和例行的命令呢。
不要觉得没用或对此有负面的看法,因为每个人都有不同的需求和看法,所以,对于那些在寻找其它目的的人,这对于他们非常有帮助。
什么是RAM
计算机内存是能够临时或永久存储信息的物理设备。RAM代表随机存取存储器,它是一种易失性存储器,用于存储操作系统,软件和硬件使用的信息。
有两种类型的内存可供选择:
主存辅助内存
主存是计算机的主存储器。CPU可以直接读取或写入此内存。它固定在电脑的主板上。
RAM:随机存取存储器是临时存储。关闭计算机后,此信息将消失。ROM:只读存储器是永久存储,即使系统关闭也能保存数据。方法-1:使用free命令
free显示系统中空闲和已用的物理内存和交换内存的总量,以及内核使用的缓冲区和缓存。它通过解析/proc/meminfo来收集信息。
建议阅读:free–在Linux系统中检查内存使用情况统计(空闲和已用)的标准命令
$free-m
totalusedfreesharedbuff/cacheavailable
Mem:199316818281228153
Swap:12689121311475
$free-g
totalusedfreesharedbuff/cacheavailable
Mem:110000
Swap:12111
方法-2:使用/proc/meminfo文件
/proc/meminfo是一个虚拟文本文件,它包含有关系统RAM使用情况的大量有价值的信息。
它报告系统上的空闲和已用内存(物理和交换)的数量。
$grepMemTotal/proc/meminfo
MemTotal:2041396kB
$grepMemTotal/proc/meminfo|awk'{print$2/1024}'
1993.55
$grepMemTotal/proc/meminfo|awk'{print$2/1024/1024}'
1.94683
方法-3:使用top命令
top命令是Linux中监视实时系统进程的基本命令之一。它显示系统信息和运行的进程信息,如正常运行时间、平均负载、正在运行的任务、登录的用户数、CPU数量和CPU利用率,以及内存和交换信息。运行top命令,然后按下E来使内存利用率以MB为单位显示。
建议阅读:TOP命令示例监视服务器性能
$top
top-14:38:36up1:59,1user,loadaverage:1.83,1.60,1.52
Tasks:223total,2running,221sleeping,0stopped,0zombie
%Cpu(s):48.6us,11.2sy,0.0ni,39.3id,0.3wa,0.0hi,0.5si,0.0st
MiBMem:1993.551total,94.184free,1647.367used,252.000buff/cache
MiBSwap:12689.58+total,11196.83+free,1492.750used.306.465availMem
PIDUSERPRNIVIRTRESSHRS%CPU%MEMTIME+COMMAND
9908daygeek200297144064932439700S55.831.811:45.74WebContent
21942daygeek200201376030870069272S35.015.14:13.75WebContent
4782daygeek200368711622733639156R14.511.116:47.45gnome-shell
方法-4:使用vmstat命令
vmstat是一个漂亮的标准工具,它报告Linux系统的虚拟内存统计信息。vmstat报告有关进程、内存、分页、块IO、陷阱和CPU活动的信息。它有助于Linux管理员在故障检修时识别系统瓶颈。
建议阅读:vmstat–一个报告虚拟内存统计信息的标准且漂亮的工具
$vmstat-s|grep"totalmemory"
2041396Ktotalmemory
$vmstat-s-SM|egrep-ie'totalmemory'
1993Mtotalmemory
$vmstat-s|awk'{print$1/1024/1024}'|head-1
1.94683
方法-5:使用nmon命令
nmon是另一个很棒的工具,用于在Linux终端上监视各种系统资源,如CPU、内存、网络、磁盘、文件系统、NFS、top进程、Power的微分区和资源(Linux版本和处理器)。
只需按下m键,即可查看内存利用率统计数据(缓存、活动、非活动、缓冲、空闲,以MB和百分比为单位)。
建议阅读:nmon–Linux中一个监视系统资源的漂亮的工具
┌nmon─14g──────[Hforhelp]───Hostname=2daygeek──Refresh=2secs───07:24.44─────────────────┐
│MemoryStats─────────────────────────────────────────────────────────────────────────────│
│RAMHighLowSwapPageSize=4KB│
│TotalMB32079.5-0.0-0.020479.0│
│FreeMB11205.0-0.0-0.020479.0│
│FreePercent34.90.00.00.0%│
│MBMBMB│
│Cached=19763.4Active=9617.7│
│Buffers=172.5Swapcached=0.0Inactive=10339.6│
│Dirty=0.0Writeback=0.0Mapped=11.0│
│Slab=636.6Commit_AS=118.2PageTables=3.5│
│───────────────────────────────────────────────────────────────────────────────────────────│
││
││
││
││
││
││
└───────────────────────────────────────────────────────────────────────────────────────────┘
方法-6:使用dmidecode命令
dmidecode是一个读取计算机DMI表内容的工具,它以人类可读的格式显示系统硬件信息。(DMI意即桌面管理接口,也有人说是读取的是SMBIOS——系统管理BIOS)
此表包含系统硬件组件的描述,以及其它有用信息,如序列号、制造商信息、发布日期和BIOS修改等。
建议阅读:Dmidecode–获取Linux系统硬件信息的简便方法
#dmidecode-tmemory|grepSize:
Size:8192MB
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:8192MB
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:8192MB
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:8192MB
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
Size:NoModuleInstalled
只打印已安装的RAM模块。
#dmidecode-tmemory|grepSize:|grep-v"NoModuleInstalled"
Size:8192MB
Size:8192MB
Size:8192MB
Size:8192MB
汇总所有已安装的RAM模块。
#dmidecode-tmemory|grepSize:|grep-v"NoModuleInstalled"|awk'{sum+=$2}END{printsum}'
32768
方法-7:使用hwinfo命令
hwinfo意即硬件信息,它是另一个很棒的实用工具,用于探测系统中存在的硬件,并以人类可读的格式显示有关各种硬件组件的详细信息。
它报告有关CPU、RAM、键盘、鼠标、图形卡、声音、存储、网络接口、磁盘、分区、BIOS和网桥等的信息。
建议阅读:hwinfo(硬件信息)–一个在Linux系统上检测系统硬件信息的好工具
$hwinfo--memory
01:None00.0:10102MainMemory
[Createdatmemory.74]
UniqueID:rdCR.CxwsZFjVASF
HardwareClass:memory
Model:"MainMemory"
MemoryRange:0x00000000-0x7a4abfff(rw)
MemorySize:1GB+896MB
ConfigStatus:cfg=new,avail=yes,need=no,active=unknown
方法-8:使用lshw命令
lshw(代表HardwareLister)是一个小巧的工具,可以生成机器上各种硬件组件的详细报告,如内存配置、固件版本、主板配置、CPU版本和速度、缓存配置、USB、网卡、显卡、多媒体、打印机、总线速度等。
它通过读取/proc目录和DMI表中的各种文件来生成硬件信息。
建议阅读:LSHW(HardwareLister)–一个在Linux上获取硬件信息的好工具
$sudolshw-short-classmemory
[sudo]passwordfordaygeek:
H/WpathDeviceClassDescription
==================================================
/0/0memory128KiBBIOS
/0/1memory1993MiBSystemmemory
方法-9:使用inxi命令
inxi是一个很棒的工具,它可以检查Linux上的硬件信息,并提供了大量的选项来获取Linux系统上的所有硬件信息,这些特性是我在Linux上的其它工具中从未发现的。它是从locsmif编写的古老的但至今看来都异常灵活的infobash演化而来的。
inxi是一个脚本,它可以快速显示系统硬件、CPU、驱动程序、Xorg、桌面、内核、GCC版本、进程、RAM使用情况以及各种其它有用的信息,还可以用于论坛技术支持和调试工具。
建议阅读:inxi–一个检查Linux上硬件信息的好工具
$inxi-F|grep"Memory"
Info:Processes:234Uptime:3:10Memory:1497.3/1993.6MBClient:Shell(bash)inxi:2.3.37
方法-10:使用screenfetch命令
screenfetch是一个bash脚本。它将自动检测你的发行版,并在右侧显示该发行版标识的ASCII艺术版本和一些有价值的信息。
建议阅读:ScreenFetch–以ASCII艺术标志在终端显示Linux系统信息
$screenfetch
./+o+-daygeek@ubuntu
yyyyy--yyyyyy+OS:Ubuntu17.10artful
://+//////-yyyyyyoKernel:x86_64Linux4.13.0-37-generic
.++.:/++++++/-.+sss/`Uptime:44m
.:++o:/++++++++/:--:/-Packages:1831
o:+o+:++.`..```.-/oo+++++/Shell:bash4.4.12
.:+o:+o/.`+sssoo+/Resolution:1920x955
.++/+:+oo+o:`/sssooo.DE:GNOME
/+++//+:`oo+o/::--:.WM:GNOMEShell
\+/+o+++`o++o++////.WMTheme:Adwaita
.++.o+++oo+:`/dddhhh.GTKTheme:Azure[GTK2/3]
.+.o+oo:.`oddhhhh+IconTheme:Papirus-Dark
\+.++o+o``-````.:ohdhhhhh+Font:Ubuntu11
`:o+++`ohhhhhhhhyo++os:CPU:IntelCorei7-6700HQ@2x2.592GHz
.o:`.syhhhhhhh/.oo++o`GPU:llvmpipe(LLVM5.0,256bits)
/osyyyyyyo++ooo+++/RAM:1521MiB/1993MiB
`````+oo+++o\:
`oo++.
方法-11:使用neofetch命令
neofetch是一个跨平台且易于使用的命令行(CLI)脚本,它收集你的Linux系统信息,并将其作为一张图片显示在终端上,也可以是你的发行版徽标,或者是你选择的任何ascii艺术。
建议阅读:Neofetch–以ASCII分发标志来显示Linux系统信息
$neofetch
.-/+oossssoo+/-.daygeek@ubuntu
`:+ssssssssssssssssss+:`--------------
-+ssssssssssssssssssyyssss+-OS:Ubuntu17.10x86_64
.ossssssssssssssssssdMMMNysssso.Host:VirtualBox1.2
/ssssssssssshdmmNNmmyNMMMMhssssss/Kernel:4.13.0-37-generic
+ssssssssshmydMMMMMMMNddddyssssssss+Uptime:47mins
/sssssssshNMMMyhhyyyyhmNMMMNhssssssss/Packages:1832
.ssssssssdMMMNhsssssssssshNMMMdssssssss.Shell:bash4.4.12
+sssshhhyNMMNyssssssssssssyNMMMysssssss+Resolution:1920x955
ossyNMMMNyMMhsssssssssssssshmmmhsssssssoDE:ubuntu:GNOME
ossyNMMMNyMMhsssssssssssssshmmmhsssssssoWM:GNOMEShell
+sssshhhyNMMNyssssssssssssyNMMMysssssss+WMTheme:Adwaita
.ssssssssdMMMNhsssssssssshNMMMdssssssss.Theme:Azure[GTK3]
/sssssssshNMMMyhhyyyyhdNMMMNhssssssss/Icons:Papirus-Dark[GTK3]
+sssssssssdmydMMMMMMMMddddyssssssss+Terminal:gnome-terminal
/ssssssssssshdmNNNNmyNMMMMhssssss/CPU:Inteli7-6700HQ(2)@2.591GHz
.ossssssssssssssssssdMMMNysssso.GPU:VirtualBoxGraphicsAdapter
-+sssssssssssssssssyyyssss+-Memory:1620MiB/1993MiB
`:+ssssssssssssssssss+:`
.-/+oossssoo+/-.
方法-12:使用dmesg命令
dmesg(代表显示消息或驱动消息)是大多数类Unix操作系统上的命令,用于打印内核的消息缓冲区。
$dmesg|grep"Memory"
[0.000000]Memory:1985916K/2096696Kavailable(12300Kkernelcode,2482Krwdata,4000Krodata,2372Kinit,2368Kbss,110780Kreserved,0Kcma-reserved)
[0.012044]x86/mm:Memoryblocksize:128MB
方法-13:使用atop命令
atop是一个用于Linux的ASCII全屏系统性能监视工具,它能报告所有服务器进程的活动(即使进程在间隔期间已经完成)。
它记录系统和进程活动以进行长期分析(默认情况下,日志文件保存28天),通过使用颜色等来突出显示过载的系统资源。它结合可选的内核模块netatop显示每个进程或线程的网络活动。
建议阅读:Atop–实时监控系统性能,资源,进程和检查资源利用历史
$atop-m
ATOP-ubuntu2018/03/3119:34:08-------------10selapsed
PRC|sys0.47s|user2.75s|||#proc219|#trun1|#tslpi802|#tslpu0|#zombie0|clones7|||#exit4|
CPU|sys7%|user22%|irq0%|||idle170%|wait0%||steal0%|guest0%||curf2.59GHz|curscal?%|
cpu|sys3%|user11%|irq0%|||idle85%|cpu001w0%||steal0%|guest0%||curf2.59GHz|curscal?%|
cpu|sys4%|user11%|irq0%|||idle85%|cpu000w0%||steal0%|guest0%||curf2.59GHz|curscal?%|
CPL|avg11.98||avg53.56|avg153.20|||csw14894||intr6610|||numcpu2||
MEM|tot1.9G|free101.7M|cache244.2M|dirty0.2M|buff6.9M|slab92.9M|slrec35.6M|shmem97.8M|shrss21.0M|shswp3.2M|vmbal0.0M|hptot0.0M|hpuse0.0M|
SWP|tot12.4G|free11.6G|||||||||vmcom7.9G||vmlim13.4G|
PAG|scan0|steal0||stall0|||||||swin3||swout0|
DSK|sda|busy0%||read114|write37|KiB/r21|KiB/w6||MBr/s0.2|MBw/s0.0|avq6.50||avio0.26ms|
NET|transport|tcpi11|tcpo17|udpi4|udpo8|tcpao3|tcppo0||tcprs3|tcpie0|tcpor0|udpnp0|udpie0|
NET|network|ipi20||ipo33|ipfrw0|deliv20|||||icmpi5||icmpo0|
NET|enp0s30%|pcki11|pcko28|sp1000Mbps|si1Kbps|so1Kbps||coll0|mlti0|erri0|erro0|drpi0|drpo0|
NET|lo----|pcki9|pcko9|sp0Mbps|si0Kbps|so0Kbps||coll0|mlti0|erri0|erro0|drpi0|drpo0|
PIDTIDMINFLTMAJFLTVSTEXTVSLIBSVDATAVSTACKVSIZERSIZEPSIZEVGROWRGROWSWAPSZRUIDEUIDMEMCMD1/1
2536-9410188K127.3M551.2M144K2.3G281.2M0K0K344K6556Kdaygeekdaygeek14%WebContent
2464-750188K187.7M680.6M132K2.3G226.6M0K0K212K42088Kdaygeekdaygeek11%firefox
2039-4199616K163.6M423.0M132K3.5G220.2M0K0K2936K109.6Mdaygeekdaygeek11%gnome-shell
10822-104K16680K377.0M132K3.4G193.4M0K0K0K0Krootroot10%java
方法-14:使用htop命令
htop是由Hisham用ncurses库开发的用于Linux的交互式进程查看器。与top命令相比,htop有许多特性和选项。
建议阅读:使用Htop命令监视系统资源
$htop
1[|||||||||||||13.0%]Tasks:152,587thr;1running
2[|||||||||||||||||||||||||25.0%]Loadaverage:0.912.032.66
Mem[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||1.66G/1.95G]Uptime:01:14:53
Swp[||||||782M/12.4G]
PIDUSERPRINIVIRTRESSHRSCPU%MEM%TIME+Command
2039daygeek2003541M214M46728S36.610.822:36.77/usr/bin/gnome-shell
2045daygeek2003541M214M46728S10.310.83:02.92/usr/bin/gnome-shell
2046daygeek2003541M214M46728S8.310.83:04.96/usr/bin/gnome-shell
6080daygeek200807M3722824352S2.11.80:11.99/usr/lib/gnome-terminal/gnome-terminal-server
2880daygeek2002205M164M17048S2.18.37:16.50/usr/lib/firefox/firefox-contentproc-childID6-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66
6125daygeek2001916M159M92352S2.18.02:09.14/usr/lib/firefox/firefox-contentproc-childID7-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66
2536daygeek2002335M243M26792S2.112.26:25.77/usr/lib/firefox/firefox-contentproc-childID1-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66
2653daygeek2002237M185M20788S1.49.33:01.76/usr/lib/firefox/firefox-contentproc-childID4-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51:0|57:128|58:10000|63:0|65:400|66
方法-15:使用corefreq实用程序
CoreFreq是为Intel64位处理器设计的CPU监控软件,支持的架构有Atom、Core2、Nehalem、SandyBridge和superior,AMD家族0F。
CoreFreq提供了一个框架来以高精确度检索CPU数据。
建议阅读:CoreFreq–一个用于Linux系统的强大的CPU监控工具
$./corefreq-cli-k
Linux:
|-Release[4.13.0-37-generic]
|-Version[#42-UbuntuSMPWedMar714:13:23UTC2018]
|-Machine[x86_64]
Memory:
|-TotalRAM2041396KB
|-SharedRAM99620KB
|-FreeRAM108428KB
|-BufferRAM8108KB
|-TotalHigh0KB
|-FreeHigh0KB
方法-16:使用glances命令
Glances是用Python编写的跨平台基于curses(LCTT译注:curses是一个Linux/Unix下的图形函数库)的系统监控工具。我们可以说它一应俱全,就像在最小的空间含有最大的信息。它使用psutil库从系统中获取信息。
Glances可以监视CPU、内存、负载、进程列表、网络接口、磁盘I/O、Raid、传感器、文件系统(和文件夹)、Docker、监视器、警报、系统信息、正常运行时间、快速预览(CPU、内存、负载)等。
建议阅读:Glances(一应俱全)–一个Linux的高级的实时系统性能监控工具
$glances
ubuntu(Ubuntu17.1064bit/Linux4.13.0-37-generic)-IP192.168.1.6/24Uptime:1:08:40
CPU[||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||90.6%]CPU-90.6%nice:0.0%ctx_sw:4KMEM\78.4%active:942MSWAP-5.9%LOAD2-core
MEM[|||||||||||||||||||||||||||||||||||||||||||||||||||||||||78.0%]user:55.1%irq:0.0%inter:1797total:1.95Ginactive:562Mtotal:12.4G1min:4.35
SWAP[||||5.9%]system:32.4%iowait:1.8%sw_int:897used:1.53Gbuffers:14.8Mused:749M5min:4.38
idle:7.6%steal:0.0%free:431Mcached:273Mfree:11.7G15min:3.38
NETWORKRx/sTx/sTASKS211(735thr),4run,207slp,0othsortedautomaticallybymemory_percent,flatview
docker00b232b
enp0s312Kb4KbSystemd7Servicesloaded:197active:196failed:1
lo616b616b
_h478e48e0b232bCPU%MEM%VIRTRESPIDUSERNISTIME+R/sW/sCommand
63.818.92.33G377M2536daygeek0R5:57.7800/usr/lib/firefox/firefox-contentproc-childID1-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
DefaultGateway83ms78.510.93.46G217M2039daygeek0S21:07.4600/usr/bin/gnome-shell
8.510.12.32G201M2464daygeek0S8:45.6900/usr/lib/firefox/firefox-new-window
DISKI/OR/sW/s1.18.52.19G170M2653daygeek0S2:56.2900/usr/lib/firefox/firefox-contentproc-childID4-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
dm-0001.77.22.15G143M2880daygeek0S7:10.4600/usr/lib/firefox/firefox-contentproc-childID6-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
sda19.46M12K0.04.91.78G97.2M6125daygeek0S1:36.5700/usr/lib/firefox/firefox-contentproc-childID7-isForBrowser-intPrefs6:50|7:-1|19:0|34:1000|42:20|43:5|44:10|51
方法-17:使用Gnome系统监视器
Gnome系统监视器是一个管理正在运行的进程和监视系统资源的工具。它向你显示正在运行的程序以及耗费的处理器时间,内存和磁盘空间。
via:https://www.2daygeek.com/easy-ways-to-check-size-of-physical-memory-ram-in-linux/
作者:RamyaNuvvula译者:MjSeven校对:wxy
本文由LCTT原创编译,Linux中国荣誉推出
点击“了解更多”可访问文内链接