5条命令检查Linux上的内存使用情况

内存使用情况

在Linux中,几乎所有命令都没有GUI。 在访问服务器上运行时,只有外壳程序。 因此,今天我们将向您展示可用于检查Linux系统上的内存使用情况的命令。 内存包括RAM和交换。

检查服务器上的共享内存和进程内存使用情况以及未使用的资源通常很重要。 如果您正在运行Web服务器,则该服务器必须有足够的内存来为站点访问者提供服务。 如果这种情况没有发生,那么由于流量不足,站点将变得非常慢,甚至无法使用。 与在台式计算机上发生的情况相同。

1.自由命令

free命令是最简单,最容易使用的命令,用于检查Linux上的内存使用情况。 这是一个简单的例子

$ free -m
             total       used       free     shared    buffers     cached
Mem:          7976       6459       1517          0        865       2248
-/+ buffers/cache:       3344       4631
Swap:         1951          0       1951

-m选项显示所有数据(以兆字节为单位)。 Linux安装在系统中的总RAM为7976 MB,即8 GB。 已使用的列显示了可以在Linux上使用的RAM数量,在我们的示例中,它将约为6.4 GB。 这里的要点是缓存列和缓冲区列。 第二行说4.6 GB是免费的。 这是第一行的空闲内存,其中添加了缓冲区和高速缓存内存。

Linux具有缓存性能的习惯,因此可以根据需要释放和使用内存。 最后一行是swap,在这种情况下,它是完全免费的。

2. / proc / meminfo

检查内存使用情况的下一种方法是读取/ proc / meminfo。 请注意,/ proc文件系统不包含实际文件。 它们是虚拟文件,其中包含有关内核和系统的动态信息。

$ cat /proc/meminfo
MemTotal:        8167848 kB
MemFree:         1409696 kB
Buffers:          961452 kB
Cached:          2347236 kB
SwapCached:            0 kB
Active:          3124752 kB
Inactive:        2781308 kB
Active(anon):    2603376 kB
Inactive(anon):   309056 kB
Active(file):     521376 kB
Inactive(file):  2472252 kB
Unevictable:        5864 kB
Mlocked:            5880 kB
SwapTotal:       1998844 kB
SwapFree:        1998844 kB
Dirty:              7180 kB
Writeback:             0 kB
AnonPages:       2603272 kB
Mapped:           788380 kB
Shmem:            311596 kB
Slab:             200468 kB
SReclaimable:     151760 kB
SUnreclaim:        48708 kB
KernelStack:        6488 kB
PageTables:        78592 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:     6082768 kB
Committed_AS:    9397536 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      420204 kB
VmallocChunk:   34359311104 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB  
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:       62464 kB
DirectMap2M:     8316928 kB

检查MemTotal,MemFree,缓冲区,Cached,SwapTotal和SwapFree值。 它们在free命令中指向相同的内存使用值。

3.vmstat的

带有-s选项的vmstat命令可以像Proc命令一样显示内存统计信息。 这是一个例子

$ vmstat -s
      8167848 K total memory
      7449376 K used memory
      3423872 K active memory
      3140312 K inactive memory
       718472 K free memory
      1154464 K buffer memory
      2422876 K swap cache
      1998844 K total swap
            0 K used swap
      1998844 K free swap
       392650 non-nice user cpu ticks
         8073 nice user cpu ticks
        83959 system cpu ticks
     10448341 idle cpu ticks
        91904 IO-wait cpu ticks
            0 IRQ cpu ticks
         2189 softirq cpu ticks
            0 stolen cpu ticks
      2042603 pages paged in
      2614057 pages paged out
            0 pages swapped in
            0 pages swapped out
     42301605 interrupts
     94581566 CPU context switches
   1382755972 boot time
         8567 forks

前几行指示总内存,可用内存等,依此类推。

4.top命令

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

在标题中查看KiB Mem和KiB交换。 它们指示总的,已使用的和可用的内存空间。 缓冲区和缓存信息以及免费命令均在此处提供。

5. htop命令

与free命令一样,htop命令也显示内存使用情况以及其他详细信息。

顶部的标题显示带有RAM的CPU使用情况以及带有相应编号的交换使用情况。

内存信息(RAM)

使用dmidecode命令查找有关已安装RAM的硬件信息。 该命令显示有关已安装RAM的详细信息。

$ sudo dmidecode -t 17
# dmidecode 2.11
SMBIOS 2.4 present.

Handle 0x0015, DMI type 17, 27 bytes
Memory Device
        Array Handle: 0x0014
        Error Information Handle: Not Provided
        Total Width: 64 bits
        Data Width: 64 bits
        Size: 2048 MB
        Form Factor: DIMM
        Set: None
        Locator: J1MY
        Bank Locator: CHAN A DIMM 0
        Type: DDR2
        Type Detail: Synchronous
        Speed: 667 MHz
        Manufacturer: 0xFF00000000000000
        Serial Number: 0xFFFFFFFF
        Asset Tag: Unknown
        Part Number: 0x524D32474235383443412D36344643FFFFFF

信息包括大小(2048MB),类型(DDR2),速度(667 MHz)等。

概要

以上所有命令都可以在终端上运行,并且没有图形界面。 在带有图形界面的桌面上工作时,使用带有图形输出的图形工具要容易得多。 最常用的工具是gnome中的gnome-system-monitor和KDE中的KSysguard。 两者都以图形方式提供有关CPU,RAM,交换和网络带宽的资源使用情况的信息,以及易于理解的直观结论。

Sidebar