Linux下查詢內存使用情況的常用命令


1、free命令

  free 命令會顯示系統內存的使用情況,包括物理內存、交換內存(swap)和內核緩沖區內存等。

$ free
              total        used        free      shared  buff/cache   available
Mem:       32946324     2489392    11422656     1622872    19034276    28352888
Swap:             0           0           0

釋義:

  Mem:內存使用情況。

  Swap:交換空間(虛擬內存)使用情況。

  total:系統總共可用物理內存、交換空間大小。

  used:已經被使用的物理內存、交換空間大小。

  free:剩余可用物理內存、交換空間大小。

  shared:被共享使用的物理內存大小。

  buff/cache:被 buffer 和 cache 使用的物理內存大小。

  available:還可以被應用程序使用的物理內存大小。

常見用法:

free -h      //以更友好的方式顯示,會以K、M、G為單位來顯示
free -h -s 3   //以一定時間間隔重復的輸出,這個命令是每3秒輸出一次

  free 命令中的信息都來自於 /proc/meminfo 文件。

2、vmstat命令

  vmstat 是Virtual Meomory Statistics(虛擬內存統計)的縮寫,可對操作系統的虛擬內存、進程、CPU活動進行監控,是對系統的整體情況進行的統計。

$ vmstat
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 14376368 161976 1130836 0 0 0 3 2 2 0 0 100 0 0

  與內存使用情況相關的是memory列和swap列,我們只看這兩列。

memory列

  swpd:使用的虛擬內存大小。

  free:空閑物理內存大小。

  buff:buffer cache內存大小。

  cache:page cache的內存大小。

swap列

  si:每秒從交換區讀入到內存的大小,由磁盤調入內存(單位:kb/s)

  so:每秒從內存寫出到交換區的大小,由內存調入磁盤(單位:kb/s)

常見用法:

vmstat 1    //每隔1s打印一次
vmstat 1 5   //每隔1秒打印一次,打印五次
vmstat -s    //顯示內存相關統計信息及多種系統活動數量

3、top命令

  使用top命令,可以查看正在運行的進程和系統負載信息,包括cpu負載、內存使用、各個進程所占系統資源等,top命令以一定頻率動態更新這些統計信息。

top - 10:45:21 up 211 days, 17:14,  2 users,  load average: 0.08, 0.09, 0.03
Tasks: 228 total,   1 running, 227 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.1%sy,  0.1%ni, 99.4%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  32880232k total, 22032060k used, 10848172k free,   569680k buffers
Swap:        0k total,        0k used,        0k free, 17771208k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                               
 9757 root      20   0 15160 1224  836 R  2.0  0.0   0:00.01 top                                                                                                    
    1 root      20   0 19364 1644 1312 S  0.0  0.0   2:06.03 init                                                                                                   
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.30 kthreadd                                                                                               
    3 root      RT   0     0    0    0 S  0.0  0.0   0:02.75 migration/0                                                                                            
    4 root      20   0     0    0    0 S  0.0  0.0   2:04.41 ksoftirqd/0                                                                                            
    5 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/0                                                                                              
    6 root      RT   0     0    0    0 S  0.0  0.0   0:39.92 watchdog/0                                                                                             
    7 root      RT   0     0    0    0 S  0.0  0.0   0:01.44 migration/1                                                                                            
    8 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/1                                                                                              
    9 root      20   0     0    0    0 S  0.0  0.0   1:23.26 ksoftirqd/1                                                                                            
   10 root      RT   0     0    0    0 S  0.0  0.0   0:31.05 watchdog/1                                                                                             
   11 root      RT   0     0    0    0 S  0.0  0.0   0:02.06 migration/2                                                                                            
   12 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/2                                                                                              
   13 root      20   0     0    0    0 S  0.0  0.0   0:45.78 ksoftirqd/2                                                                                            
   14 root      RT   0     0    0    0 S  0.0  0.0   0:29.91 watchdog/2                                                                                             
   15 root      RT   0     0    0    0 S  0.0  0.0   0:10.61 migration/3                                                                                            
   16 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/3                                                                                              
   17 root      20   0     0    0    0 S  0.0  0.0   1:57.03 ksoftirqd/3                                                                                            
   18 root      RT   0     0    0    0 S  0.0  0.0   0:32.77 watchdog/3                                                                                             
   19 root      RT   0     0    0    0 S  0.0  0.0   0:01.82 migration/4                                                                                            
   20 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/4                                                                                              
   21 root      20   0     0    0    0 S  0.0  0.0   1:58.64 ksoftirqd/4                                                                                            
   22 root      RT   0     0    0    0 S  0.0  0.0   0:32.96 watchdog/4                                                                                             
   23 root      RT   0     0    0    0 S  0.0  0.0   0:03.28 migration/5                                                                                            
   24 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/5                                                                                              
   25 root      20   0     0    0    0 S  0.0  0.0   0:50.67 ksoftirqd/5                                                                                            
   26 root      RT   0     0    0    0 S  0.0  0.0   0:30.28 watchdog/5                                                                                             
   27 root      RT   0     0    0    0 S  0.0  0.0   0:06.60 migration/6                                                                                            
   28 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 stopper/6

   反映系統內存使用狀況的是下面這兩行:

Mem:  32880232k total, 22032060k used, 10848172k free,   569680k buffers
Swap:        0k total,        0k used,        0k free, 17771208k cached

  Mem行是物理內存使用情況,分別是:物理內存總量,已使用的物理內存總量,空閑物理內存總量,用作內核緩存區的內存量。

  Swap行是交換區使用情況,分別是:交換區總量,已使用的交換區總量,空閑交換區總量,緩沖的交換區總量。

  

  Top命令的下側區域顯示的是各個進程使用的系統資源統計信息,內存相關列如下:

  • VIRT列:進程使用的虛擬內存總量,單位kb。
  • RES列:進程使用的、未被換出的物理內存大小,單位kb。
  • SHR列:共享內存大小,單位kb。
  • %MEM 列:進程使用的物理內存百分比。

4、cat /proc/meminfo

  /proc/meminfo是了解Linux系統內存使用狀況的主要接口,我們最常用的”free”、”vmstat”等命令就是通過它獲取數據的。/proc/meminfo所包含的信息比”free”等命令要豐富得多,但也很復雜,不再一一解釋了。感興趣的話可以看看這篇文章:http://linuxperf.com/?p=142,對 /proc/meminfo 有較詳細的解釋。

$ cat /proc/meminfo
MemTotal:       16430636 kB
MemFree:        14376492 kB
MemAvailable:   15298732 kB
Buffers:          161976 kB
Cached:          1022440 kB
SwapCached:            0 kB
Active:          1369780 kB
Inactive:         438696 kB
Active(anon):     624376 kB
Inactive(anon):    49444 kB
Active(file):     745404 kB
Inactive(file):   389252 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                60 kB
Writeback:             0 kB
AnonPages:        624068 kB
Mapped:            88140 kB
Shmem:             49752 kB
Slab:             108076 kB
SReclaimable:      82864 kB
SUnreclaim:        25212 kB
KernelStack:        4464 kB
PageTables:        10480 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     8215316 kB
Committed_AS:    1811204 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       34780 kB
VmallocChunk:   34359695100 kB
HardwareCorrupted:     0 kB
AnonHugePages:    182272 kB
CmaTotal:              0 kB
CmaFree:               0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:      169832 kB
DirectMap2M:     8218624 kB
DirectMap1G:    10485760 kB

5、 ps aux命令

  ps aux 命令可以查看系統中各個進程的運行情況,包括了進程占用的內存,%MEM 列就是各個進程的內存占用百分比。

$ ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      1231  0.9  2.2 1368496 375824 ?      SNl  Jun21 346:39 ./bcm-agent
bls       6891  0.1  0.9 2892024 159516 ?      Sl   Jun21  55:29 /opt/bls/lib/jre/bin/java -Duser.language=en_us -Xmx500m -XX:+UseParallelGC -XX:+UseParallelOldGC -
root       389  0.0  0.2  96376 46212 ?        Ss   Jun21   0:14 /usr/lib/systemd/systemd-journald
root      1245  0.0  0.2 1200080 40200 ?       Sl   Jun21  19:48 /opt/hosteye/bin/hosteye --is_child_mode=true --is_console_mode=false --start_mode=0
root      1199  0.0  0.1 288132 28188 ?        Ssl  Jun21   2:06 /usr/sbin/rsyslogd -n
root       898  0.0  0.1 573840 17152 ?        Ssl  Jun21   5:08 /usr/bin/python -Es /usr/sbin/tuned -l -P

 

參考:

https://www.cnblogs.com/ultranms/p/9254160.html

https://www.cnblogs.com/beginner-boy/p/8067130.html

https://www.cnblogs.com/new-journey/p/10524676.html

https://www.cnblogs.com/zhuiluoyu/p/6154898.html

https://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html

https://www.cnblogs.com/jiffies/articles/2106456.html

https://blog.csdn.net/zhuoya_/article/details/81049967


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM