首頁  >  文章  >  運維  >  linux查看記憶體使用情況的命令有哪些

linux查看記憶體使用情況的命令有哪些

青灯夜游
青灯夜游原創
2022-11-30 19:08:0445460瀏覽

指令有:1、free指令,可顯示系統記憶體狀態,包括實體、記憶體和共享記憶體和系統快取的使用情況;2、「cat /proc/meminfo」指令,可讀取「/ proc/meminfo」檔案的內容,顯示記憶體使用;3、vmstat指令,可用來監控CPU使用、行程狀態等資訊;4、top指令;5、htop指令;6、sar指令;7、smem指令;8 、glances命令;9、ps_mem命令。

linux查看記憶體使用情況的命令有哪些

本教學操作環境:linux7.3系統、Dell G3電腦。

我們經常需要檢查伺服器的記憶體使用情況,以及每個進程佔用的內存,避免發生資源短缺進而影響使用者體驗。

對於網站和Web服務,必須具有足夠的記憶體才能處理客戶端請求。如果記憶體不足,在請求高峰時就會變得緩慢,擁堵,甚至服務崩潰。當然桌面系統也是同樣的道理。

記憶體的管理和最佳化,是 Linux 系統效能最佳化的重要組成部分,換句話說,記憶體資源是否充足,會直接影響應用系統(包含作業系統和應用程式)的使用效能。

下面介紹幾個系統指令,透過它們,可以快速查看 Linux 系統中記憶體的使用狀況。

1. 使用free 指令

free 指令是Linux系統中最簡單、最常用的記憶體檢視指令。

free 指令用來顯示系統記憶體狀態,包括系統實體記憶體、虛擬記憶體(swap 交換分割區)、共享記憶體和系統快取的使用情況

範例如下:

free -m

linux查看記憶體使用情況的命令有哪些

free -h

linux查看記憶體使用情況的命令有哪些

#其中,-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

linux查看記憶體使用情況的命令有哪些

最前面的幾行,顯示了記憶體總量,使用量,以及空閒記憶體等資訊。

4. 使用<span style="font-size: 18px;">top</span>


##top

指令一般用於查看進程的CPU和記憶體使用情況;當然也會報告記憶體總量,以及記憶體使用情況,所以可用於監控物理記憶體的使用情況。

在輸出資訊的頂部展示了匯總資訊。

###範例輸出:###
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 MemKiB 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

linux查看記憶體使用情況的命令有哪些

顶部的消息显示了CPU使用率, 以及RAM和交换内存的使用情况。

如果没安装,可以使用类似的命令:

yum install htop -y

6. 使用sar 命令

sar 命令也可以用来监控 Linux 的内存使用状况,通过“sar -r”组合可以查看系统内存和交换空间的使用率。

sar 命令很强大,是分析系统性能的重要工具之一,通过该命令可以全面地获取系统的 CPU、运行队列、磁盘读写(I/O)、分区(交换区)、内存、CPU 中断和网络等性能数据。

如下是执行“sar -r”命令的输出结果:

sar -r 2 3

linux查看記憶體使用情況的命令有哪些

此输出结果中,各个参数表示的含义如下:

  • 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

6 (1).gif

8.使用 glances 命令

glances是用Python编写的跨平台系统监控工具。可以查看所有信息,例如CPU使用情况,内存使用情况,正在运行的进程,网络接口,磁盘I / O,Raid,传感器,文件系统信息,Docker,系统信息,正常运行时间等.

glances

linux查看記憶體使用情況的命令有哪些linux查看記憶體使用情況的命令有哪些

9.使用 ps_mem 命令

ps_mem是一个简单的Python脚本,允许您准确地获取Linux中程序的核心内存使用情况。这可以确定每个程序(而不是每个进程)使用多少 RAM。它计算每个程序使用的内存总量,总计=总和(程序进程的专用RAM)+总和(程序进程的共享RAM)。计算共享 RAM 存在问题,并且该工具会自动为正在运行的内核选择最准确的方法。

ps_mem

linux查看記憶體使用情況的命令有哪些

注:如果执行以下命令提示未发现,请执行“yum install ps_mem”安装

相关推荐:《Linux视频教程

以上是linux查看記憶體使用情況的命令有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn