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. ----------------------------- ...
随机推荐
- 【PostgreSql】more than one owned sequence found
do --check seq not in sync $$ declare _r record; _i bigint; _m bigint; begin for _r in ( Select DIST ...
- STL练习-ACboy needs your help again!
ACboy was kidnapped!! he miss his mother very much and is very scare now.You can't image how dark ...
- Oracle游标或存储过程
/* 方式1:可执行选取代码块允许 */ declare cursor cur_tmp is ( select '' as tmp_status from dual ); begin for tmp_ ...
- 磊磊零基础打卡算法:day20 c++dfs树的深度优先遍历
5.24 dfs深度优先搜索: 思想比较简单,就是一条路走到底,走到最深点处再回退一步,再看有没有路可以走,没有的话再回退一步,重复此步骤: 也是人们常讲的暴搜. 主要的用法: 通常需要一个状态数组来 ...
- CatDCGAN项目复现与对抗网络初识
CatDCGAN项目复现与对抗网络初识 作者 CarpVexing 日期 100521 禁止转载 目录 CatDCGAN项目复现与对抗网络初识 引言 CatDCGAN项目基本信息 复现项目的准备工作 ...
- NO_PUBKEY 76F1A20FF987672F
在ubuntu18.04上安装win时,执行sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic ...
- loadrunner获取时间戳
web_save_timestamp_param("tStamp", LAST); //取时间戳
- 写.jsp项目有感
本次练习了一个简单的登录界面 我觉得在写这种类型的界面的时候,需要将各个需求分开,就以这次的登录界面为例展开说说 1.登录界面 输入框的居中问题.登录按钮的跳转问题.验证码图片的随机问题.快速注册的跳 ...
- [数据分析与可视化] Python绘制数据地图1-GeoPandas入门指北
本文主要介绍GeoPandas的基本使用方法,以绘制简单的地图.GeoPandas是一个Python开源项目,旨在提供丰富而简单的地理空间数据处理接口.GeoPandas扩展了Pandas的数据类型, ...
- 循序渐进讲解负载均衡vivoGateway(VGW)
作者:vivo 互联网运维团队- Duan Chengping 在大规模业务场景中,已经不可能通过单机提供业务,这就衍生出了负载均衡的需求.为了满足合适可靠的负载,本文将从简单的基础需求出发,一步步推 ...