背景介绍

在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 usedtotal 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有这么高。在网上查询了一些文章,说应该使用 free 命令,top 命令显示的结果不太准确,因此决定将自己的学习过程记录一下。

小知识

Linux 的显示命令中有 freeavailable 两种表示空闲的内存,它们之间的区别如下:free 表示这部分内存没有被用来做任何事情,available 表示这边部分内存可以被应用程序申请使用。

freee 命令

free 命令的显示结果实际上是从文件 /proc/meminfo 中读取的,默认的显示结果如下图所示:


Linux 中为了加快系统的运行速度,往往会使用缓存的机制。这里的bufferscached 就是操作系统为了加快运行速度使用到的内存,这部分内存不是某个进程申请的。当需要新启动一个程序时,而程序申请的内存又比较大时,这两部分的内存时可以释放出来给当前这个程序使用的。因此实际系统当前空闲,可供新的程序申请使用的应该是第二行显示的空闲内存

top 命令

有了上面free命令的显示结果介绍,也就明白了为什么根据 top 命令显示的 usedtotal 计算出来的内存使用率不准确,因为这里的 used 并没有除去 bufferscached 使用的这部分内存,而这部分内存实际上是可以释放出来给程序使用的。

参考

[1] : free(1) - Linux manual page (man7.org)
[2] : linux - Meaning of the buffers/cache line in the output of free - Server Fault
[3] : top(1) - Linux manual page (man7.org)
[4] : Free vs. Available Memory in Linux

Linux 中的内存使用率计算方式相关推荐

  1. 关于Linux中使用USE(使用率/饱和度/错误)方法分析系统性能的一些笔记

    写在前面 今天和小伙伴们分享通过USE方法对系统进行性能分析和性能调整 博文内容涉及: 什么是USE方法,以及USE的使用建议 具体的USE指标采集分析 食用方式: 需要Linux基础知识 理解不足小 ...

  2. linux百分比查看文件,Linux 如何查看内存使用率百分比?

    Linux 如何查看内存使用率百分比? 首先进入Linux桌面,并右击打开终端:然后在命令行中输入top命令,该命令能够实时显示系统中各个进程的资源占用状况:最后查看第3行"Cpus&quo ...

  3. DNF中伤害类型综合计算方式以及相关Excel文档

    DNF中伤害类型综合计算方式以及相关Excel文档 运算方式分类和区别 伤害加成类型分类 计算方式的使用 进一步验证中 一下部分算法可能存在问题. 运算方式分类和区别 运算方式总共3种,分别是 加算( ...

  4. 深入理解计算机系统-之-内存寻址(四)--linux中分段机制的实现方式

    linux中的分段机制 前面说了那么多关于分段机制的实现,其实,Linux以非常有限的方式使用分段.因为,Linux基本不使用分段的机制(注:并不是不使用,使用分段方式还是必须的,会简化程序的编写和运 ...

  5. linux系统限制内存使用率,linux中限制CPU和内存占用率方法

    在linux中CPU与内存占用率限制的方法有几种我这里整理常用的两种,希望文章对各位同学会有所帮助哦. 查看cpu占用 在命令行中输入 "top" 即可启动 top top 的全屏 ...

  6. 从Zabbix数据库中提取内存采集的数据,做内存使用率计算

    背景需求很简单,分析所有的设备的内存使用率,看那些设备的内存不够用是否需要加内存... 下面的脚本逻辑,就是通过提取zabbix数据库中的hostid,在提取itemid.. 然后通过item nam ...

  7. centos中bash占用cpu,Linux中显示内存和CPU使用率最高的进程和SHELL脚本例子

    显示CPU占用率最高的十个进程信息 #  ps aux|head -1;ps aux|grep -v PID|sort -rn -k +3|head USER       PID %CPU %MEM  ...

  8. linux查看jvm内存被使用情况,Linux系统查看内存使用率

    Linux下看内存和CPU使用率一般都用top命令,但是实际在用的时候,用top查看出来的内存占用率都非常高,如: Mem:   4086496k total, 4034428k used,    5 ...

  9. mips 内存 linux,MIPS 在linux中的内存映射

    如图: 一些说明: 1.内核从什么地方开始运行:MIPS Linux内核的代码构建为在kseg0区运行:虚拟地址从0x80000000向上.这个范围的地址仅仅是一个到物理内存低512MB的窗口,无需T ...

最新文章

  1. [Dynamic Language] Python File Operator
  2. USE SysBench test Mysql and PostgreSQL - 2
  3. OpenCV相机校准camera calibration的实例(附完整代码)
  4. HDU - 5451 Best Solver(循环群+矩阵快速幂)
  5. Linux下进行Web服务器压力(并发)测试工具http_load、webbench、ab、Siege、autobench简单使用教程(转)...
  6. 工作334:uni-控制整个label区域可选
  7. 绝美自然风光风景壁纸,心旷必然神怡
  8. mongodb性能 mysql_MySQL和MongoDB的性能测试
  9. 数据结构算法常见面试考题
  10. Logistic回归分析
  11. 最小二乘支持向量机(LSSVM)详解
  12. js 微信小程序根据身份证号计算年龄
  13. 幼儿园清明节活动设计方案
  14. 彻底清除狗太阳的3721病毒完全手册!
  15. 【Power BI+Excel+Python】2019年4月全国数据分析招聘岗位可视化分析
  16. Java 在PDF中添加骑缝章
  17. 名帖370 赵孟頫《真草千字文》
  18. 前端基础:CSS 3
  19. SolidWorks2020绘制XT60PW-M模型
  20. POV-RAY基础教程 - POV-Ray坐标系(7)

热门文章

  1. unity-shader-基于图像的光照IBL
  2. unreal 渲染讲的比较好的材料
  3. git push报错,
  4. 解决Word文档中表格不会自动换页,而是在同一页word上往下换行的问题。
  5. python电影推荐系统_推荐系统的几种形式(python版)
  6. Java回炉学习(三)
  7. 【web-攻击用户】(9.4)跨域捕获数据——通过注入HTML捕获数据、注入CSS捕获数据、JavaScript劫持
  8. python基础教程:python+OpenCV实现车牌号码识别
  9. Quartus II 13.1的安装与注册
  10. ISTQB认证考试通过秘籍 问题一、ISTQB是什么?有哪些分类? ISTQB(International Software Testing Qualification Board)是国际唯一权威的软