14.10 Linux如何查看内存的使用情况?

简介: 本节将介绍几个系统命令,通过它们,可以快速查看 Linux 系统中内存的使用状况。

内存的管理和优化,是 Linux 系统性能优化的重要组成部分,换句话说,内存资源是否充足,会直接影响应用系统(包含操作系统和应用程序)的使用性能。

本节将介绍几个系统命令,通过它们,可以快速查看 Linux 系统中内存的使用状况。

Linux 查看内存使用情况:free 命令

free 是监控 Linux 内存使用状况最常用的命令之一,有关该命令的基本用法,已经在《Linux free 命令》一节中做了详细介绍,所以不再赘述,这里重点给大家讲解如何使用 free 命令查看系统内存的使用情况。

下面是 free 命令在当前测试系统中的输出结果:

[root@localhost ~]# free -m
total used free shared buffers cached
Mem: 2004 573 1431 0 47 201
-/+ buffers/cache: 323 1680
Swap: 1983 0 1983

从输出结果可以看到,该系统共 2GB 内存,其中系统空闲内存还有 1431MB,并且 swap 交换分区还未使用,因此可以判断出当前系统的内存资源还非常充足。

除此之外,free 命令还可以实时地监控内存的使用状况,通过使用 -s 选项,可以实现在指定的时间段内不间断地监控内存的使用情况。

例如:

[root@localhost ~]# free -m -s 5
total used free shared buffers cached
Mem: 2004 571 1433 0 47 202
-/+ buffers/cache: 321 1683
Swap: 1983 0 1983
total used free shared buffers cached
Mem: 2004 571 1433 0 47 202
-/+ buffers/cache: 321 1683
Swap: 1983 0 1983
#省略后续输出

要想实现动态地监控内存使用状况,除了使用 free 命令提供的 -s 选项,还可以借助 watch 命令。通过给 watch 命令后面添加需要运行的命令,watch 就会自行重复去运行这个命令(默认 2 秒执行一次),例如:

[root@localhost ~]# watch -n 3 -d free
Every 3.0s: free Tue Oct 29 03:05:43 2019
total used free shared buffers cached
Mem: 2052988 586504 1466484 0 49184 207360
-/+ buffers/cache: 329960 1723028
Swap: 2031608 0 2031608

上面执行的命令中,-n 选项用于执行重复执行的间隔时间,-d 选项用于在显示数据时,高亮显示变动了的数据。

Linux 查看内存使用情况:vmstat 命令

vmstat 命令在监控系统内存方面的功能很强大,有关此命令的基本用法,已经在《Linux vmstat 命令》一节中做了详细介绍,这里重点讲解如何使用此命令查看内存的使用状况。

下面是执行 vmstat 命令的输出结果:

[root@localhost ~]# vmstat 2 3
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 0 1436128 53004 210744 0 0 7 0 13 14 0 0 100 0 0
1 0 0 1436112 53004 210744 0 0 0 0 128 226 0 0 100 0 0
0 0 0 1435988 53004 210744 0 0 0 0 144 220 1 0 99 0 0

对于内存的监控,我们只需要重点关注 swpd、si 和 so 这 3 列。从此输出结果可以看出,当前系统中,虚拟内存没有使用,硬盘和内存之间没有交换数据,可见内存资源处于空闲状态。

Linux 查看内存使用情况:sar 命令

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

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

[root@localhost ~]# sar -r 2 3
Linux 2.6.32-431.el6.x86_64 (localhost) 10/29/2019 _x86_64_ (8 CPU)
04:54:20 AM kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit
04:54:22 AM 1218760 834228 40.63 53228 424908 738312 18.08
04:54:24 AM 1218744 834244 40.64 53228 424908 738312 18.08
04:54:26 AM 1218712 834276 40.64 53228 424908 738312 18.08
Average: 1218739 834249 40.64 53228 424908 738312 18.08

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

  • kbmemfree:表示空闲的物理内存的大小;
  • kbmemeused:表示已使用的物理内存的大小;
  • %memused:表示已使用内存占总内存大小的百分比;
  • kbbuffers:表示缓冲区所使用的物理内存的大小;
  • kbcached:表示告诉缓存所使用的物理内存的大小;
  • kbcommit 和 %commit:分别表示当前系统中应用程序使用的内存大小和百分比;

相比 free 命令,sar 命令的输出信息更加人性化,不仅给出了内存使用量,还给出了内存使用的百分比以及统计的平均值。比如说,仅通过 %commit 一项就可以得知,当前系统中的内存资源充足。

目录
相关文章
|
2月前
|
安全 Linux Shell
Linux上执行内存中的脚本和程序
【9月更文挑战第3天】在 Linux 系统中,可以通过多种方式执行内存中的脚本和程序:一是使用 `eval` 命令直接执行内存中的脚本内容;二是利用管道将脚本内容传递给 `bash` 解释器执行;三是将编译好的程序复制到 `/dev/shm` 并执行。这些方法虽便捷,但也需谨慎操作以避免安全风险。
179 6
|
14天前
|
算法 Linux 开发者
深入探究Linux内核中的内存管理机制
本文旨在对Linux操作系统的内存管理机制进行深入分析,探讨其如何通过高效的内存分配和回收策略来优化系统性能。文章将详细介绍Linux内核中内存管理的关键技术点,包括物理内存与虚拟内存的映射、页面置换算法、以及内存碎片的处理方法等。通过对这些技术点的解析,本文旨在为读者提供一个清晰的Linux内存管理框架,帮助理解其在现代计算环境中的重要性和应用。
|
19天前
|
存储 缓存 监控
|
1月前
|
存储 缓存 监控
Linux中内存和性能问题
【10月更文挑战第5天】
38 4
|
1月前
|
算法 Linux
Linux中内存问题
【10月更文挑战第6天】
41 2
|
17天前
|
缓存 算法 Linux
Linux内核中的内存管理机制深度剖析####
【10月更文挑战第28天】 本文深入探讨了Linux操作系统的心脏——内核,聚焦其内存管理机制的奥秘。不同于传统摘要的概述方式,本文将以一次虚拟的内存分配请求为引子,逐步揭开Linux如何高效、安全地管理着从微小嵌入式设备到庞大数据中心数以千计程序的内存需求。通过这段旅程,读者将直观感受到Linux内存管理的精妙设计与强大能力,以及它是如何在复杂多变的环境中保持系统稳定与性能优化的。 ####
24 0
|
1月前
|
存储 缓存 固态存储
|
1月前
|
Linux C++
Linux c/c++文件虚拟内存映射
这篇文章介绍了在Linux环境下,如何使用虚拟内存映射技术来提高文件读写的速度,并通过C/C++代码示例展示了文件映射的整个流程。
47 0
|
3月前
|
机器学习/深度学习 消息中间件 Unix
深入理解Linux虚拟内存管理(九)(下)
深入理解Linux虚拟内存管理(九)
38 1
|
3月前
|
缓存 Linux 调度
Linux服务器如何查看CPU占用率、内存占用、带宽占用
Linux服务器如何查看CPU占用率、内存占用、带宽占用
998 0