Linux 中的内存使用率计算方式
背景介绍
在工作中处理问题的时候,遇到一个问题,自己根据 top 命令时查看到的 used 和 total 计算出来的内存使用率已经达到 90% 以上了,但是系统自带的监控软件计算出来的使用率往往没有这么高。在网上查询了一些文章,说应该使用 free 命令,top 命令显示的结果不太准确,因此决定将自己的学习过程记录一下。
小知识
Linux 的显示命令中有 free 和 available 两种表示空闲的内存,它们之间的区别如下:free 表示这部分内存没有被用来做任何事情,available 表示这边部分内存可以被应用程序申请使用。
freee 命令
free 命令的显示结果实际上是从文件 /proc/meminfo 中读取的,默认的显示结果如下图所示:
Linux 中为了加快系统的运行速度,往往会使用缓存的机制。这里的buffers 和 cached 就是操作系统为了加快运行速度使用到的内存,这部分内存不是某个进程申请的。当需要新启动一个程序时,而程序申请的内存又比较大时,这两部分的内存时可以释放出来给当前这个程序使用的。因此实际系统当前空闲,可供新的程序申请使用的应该是第二行显示的空闲内存。
top 命令
有了上面free命令的显示结果介绍,也就明白了为什么根据 top 命令显示的 used 和 total 计算出来的内存使用率不准确,因为这里的 used 并没有除去 buffers 和 cached 使用的这部分内存,而这部分内存实际上是可以释放出来给程序使用的。
参考
[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 中的内存使用率计算方式的更多相关文章
- Linux就这个范儿 第15章 七种武器 linux 同步IO: sync、fsync与fdatasync Linux中的内存大页面huge page/large page David Cutler Linux读写内存数据的三种方式
Linux就这个范儿 第15章 七种武器 linux 同步IO: sync.fsync与fdatasync Linux中的内存大页面huge page/large page David Cut ...
- [转]Linux中进程内存与cgroup内存的统计
From: http://hustcat.github.io/about/ Linux中进程内存与cgroup内存的统计 在Linux内核,对于进程的内存使用与Cgroup的内存使用统计有一些相同和不 ...
- linux中tomcat内存溢出解决办法
用命令 tail -f /root/apache-tomcat-6.0.20/logs/catalina.out(需要找到tomcat路径) 查看日志,查看是否有错误 linux中tomcat内存溢出 ...
- linux中tomcat内存溢出
刚开始测试服务器与线上后台都不能上传10分钟以上的视频,后来只要是视频就不能上传,进入服务器查日志得到如下错误: Caused by: java.lang.OutOfMemoryError: Java ...
- 查看linux中swap内存的相关参数
内容主要来源于:linux的内存回收和交换 各项命令查看的linux环境是:Linux SUSE-33 2.6.32.12-0.7-defaul zone? 内存管理的相关逻辑都是以zone为单位的, ...
- 转:Linux中的内存管理
前一段时间看了<深入理解Linux内核>对其中的内存管理部分花了不少时间,但是还是有很多问题不是很清楚,最近又花了一些时间复习了一下,在这里记录下自己的理解和对Linux中内存管理的一些看 ...
- Linux中检查内存使用情况的命令
Linux操作系统包含大量工具,所有这些工具都可以帮助您管理系统.从简单的文件和目录工具到非常复杂的安全命令,在Linux上没有太多不能做的事情.而且,虽然普通桌面用户可能不需要在命令行熟悉这些工具, ...
- mysql中TPS, QPS 的计算方式
今天突然有个同事问题一个问题, mysqlTPS和QPS的计算公式是什么? 以前确实也没有关注过这个计算公式,所以查了下学习了下: 下面是参考内容. 在做db基准测试的时候,qps,tps 是衡量数 ...
- Linux中Cache内存占用过高解决办法
在Linux系统中,我们经常用free命令来查看系统内存的使用状态.在一个RHEL6的系统上,free命令的显示内容大概是这样一个状态: 这里的默认显示单位是kb,我的服务器是128G内存,所以数字显 ...
- linux内存使用计算方式
Linux开机后,使用top命令查看,4G物理内存发现已使用的多大3.2G,占用率高达80%以上: Mem: 3889836k total, 3341868k used, 547968k free, ...
随机推荐
- [Vue warn]: Error in v-on handler (Promise/async): "TypeError: Object(...) is not a function"
引用外部发文件时候,只是部分引用,所以原本是解构方式引用的,我忘记加{ }了
- 装有docker的虚拟机环境ping宿主机失败
当我用docker network create 创建了一个网络后 [root@localhost ~]# docker network create kong-net 5c035564f9b4649 ...
- Exchange学习非常有用的网站
Exchange学习非常有用的网站 https://docs.microsoft.com/zh-cn/exchange/plan-and-deploy/deployment-ref/network-p ...
- Solon 之 STOMP
一.STOMP 简介 如果直接使用 WebSocket 会非常累,就像用 Socket 编写 Web 应用.没有高层级的交互协议,就需要我们定义应用间所发消息的语义,还需要确保连接的两端都能遵循这些语 ...
- centos7系统安装部署zabbix5.0
一.简介 zabbix是一个基于[WEB]界面的提供分布式[系统监视]以及网络监视功能的企业级的开源解决方案.zabbix能监视各种网络参数,保证[服务器系统]的安全运营:并提供灵活的通知机制以让[系 ...
- Windows 多次制作母盘,备份文件变大的问题
公司产品基于Win11 23H2镜像版本制作母盘,我们发现随着版本迭代,基于上一版本母盘生成新母盘备份,母盘文件会越来越大. 此处说明下镜像与母盘文件的区别, 1. 镜像是指操作系统的压缩文件,常见格 ...
- spring注解@PostConstruct
该注解可以实现在运行工程时,自动运行该注解下的方法: @PostConstruct是java5的时候引入的注解,指的是在项目启动的时候执行这个方法,也可以理解为在spring容器启动的时候执行,可作为 ...
- 对背包dp的再探究:以 采药 和 疯狂的采药 为例
题目链接: 01背包:采药 完全背包:疯狂的采药 关于 "总体积刚好是 V " 和 "总体积 \(\le\) V " 正常的背包推导的都是 "总体积刚 ...
- 3.16 Linux删除文件或目录(rm命令)
当 Linux 系统使用很长时间之后,可能会有一些已经没用的文件(即垃圾),这些文件不但会消耗宝贵的硬盘资源,还是降低系统的运行效率,因此需要及时地清理. rm 是强大的删除命令,它可以永久性地删除文 ...
- 解决Delphi应用程序向桌面资源管理拖放问题 win10,winxp,win2003测试成功
解决Delphi应用程序向桌面资源管理拖放问题 win10,winxp,win2003测试成功 如果是实体拖动,是比较好解决的. 如果是虚拟应用程序数据,拖动到本机桌面或资源管理器目录下,获取目录路径 ...