Linux 查看内存使用情况的几种方法
*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA
在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。
那么今天我们就来看看有哪些方法可以访问所有相关信息并帮助管理员监控内存统计信息。
查看或者获取 Linux 中的内存使用情况既可以通过命令的方式,也可以通过桌面端的GUI程序查看。
以下的过程,所有命令和结果都是使用 Linux 发行版 Ubuntu 18.04。
GUI 查看
如果你使用的环境是带有图形界面的 Linux 版本,那么必定是支持使用图形界面进行服务器管理的。那么,内存使用情况的可视化会使得某些数据集更加清晰自然。
如何访问系统监视器:
- 导航到显示应用程序。
- 在搜索栏中输入 System Monitor 并访问该应用程序。
- 选择资源选项卡。
- 显示实时内存消耗的图形概览,包括历史信息。

命令获取
虚拟文件 /proc/meminfo
在 linux 系统中,/proc/meminfo 是一个报告可用和已用内存量的虚拟文件,它包含有关系统内存使用情况以及内核使用的缓冲区和共享内存的实时信息。根据所讨论的计算机体系结构和操作系统版本,从该文件读取的输出可能略有不同。
输入指令
cat /proc/meminfo
指令返回

命令 free
在命令终端中键入 free

数据表示已用/可用内存和以KB为单位的交换内存大小。
| total | 总安装内存 |
| used | 正在运行的进程当前正在使用的内存(used= total – free – buff/cache) |
| free | 未使用的内存(free= total – used – buff/cache) |
| shared | 多个进程共享的内存 |
| buffers | 作系统保留的内存,在进程需要时分配为缓冲区 |
| cached | 存储在 RAM 中最近使用的文件 |
| buff/cache | Buffers + Cache |
| available | 可用于启动新应用程序,无需交换的内存大小 |
和读取 /proc/meminfo 文件相比,free 命令提供的信息较为精简,但是它更容易理解。
为了更灵活输出结果,free 命令可以添加多个选项标志用来格式化输出。下表列出了 free 命令最有用的选项标志。
| 选项标志 | 结果 |
| -b | 以 Byte 为单位输出 |
| -k | 以 KB 为单位的输出 |
| -m | 以 MB 为单位的输出 |
| -G | 以 GB 为单位输出 |
| -l | 详细的低内存和高内存统计信息 |
| -o | 旧格式(无 -/+缓冲区/缓存行) |
| -t | RAM + swap |
| -s | 多少秒更新一次 |
| -C | 更新多少次 |
命令 vmstat
vmstat 命令是报告虚拟内存统计信息的有用工具。它的返回提供有关进程、内存、分页、块 IO、捕获和 CPU 活动的一般信息。

这里列举一下每个值的解释,方便大家在分析结果时查阅。
进程
r:等待运行时的进程数。
b:处于不可中断睡眠状态的进程数。
内存
swpd:使用的虚拟内存大小。
free:空闲内存大小。
buff:用作缓冲区的内存大小。
cache:用作缓存的内存大小。
交换区
si:从磁盘换入的内存(/s) 。
so:交换到磁盘的内存(/s)。
IO 块
bi:从块设备接收到的块(块/s)。
bo:发送到块设备的块(块/s)。
系统
in:每秒中断次数,包括时钟。
cs:每秒上下文切换的次数。
CPU – 下面都是占总 CPU 时间的百分比。
us:运行非内核代码所花费的时间(用户时间,包括nice time)
sy:运行内核代码所花费的时间(系统时间)
id:空闲时间,在 Linux 2.5.41 之前,这包括 IO 等待时间。
wa:等待IO所花费的时间,在 Linux 2.5.41 之前,包含在 idle 中。
st:从虚拟机窃取的时间,在 Linux 2.6.11 之前,未知。
命令 top
top 命令可用于检查每个进程的内存和 CPU 使用情况等。包含有以下信息:
正常运行时间
平均负荷
正在运行的任务数
登录用户数
CPU 数量/CPU 利用率
内存/交换区的系统进程
top 命令输入后,数据会不断更新,这样你可以实时跟踪进程状况。

通过 top 命令,除了看到基本的内存信息外,还可以通过有限的交互界面和进程互操作。输入 top 命令时还可以使用命令行选项来操纵和配置操作。
如果你需要了解关于 top 命令的所有可用选项的完整信息,可以通过 Linux 中的 man top 命令查看。
命令 htop
命令 htop 与命令 top 类似。但是,命令 htop 的真正优势在于其用户友好的操作环境和更强大的控件。
命令 htop 输出包含颜色高亮,为进程提供完整的命令行,以及垂直和水平滚动的功能。

对照上图
- 顶部区域提供摘要信息并包含图形仪表和汇总信息统计。
- 接下来的部分按进程组织了详细数据,这样您就可以轻松地对单个进程执行操作,支持鼠标直接点击选中进程。
- 屏幕底部列出的快捷方式将使您能够快速操作和配置进程,而省去输入特定指令。
命令 htop 在这个发行版里其实没有默认安装,如果发现指令不存在,可以通过下面的指令安装
sudo apt install htop
学习可以等,时间不等人!
关注我,带你学习编程领域更多核心技能!
Linux 查看内存使用情况的几种方法的更多相关文章
- Linux查看内存使用情况
输入:top PID:进程的ID USER:进程所有 PR:进程的优先级别,越小越优先被执 NInice: VIRT:进程占用的虚拟内 RES:进程占用的物理内 SHR:进程使用的共享内 S:进程的状 ...
- 【查看内存】Linux查看内存使用情况(二)
Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...
- LINUX查看内存使用情况 free
# free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KB used 已使用的内存 7852484KB free 空闲的内存数 205480KB shared 当 ...
- Linux 查看内存使用情况
1 . top : 用于实时显示 process 的动态 PID:进程的ID USER:进程所有 PR:进程的优先级别,越小越优先被执 VIRT:进程占用的虚拟内 RES:进程占用的物理内 SHR: ...
- 【查看内存】Linux查看内存使用情况(一)
用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况 ...
- linux查看内存使用情况top
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看, ...
- Linux查看日志文件写入速度的4种方法
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日志写入越快,说明系统 ...
- Linux查看内存占用情况
输入:top PID 进程的ID USER 进程所有者 PR 进程的优先级别,越小越优先被执行 Ninice 值 VIRT 进程占用的虚拟内存 RES 进程占用的物理内存 SHR 进程使用的共享内存 ...
- SQL Server 查看空间使用情况的 5 种方法
解决方法: 方法 1.sp_spaceused 方法 2.dbcc sqlperf 方法 3.dbcc showfilestats 方法 4.dbcc showcontig 方法 5.sys.dm_d ...
- SQL Server 查看数据库空间分配情况的 2 种方法
方法 1. sys.dm_db_file_space_usage. 方法 2. sys.dm_db_session_space_usage. ----------------------------- ...
随机推荐
- Using Semaphores in Delphi, Part 2: The Connection Pool
Abstract: Semaphores are used to coordinate multiple threads and processes. That semaphores provide ...
- 华为ME60 配置PPPOE-radius 业务
华为ME60 配置PPPOE-radius 业务 1.创建radius 认证 # radius-server source interface LoopBack0 radius-server grou ...
- C++ || const_cast 将const变量转为非const
点击查看代码 #include <iostream> using namespace std; int main() { int a =5; const int* p=&a;//需 ...
- .net创建、发布、引用webservice项目
创建webservice引用 增加代码: 运行如下: 之后就可以发布我们的项目了,右击项目,选择发布: 此地址不要选择项目地址,另外创建一个地址: 至此,发布成功,接下来iis增加web网站: 这里i ...
- 实验2:Open vSwitch虚拟交换机实践(补实验一作业链接)
实验1:SDN拓扑实践 实验2:Open vSwitch虚拟交换机实践 一.实验目的 能够对Open vSwitch进行基本操作: 能够通过命令行终端使用OVS命令操作Open vSwitch交换机, ...
- Mysql 行号+分组行号+取Top记录 SQL
Mysql 行号+分组行号+取Top记录 SQL select * from ( SELECT (@rowNum := @rowNum + 1) as rowNum -- 全量行号 , a.col1 ...
- mysql error Code 1441:datetime function: datetime field overflow
mysql error Code 1441:datetime function: datetime field overflow 网上找了好久,也没有解决 最后发现有个left join 表,on关 ...
- 《Zookeeper分布式过程协同技术详解》之简介-分布式与Zookeeper简介
[常见的分布式架构场景面临的问题]一般在主从架构中,主节点进程负责跟踪从节点的状态和任务的有效性,并分配任务到从节点.而这种架构中必须要解决的几个问题是,主节点崩溃.从节点崩溃.通信故障.主节点崩溃: ...
- Flutter 2 渲染原理和如何实现视频渲染
7 月 17 日下午,在前端专场巡回沙龙北京站中,声网Agora跨平台开发工程师卢旭辉带来了<Flutter2 渲染原理和如何实现视频渲染>的主题分享,本文是对演讲内容的整理. 本次分享主 ...
- CentOS Docker安装、镜像加速
CentOS Docker安装 方法一:使用官方安装脚本自动安装 # 安装命令: curl -fsSL https://get.docker.com | bash -s docker --mirror ...