HCRM博客

如何在CentOS 7系统中查看内存使用情况?

在CentOS 7操作系统中,内存管理是系统性能优化和稳定性维护的关键,了解系统的内存使用情况不仅有助于管理员监控资源消耗,还能帮助识别潜在的性能瓶颈或内存泄漏问题,以下是一些常用的命令和方法,用于查看和管理CentOS 7中的内存使用情况:

基本概念

1、物理内存(Physical Memory):这是计算机硬件中实际存在的内存容量,通常以GB或MB为单位表示。

如何在CentOS 7系统中查看内存使用情况?-图1
(图片来源网络,侵权删除)

2、总内存(Total Memory):系统中所有可用的物理内存总量。

3、已用内存(Used Memory):当前被操作系统、应用程序和其他进程占用的内存量。

4、空闲内存(Free Memory):未被任何进程使用的内存量。

5、缓冲区/缓存(Buffers/Cache):这部分内存用于存储临时数据,如文件系统缓存、磁盘缓存等,以提高系统性能,它包括Buffers和Cached两部分。

6、可用内存(Available Memory):这是系统认为可以分配给新进程的内存量,通常等于总内存减去已用内存和缓冲区/缓存的一部分。

查看内存使用情况的方法

1. 使用free 命令

如何在CentOS 7系统中查看内存使用情况?-图2
(图片来源网络,侵权删除)

free 命令是Linux系统中最常用的查看内存使用情况的命令之一,它可以显示系统中的物理内存和交换内存的使用情况。

基本用法

free [选项]

常用选项

b:以字节为单位显示内存使用情况。

k:以KB为单位显示内存使用情况(默认选项)。

m:以MB为单位显示内存使用情况。

如何在CentOS 7系统中查看内存使用情况?-图3
(图片来源网络,侵权删除)

g:以GB为单位显示内存使用情况。

h:以人类可读的方式显示内存使用情况,将数字转换为易于理解的单位(GB、MB、KB等)。

t:在输出的最后一行显示总内存使用情况。

s <间隔时间>:周期性地显示内存使用情况,间隔时间为指定的数。

c <次数>:指定周期性显示内存使用情况的次数。

示例

  free h

输出示例:

              total        used        free      shared  buff/cache   available
  Mem:           2.0G        1.6G         85M        776K        305M        238M
  Swap:            0B          0B          0B

total:总物理内存。

used:已经使用的内存。

free:没有使用的内存。

shared:多进程共享内存。

buff/cache:读写缓存内存。

available:应用程序可用的物理内存。

2. 使用top 命令

top 命令是一个实时监控系统资源使用情况的工具,包括CPU、内存、交换分区的使用情况,以及各个进程的详细信息。

基本用法

top [选项]

常用选项

d seconds:设置top 命令的刷新间隔时间,默认为3秒。

u username:只显示指定用户名的进程信息。

p pid:只显示指定进程ID的信息。

n iterations:设置top 命令的循环次数,即显示的次数。

s field:按指定字段对进程进行排序,默认按CPU使用率排序,可选字段包括piduserprnivirtresshrs%cpu%memtime+timecommand

o field:按指定字段对进程进行排序,与s 参数不同的是,o 参数可同时指定多个字段进行排序。

c:显示完整的命令行信息。

示例

  top

输出示例(部分):

  top 15:47:19 up 164 days,  6:58,  1 user,  load average: 0.21, 0.20, 0.13
  Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
  %Cpu(s):  1.3 us,  0.5 sy,  0.0 ni, 97.5 id,  0.7 wa,  0.0 hi,  0.0 si,  0.0 st
  KiB Mem :  2046684 total,    95396 free,  1648520 used,   302768 buff/cache
  KiB Swap:        0 total,        0 free,        0 used.   241956 avail Mem

%Cpu(s):CPU使用率。

KiB Mem:物理内存使用情况,包括总内存、已用内存、空闲内存、缓冲区/缓存和可用内存。

3. 使用vmstat 命令

vmstat(Virtual Memory Statistics)命令提供了关于系统虚拟内存、进程、CPU活动等信息的报告,它对于分析系统性能非常有用。

基本用法

vmstat [选项] [间隔时间 [次数]]

常用选项

a:显示活动和非活动内存的详细状态。

d:仅显示磁盘统计信息。

f:显示从系统启动以来创建的分页数量。

m:显示SLUB分配器的状态。

n:禁止输出标题。

s:显示内存状态。

S:显示所有可能的统计信息。

示例

  vmstat s

输出示例(部分):

        16384 pages of memory size.
              0 pages of cache/buffers swap cache.
        16384 free pages.
              0 pages in direct reclaimable cache vms.
        16384 pages of page reclaimable.
              0 pages in page cache.
              0 pages in freelist pages.
              0 pages OOM killer enabled.
        16384 pages high water mark.
              0 pages wired down.
              0 huge pagesets.
              0 pages copied.
              0 pages written to swap file.
              0 pages read from swap file.
              0 bad pages.
              0 resident kernel data pages.
              0 pages scanned by kswapd.
              0 pages present in active_anon.
              0 anon pages mapped in file backed mmap.
              0 anon pages mapped in anonymous mmap.
              0 anon pages mapped in shmem mmap.
              0 anon pages mapped in private mmap.
              0 anon pages mapped in system mmap.
              0 anon pages swapped in.
              0 anon pages swapped out.
              0 anon pages swapped in LRU queue.
              0 anon pages swapped out LRU queue.
              0 pages swapped in HWPOISON queue.
              0 pages swapped out HWPOISON queue.
              ...

4. 使用htop 命令(如果已安装)

htoptop 命令的一个增强版,提供了更友好的界面和更多的功能,如果你已经安装了htop,可以使用它来查看内存使用情况。

基本用法

htop

说明:在htop 界面中,你可以看到内存使用的相关统计信息,如%MEM 行会显示内存的使用百分比,你还可以通过界面上的交互按钮和快捷键来排序和过滤进程信息。

5. 查看/proc/meminfo

直接查看/proc/meminfo 文件也可以获取详细的内存使用信息,这个文件包含了关于系统内存使用的大量统计数据。

示例

  cat /proc/meminfo | grep i memtotal

输出示例:

  MemTotal:       2046684 kB
  MemFree:         1648520 kB
  MemAvailable:    241956 kB
  Buffers:          302768 kB
  Cachced:        1648520 kB
  ...

Q1: 如何解释free 命令的输出?

A1:free 命令的输出主要包括以下几个字段:

total:总物理内存。

used:已经使用的内存。

free:没有使用的内存。

shared:多进程共享内存。

buff/cache:读写缓存内存。

available:应用程序可用的物理内存。

这些信息帮助我们快速了解系统当前的内存使用情况,评估内存的分配和使用效率。

Q2: 如果发现系统内存不足,应该如何处理?

A2: 如果发现系统内存不足,可以尝试以下几种方法:

1、关闭不必要的服务和应用:减少内存占用。

2、增加物理内存:如果服务器支持,可以添加更多的内存条。

3、优化应用程序:检查是否有内存泄漏,优化代码以减少内存使用。

4、调整系统参数:调整swappiness 参数,控制内核使用交换空间的频率,可以在/etc/sysctl.conf 文件中添加或修改以下行:

   vm.swappiness = 10

然后运行sysctl p 使更改生效,这会减少内核使用交换空间的频率,从而更多地保留物理内存供应用程序使用。

分享:
扫描分享到社交APP
上一篇
下一篇