指令有:1、free指令,可顯示系統記憶體狀態,包括實體、記憶體和共享記憶體和系統快取的使用情況;2、「cat /proc/meminfo」指令,可讀取「/ proc/meminfo」檔案的內容,顯示記憶體使用;3、vmstat指令,可用來監控CPU使用、行程狀態等資訊;4、top指令;5、htop指令;6、sar指令;7、smem指令;8 、glances命令;9、ps_mem命令。
本教學操作環境:linux7.3系統、Dell G3電腦。
我們經常需要檢查伺服器的記憶體使用情況,以及每個進程佔用的內存,避免發生資源短缺進而影響使用者體驗。
對於網站和Web服務,必須具有足夠的記憶體才能處理客戶端請求。如果記憶體不足,在請求高峰時就會變得緩慢,擁堵,甚至服務崩潰。當然桌面系統也是同樣的道理。
記憶體的管理和最佳化,是 Linux 系統效能最佳化的重要組成部分,換句話說,記憶體資源是否充足,會直接影響應用系統(包含作業系統和應用程式)的使用效能。
下面介紹幾個系統指令,透過它們,可以快速查看 Linux 系統中記憶體的使用狀況。
free
指令是Linux系統中最簡單、最常用的記憶體檢視指令。
free 指令用來顯示系統記憶體狀態,包括系統實體記憶體、虛擬記憶體(swap 交換分割區)、共享記憶體和系統快取的使用情況
範例如下:
free -m
free -h
#其中,-m
選項是以MB為單位來展示記憶體使用資訊; -h
選項則是以人類(human)可讀的單位來展示。
上面的範例中, Mem:
這一行:
#total
表示總共有7822MB
的物理記憶體(RAM),即7.6G
。 used
表示實體記憶體的使用量,大約是 322M
。 free
表示空閒記憶體;shared
表示共享記憶體?;buff/cache
表示快取和緩衝記憶體量; Linux 系統會將很多東西快取起來以提高效能,這部分記憶體可以在必要時進行釋放,給其他程式使用。 available
表示可用記憶體;輸出結果很容易理解。 Swap
這一行表示交換內存,從範例中的數字可以看到,基本上沒使用到交換記憶體。
2. 查看<span style="font-size: 18px;">/proc/meminfo</span>
另一種方法是讀取/proc/meminfo
檔案。我們知道, /proc
目錄下都是虛擬文件,包含核心以及作業系統相關的動態資訊。
$ cat /proc/meminfo MemTotal: 8010408 kB MemFree: 323424 kB MemAvailable: 6956280 kB Buffers: 719620 kB Cached: 5817644 kB SwapCached: 132 kB Active: 5415824 kB Inactive: 1369528 kB Active(anon): 385660 kB Inactive(anon): 249292 kB Active(file): 5030164 kB Inactive(file): 1120236 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 4194304 kB SwapFree: 4193580 kB Dirty: 60 kB Writeback: 0 kB AnonPages: 247888 kB Mapped: 61728 kB Shmem: 386864 kB Slab: 818320 kB SReclaimable: 788436 kB SUnreclaim: 29884 kB KernelStack: 2848 kB PageTables: 5780 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 8199508 kB Committed_AS: 942596 kB VmallocTotal: 34359738367 kB VmallocUsed: 22528 kB VmallocChunk: 34359707388 kB HardwareCorrupted: 0 kB AnonHugePages: 88064 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 176000 kB DirectMap2M: 6115328 kB DirectMap1G: 4194304 kB
專注於這些資料:
MemTotal
, 總記憶體MemFree
, 空閒記憶體MemAvailable
, 可用記憶體Buffers
, 緩衝Cached
, 快取#SwapTotal
, 交換記憶體SwapFree
, 空閒交換記憶體提供的資訊和free
指令看到的差不多。
3. 使用<span style="font-size: 18px;">vmstat</span>
# 指令
vmstat指令,是Virtual Meomory Statistics(虛擬記憶體統計)的縮寫,可用來監控CPU 使用、處理狀態、記憶體使用、虛擬記憶體使用、硬碟輸入/輸出狀態等資訊。
使用 vmstat -s
指令和選項,可以對記憶體使用情況進行統計, 類似於 /proc/meminfo
。
範例如下:
vmstat -s
最前面的幾行,顯示了記憶體總量,使用量,以及空閒記憶體等資訊。
4. 使用<span style="font-size: 18px;">top</span>
##top
在輸出資訊的頂部展示了匯總資訊。
###範例輸出:###top - 15:20:30 up 6:57, 5 users, load average: 0.64, 0.44, 0.33 Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie %Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake 1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg 7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail
各种操作系统提供的参数略有不同,一般来说都可以根据CPU和内存来排序。
例如:
# CentOS top -o %MEM top -o %CPU # mac top -o mem top -o cpu
碰到不清楚的,请使用 top -h
查看帮助信息。
重点关注顶部的 KiB Mem
和 KiB Swap
这两行。 表示内存的总量、使用量,以及可用量。
buffer 和 cache 部分,和 free
命令展示的差不多。
5. 使用 <span style="font-size: 18px;">htop</span>
命令
htop 命令是 Linux/Unix 系统的交互式进程查看器。它是一个文本模式应用程序,需要ncurses库,它是由Hisham开发的。它被设计为顶级命令的替代方法。这类似于 top 命令,但允许您垂直和水平滚动以查看运行系统的所有进程。htop带有Visual Colors,它具有额外的好处,并且在跟踪系统性能时非常明显。可以自由地执行与进程相关的任何任务,例如进程终止和重新设置,而无需输入其PID。
与 top
命令类似, 但 htop
还展示了其他的各种信息, 而且支持彩色显示。
htop
顶部的消息显示了CPU使用率, 以及RAM和交换内存的使用情况。
如果没安装,可以使用类似的命令:
yum install htop -y
6. 使用sar
命令
sar 命令也可以用来监控 Linux 的内存使用状况,通过“sar -r”组合可以查看系统内存和交换空间的使用率。
sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、运行队列、磁盘读写(I/O)、分区(交换区)、内存、CPU 中断和网络等性能数据。
如下是执行“sar -r”命令的输出结果:
sar -r 2 3
此输出结果中,各个参数表示的含义如下:
kbmemfree:表示空闲的物理内存的大小;
kbmemeused:表示已使用的物理内存的大小;
%memused:表示已使用内存占总内存大小的百分比;
kbbuffers:表示缓冲区所使用的物理内存的大小;
kbcached:表示告诉缓存所使用的物理内存的大小;
kbcommit 和 %commit:分别表示当前系统中应用程序使用的内存大小和百分比;
相比 free 命令,sar 命令的输出信息更加人性化,不仅给出了内存使用量,还给出了内存使用的百分比以及统计的平均值。比如说,仅通过 %commit 一项就可以得知,当前系统中的内存资源充足。
7.使用 smem
命令
smem是一个工具,可以提供大量Linux系统内存使用情况的报告。与现有工具不同,smem 可以报告比例集大小 (PSS)、唯一集大小 (USS) 和常驻集大小 (RSS)。成比例集大小 (PSS):指虚拟内存系统中库和应用程序使用的内存量。唯一集大小 (USS) :未共享的内存报告为 USS(唯一集大小)。驻留集大小 (RSS):物理内存(通常在多个应用程序之间共享)使用情况的标准度量(称为驻留集大小 (RSS))将大大高估内存使用量。注:如果执行以下命令提示未找到,请执行“yum install smem”安装
smem -tk
8.使用 glances
命令
glances是用Python编写的跨平台系统监控工具。可以查看所有信息,例如CPU使用情况,内存使用情况,正在运行的进程,网络接口,磁盘I / O,Raid,传感器,文件系统信息,Docker,系统信息,正常运行时间等.
glances
9.使用 ps_mem
命令
ps_mem是一个简单的Python脚本,允许您准确地获取Linux中程序的核心内存使用情况。这可以确定每个程序(而不是每个进程)使用多少 RAM。它计算每个程序使用的内存总量,总计=总和(程序进程的专用RAM)+总和(程序进程的共享RAM)。计算共享 RAM 存在问题,并且该工具会自动为正在运行的内核选择最准确的方法。
ps_mem
注:如果执行以下命令提示未发现,请执行“yum install ps_mem
”安装
相关推荐:《Linux视频教程》
以上是linux查看記憶體使用情況的命令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!