*以下内容为本人的学习笔记,如需要转载,请声明原文链接微信公众号「ENG八戒」https://mp.weixin.qq.com/s/27UaVm5_FMhCnxB88pc0QA

在运行 Linux 系统的过程中为了让电脑或者服务器以最佳水平运行,常常需要监控内存统计信息。

那么今天我们就来看看有哪些方法可以访问所有相关信息并帮助管理员监控内存统计信息。

查看或者获取 Linux 中的内存使用情况既可以通过命令的方式,也可以通过桌面端的GUI程序查看。

以下的过程,所有命令和结果都是使用 Linux 发行版 Ubuntu 18.04。

GUI 查看

如果你使用的环境是带有图形界面的 Linux 版本,那么必定是支持使用图形界面进行服务器管理的。那么,内存使用情况的可视化会使得某些数据集更加清晰自然。

如何访问系统监视器:

  1. 导航到显示应用程序。
  2. 在搜索栏中输入 System Monitor 并访问该应用程序。
  3. 选择资源选项卡。
  4. 显示实时内存消耗的图形概览,包括历史信息。

命令获取

虚拟文件 /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 输出包含颜色高亮,为进程提供完整的命令行,以及垂直和水平滚动的功能。

对照上图

  1. 顶部区域提供摘要信息并包含图形仪表和汇总信息统计。
  2. 接下来的部分按进程组织了详细数据,这样您就可以轻松地对单个进程执行操作,支持鼠标直接点击选中进程。
  3. 屏幕底部列出的快捷方式将使您能够快速操作和配置进程,而省去输入特定指令。

命令 htop 在这个发行版里其实没有默认安装,如果发现指令不存在,可以通过下面的指令安装

sudo apt install htop

学习可以等,时间不等人!

关注我,带你学习编程领域更多核心技能!

Linux 查看内存使用情况的几种方法的更多相关文章

  1. Linux查看内存使用情况

    输入:top PID:进程的ID USER:进程所有 PR:进程的优先级别,越小越优先被执 NInice: VIRT:进程占用的虚拟内 RES:进程占用的物理内 SHR:进程使用的共享内 S:进程的状 ...

  2. 【查看内存】Linux查看内存使用情况(二)

    Linux查看CPU和内存使用情况:http://www.cnblogs.com/xd502djj/archive/2011/03/01/1968041.html 在做Linux系统优化的时候,物理内 ...

  3. LINUX查看内存使用情况 free

    # free 显示结果如下: Mem:表示物理内存统计 total 内存总数 8057964KB used 已使用的内存 7852484KB free 空闲的内存数 205480KB shared 当 ...

  4. Linux 查看内存使用情况

    1 . top  : 用于实时显示 process 的动态 PID:进程的ID USER:进程所有 PR:进程的优先级别,越小越优先被执 VIRT:进程占用的虚拟内 RES:进程占用的物理内 SHR: ...

  5. 【查看内存】Linux查看内存使用情况(一)

    用 'top -i' 看看有多少进程处于 Running 状态,可能系统存在内存或 I/O 瓶颈,用 free 看看系统内存使用情况,swap 是否被占用很多,用 iostat 看看 I/O 负载情况 ...

  6. linux查看内存使用情况top

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 可以直接使用top命令后,查看%MEM的内容.可以选择按进程查看或者按用户查看, ...

  7. Linux查看日志文件写入速度的4种方法

    原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介 有时,我们需要查看某个文件的增长速度,如日志文件,以此来感受系统的负载情况,因为一般情况下,日志写入越快,说明系统 ...

  8. Linux查看内存占用情况

    输入:top PID 进程的ID USER 进程所有者 PR 进程的优先级别,越小越优先被执行 Ninice 值 VIRT 进程占用的虚拟内存 RES 进程占用的物理内存 SHR 进程使用的共享内存 ...

  9. SQL Server 查看空间使用情况的 5 种方法

    解决方法: 方法 1.sp_spaceused 方法 2.dbcc sqlperf 方法 3.dbcc showfilestats 方法 4.dbcc showcontig 方法 5.sys.dm_d ...

  10. SQL Server 查看数据库空间分配情况的 2 种方法

    方法 1. sys.dm_db_file_space_usage. 方法 2. sys.dm_db_session_space_usage. ----------------------------- ...

随机推荐

  1. Javaheima12

    Java 不可变集合 如果某个数据不能修改,把它防御性地拷贝到不可变集合红是个很好的实践 或者当集合对象被不可信的库调用时,不可变形式是安全的 创建 再List,Set,Map接口中,都存在of方法, ...

  2. Crypto入门 (三)Morse

    前言: Morse电码(Morsecode)是大家耳熟能详的编码方式,很多人都误认为它是一种加密方式,但其实它是一种编码,因为它并不存在密钥.在只能使用电报长短音传递信息的条件下,使用摩斯电码是为了方 ...

  3. What is RSS

    What is RSS?RSS (Rich Site Summary) is a format for delivering regularly changing web content. Many ...

  4. 使用Sales_data 类

    添加两个Sales_data 对象 因为Sales_data 类没有提供任何操作,所以我们必须自己编码实现输入.输出和相加的功能.假设已知Sales_data 类定义于 Sales_data.h 文件 ...

  5. easycode模版-基于ruoyi-cloud

    ##定义初始变量 #set($tableName = $tool.append($tableInfo.name, "Controller")) ##设置回调 $!callback. ...

  6. c# Visual Studio|There is no editor available for ***,make sure the application for the file type(.vb) is installed问题解决方法

    这个问题出现在在使用VS编码当中,电脑意外关机,导致的文件的缺失或者损坏. 使用反编译软件(如:ILSpy)对编译后的 .EXE文件进行反编译,在翻遍的结果中将相关代码拷贝至目标路径下,替换所需文件. ...

  7. 例题1:shell脚本

    题目总结: 1.搜索子域名的shell脚本 2.嗅探并抓去网页快照shell脚本 3.漏洞利用程序下载脚本 题目一:依次输入以下代码即可: 1.wget www.megacorpone.com  2. ...

  8. 基于element-ui进行二次封装的表格组件

    <!-- * @description 表格组件 * @fileName TableList.vue * @authorQ * @date 2021/05/15 15:13:45 --> ...

  9. IDEA中,如何将本地项目推送到Github里面

    具体步骤 1.File->VCS->Create Git Repository 然后进入这样一个界面: 接着我们选中当前项目作为本地库: 设置好之后,我们会发现,项目文件全部标红,这是由于 ...

  10. 小心golang中的无类型常量

    对于无类型常量,可能大家是第一次听说,但这篇我就不放进拾遗系列里了. 因为虽然名字很陌生,但我们每天都在用,每天都有无数潜在的坑被埋下.包括我本人也犯过同样的错误,当时代码已经合并并发布了,当我意识到 ...