linux 服务器内存占用统计
当前内存占用率的计算,是根据top命令显示的Mem.used除以Mem.total得到。
- Mem.total:表示总物理内存。
- Mem.used: 表示内核控制的内存数,除了应用程序使用的内存外,还包括缓存。
Mem.used = 应用程序使用内存 + Mem.buffers + Mem.cached
Linux的内存管理机制,会尽可能缓存一些数据,就算程序本身已经释放相关内存,Buffers/cached也不会立即释放。
但在需要的时候Buffers/cached都是可以被丢弃并快速回收的。
- 反过来,Mem.free: 表示还未纳入内核管理范围的内存(完全未被使用)。
有时候看上去可用内存很少,但实际还是比较充足的。从应用程序角度,buffers和cached也属于可用。
实际可用内存 = Mem.free + Mem.buffers + Mem.cached.
所以, 由于buffeds/cached机制,服务器在运行一段时间以后uesd内存的值越来越大。
基于此计算的内存占用率结果比实际偏高,而且还可能偏高很多。
举例,在服务器用vi打开文件,此时文件数据纳入缓存,内存占用随之增加。但这并不是应用程序占用的内存。
linux139:/srv # free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
linux139:/srv # vim test.log
linux139:/srv # ll -sh test.log
30M -rw------- root root 30M Mar : test.log
linux139:/srv # free -m
total used free shared buffers cached
Mem:
-/+ buffers/cache:
Swap:
lin # top
top - :: up :, users, load average: 0.21, 0.11, 0.09
Tasks: total, running, sleeping, stopped, zombie
Cpu(s): 0.1%us, 0.1%sy, 0.0%ni, 99.8%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 19953M total, 1163M used, 18790M free, 20M buffers
Swap: 16384M total, 0M used, 16384M free, 116M cached
手工清理缓存方式:
sync ;echo 3 > /proc/sys/vm/drop_caches
linux 服务器内存占用统计的更多相关文章
- 转 linux 服务器内存占用统计
linux 服务器内存占用统计 原文: https://www.cnblogs.com/eaglediao/p/6641811.html 当前内存占用率的计算,是根据top命令显示的Mem.used ...
- linux服务器内存占用太高-释放内存
修改/proc/sys/vm/drop_caches,释放Slab占用的cache内存空间(参考drop_caches的官方文档): Writing to this will cause the ke ...
- Linux系统内存占用90%以上 ?
问题: [root@dbserver01 zx_epp_db]# free -m total used free shared buffers cached Mem: 15953 14706 1246 ...
- Linux系统内存占用90%以上——解决方法
Linux系统内存占用90%以上--解决方法 首先要明确一个问题:Linux系统内存占用90%以上,是否属于正常范围?网上有详细的解释,这属于正常现象~~~ www.2cto.com L ...
- 如何使用Linux命令行查看Linux服务器内存使用情况?
一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...
- 查看Linux服务器内存使用情况
一个服务器,最重要的资源之一就是内存,内存够不够用,是直接关系到系统性能的关键所在. 本文介绍如何查看Linux服务器内存使用情况, 1.free命令 free -m [root@localhost ...
- Linux服务器内存池技术是如何实现的
Linux服务器内存池技术是如何实现的
- 记录Redis连接未正确释放,TCP连接过多,造成服务器上部分功能不可用和linux服务器内存一直增加问题
问题1 多人共享开发服务器(windows系统),我们小组有个程序,定时检测mongodb,redis,mysql连接是否正常,程序启动一段时间后,服务器管理人员找到我们说,我们的某个pid的程序把T ...
- 【Linux】解决Linux服务器内存不足问题
在Linux服务器上使用Jmeter进行压测的时候,遇到了一个错误: 根据这里的提示: Java HotSpot(TM) -Bit Server VM warning: INFO: os::commi ...
随机推荐
- C++中初始化列表的使用
1,初始化列表是在 C++ 中才引入的: 2,以“类中是否可以定义 const 成员?”这个问题来引入初始化列表: 1,const 这个关键字可以定义真正意义上的常量,也可以在某些情况下定义只读变量: ...
- python第一个问题
temp=input("请输入1到100之间内的数字:")if num > 50: print("你妹好漂亮")else: print(&qu ...
- 浅析Mysql事务传播行为
传播行为 1.PROPAGATION_REQUIRED:如果当前没有事务,就创建一个新事务,如果当前存在事务,就加入该事务,该设置是最常用的设置. 2.PROPAGATION_SUPPORTS:支持当 ...
- 对于一键退出APP功能实现的技术探讨
在Android的开发过程中,会经常存在“一键退出APP”的需求.经过一段时间的整理,其主要实现方式有以下几种. 本质:一键结束当前APP的所有activity&一键结束当前APP进程,两者合 ...
- InnoDB不支持contains等
并非所有引擎都支持全文本搜索MySQL.与所有其他的DBMS一样,MySQL具有一个具体管理和处理数据的内部引擎.在你使用CREATE TABLE语句时,该引擎具体创建表,而在你使用SELECT语句或 ...
- 在脚本中使用set命令调试脚本
当脚本文件较长时,可以使用set命令指定调试一段脚本.在脚本中使用set -x命令开启调式模式:使用set +x命令关闭调式模式. 例如: #!/bin/bash #Scriptname: greet ...
- servlet 实践
基础 当Servlet引擎收到一个请求,它将请求所有的细节汇编到一个HttpServletRequest对象.细节包括请求头部.URI.查询字符串和任意发送的参数等等.类似地,它初始化一个处理响应头部 ...
- oldlinux
http://oldlinux.org/Linux.old/ http://oldlinux.org/Book-Lite/
- CUDA学习之二:shared_memory使用,矩阵相乘
CUDA中使用shared_memory可以加速运算,在矩阵乘法中是一个体现. 矩阵C = A * B,正常运算时我们运用 C[i,j] = A[i,:] * B[:,j] 可以计算出结果.但是在CP ...
- 带你逐行阅读redux源码
带你逐行阅读redux源码 redux版本:2019-7-17最新版:v4.0.4 git 地址:https://github.com/reduxjs/redux/tree/v4.0.4 redux目 ...