如何查找Linux系统内存利用率?

时间:2020-01-09 10:42:00  来源:igfitidea点击:

如何在RHEL/CentOS /任何其他Linux发行版中查找系统/服务器内存利用率?
您需要使用" free>"命令,该命令显示系统中可用和已用物理内存和交换内存的总量,以及内核使用的缓冲区。
另一种选择是查询/proc/meminfo文件或者使用vmstat comamnd。
/proc/meminfo文件也提供相同的信息。

让我们看看如何在Linux上快速使用这些命令,以从shell提示中获取内存利用率信息。

free命令示例

在shell提示符下执行free命令以从/proc/meminfo以人类可读的格式显示系统中的可用和已用内存量:

$ free
$ free -m

输出:

total       used       free     shared    buffers     cached
Mem:          2010       1965         45          0        152        776
-/+ buffers/cache:       1036        974
Swap:         2047        137       1910

-b,-k,-m,-g选项以字节,KB,MB或者GB显示输出。
正如我所说的,您使用cat命令显示/proc/meminfo的内容:

$ cat /proc/meminfo
$ less /proc/meminfo

输出示例:

MemTotal:       12195116 kB
MemFree:          157328 kB
Buffers:          375424 kB
Cached:          9298412 kB
SwapCached:        22616 kB
Active:          5714924 kB
Inactive:        5473744 kB
Active(anon):     870136 kB
Inactive(anon):   644700 kB
Active(file):    4844788 kB
Inactive(file):  4829044 kB
Unevictable:           0 kB
Mlocked:               0 kB
SwapTotal:       6291448 kB
SwapFree:        6168080 kB
Dirty:             35760 kB
Writeback:             0 kB
AnonPages:       1493084 kB
Mapped:           567616 kB
Shmem:                 4 kB
Slab:             667828 kB
SReclaimable:     566912 kB
SUnreclaim:       100916 kB
KernelStack:        3240 kB
PageTables:        54692 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    12389004 kB
Committed_AS:    4022128 kB
VmallocTotal:   34359738367 kB
VmallocUsed:       52908 kB
VmallocChunk:   34359680588 kB
HardwareCorrupted:     0 kB
AnonHugePages:   1212416 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        7488 kB
DirectMap2M:    12574720 kB

每[延迟]秒更新一次free命令

要每5秒更新一次,请执行:

# free -s 5

传递-c选项来更新[count]次,即每2秒更新一次free命令3次,执行:

# free -s 2 -c 3

输出示例:

total       used       free     shared    buffers     cached
Mem:      12195116   11992716     202400          0     374820    9255356
-/+ buffers/cache:    2362540    9832576
Swap:      6291448     123368    6168080
 
             total       used       free     shared    buffers     cached
Mem:      12195116   11992468     202648          0     374820    9255112
-/+ buffers/cache:    2362536    9832580
Swap:      6291448     123368    6168080
 
             total       used       free     shared    buffers     cached
Mem:      12195116   11993700     201416          0     374824    9255140
-/+ buffers/cache:    2363736    9831380
Swap:      6291448     123368    6168080

top/atop/htop命令

top命令显示Linux任务,包括进程使用的内存。

atop命令或者htop命令与工具类似,是带有其他选项的顶部工具:

# top
# atop
# htop

vmstat命令示例

vmstat命令提供了更多信息:

$ vmstat

输出:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
0  0 140480  43636 158196 797692    1    0   108   220    1    4  7  5 87  1  0

了解vmstat内存选项

  • swpd:使用的虚拟内存量。
  • free:空闲内存量。
  • buff:用作缓冲区的内存量。
  • cache:用作缓存的内存量。
  • inact:不活动的内存量(请参阅-a选项)。
  • active:活动内存量(请参阅-a选项)。
$ vmstat -a

输出:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
0  1 140480  37376 109516 1730040    1    0   108   220    1    4  7  5 87  1  0

以下命令每秒显示一行新的利用率数据

$ vmstat 1

以下命令每2秒显示一条新行,但仅在接下来的10秒内显示:

$ vmstat 2 10

输出示例:

procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r  b   swpd   free  inact active   si   so    bi    bo   in   cs us sy id wa st
4  0 139216  23508 130644 1723680    1    0   108   220    1    5  7  5 87  1  0
2  0 139216  23252 130668 1723816    0    0     0   410 3242 11472  9  7 84  0  0
1  0 139216  23120 130656 1724012    0    0     0   750 3280 11592  3  6 90  1  0
0  0 139216  22996 130588 1724180    0    0     0   426 3272 11052  2  5 93  0  0
2  0 139216  20988 129932 1726980    0    0     6  1146 3353 12105 14  9 74  2  0
1  0 139216  20244 129900 1727216    0    0     0   392 3238 11752  8  7 85  0  0
1  0 139216  20120 129868 1727352    0    0     0   444 3197 11173  2  5 93  0  0
1  0 139216  25964 129852 1721044    0    0     0   268 3147 9269  1  4 95  0  0
3  0 139216  25964 129748 1721196    0    0     2   132 3199 10540  1  4 95  0  0
1  0 139216  25964 129676 1721332    0    0     0   456 3213 10608  2  4 93  1  0

使用vmstat显示内存统计信息

-s选项传递给vmstat命令可以显示各种事件计数器和内存统计信息的表:

# vmstat -s

输出示例:

12195116  total memory
     12020142  used memory
      5697412  active memory
      5475156  inactive memory
       174964  free memory
       375496  buffer memory
      9299280  swap cache
      6291448  total swap
       123368  used swap
      6168080  free swap
      9174417 non-nice user cpu ticks
         2353 nice user cpu ticks
      3338415 system cpu ticks
    831004606 idle cpu ticks
       327853 IO-wait cpu ticks
         9074 IRQ cpu ticks
      1075734 softirq cpu ticks
            0 stolen cpu ticks
      5001944 pages paged in
   1015656377 pages paged out
        28385 pages swapped in
        54024 pages swapped out
   2347308881 interrupts
   1694761409 CPU context switches
   1387092323 boot time
       246261 forks