linux资源管理之内存

一、基本概念
举例:
 
通过栗子,先了解一下指标类型说明和基本概念
 
linux 系统 free -m命令可查看系统内存使用情况,linux系统使用内存的机制是:当一个程序需要程序时,系统会从总内存(total)中划分出比当使用的真实内存更多的内存放在缓冲区,待应用耗内存量增加时,给应用使用。
 
下面对命令参数做如下说明:
 
第一列
Mem 内存的使用信息
Swap 交换空间的使用信息
第一行
total 系统总的可用物理内存大小
used 已被被分配掉的内存,但很多都会放在缓冲区,未被使用
free 未被分配的物理内存
shared 被共享使用的物理内存大小
buff/cache 被 buffer 和 cache 使用的物理内存大小。即,系统分配,但未被使用的buffers/cache数量
available 还可以被 应用程序 使用的物理内存大小
 
部分版本系统中有-/+ Buffers/cache维度指标:
第三行:-/+ Buffers/cache
used:实际使用的内存总量。buffers使用部分+cache使用部分
free:实际剩余的内存总量。未被分配的内存+buffers未使用部分+cache未使用部分
 
第四行:Swap
交换分区
 
buffers和cache的含义貌似还不太懂,下面是网络上给出的定义:
buffer : 作为buffer cache的内存,是块设备的读写缓冲区,更靠近存储设备,或者直接就是disk的缓冲区。
cache: 作为page cache的内存, 文件系统的cache,是memory的缓冲区
 
数据统计:
total=Mem_used+Mem_free
Mem_used=Mem_buffers+Mem_cached+(-/+ buffers/cache)_used
Mem_free=(-/+ buffers/cache)_free-Mem_buffers-Mem_cached
 
二、查看当前内存使用
1、ps命令
Linux下获取占用内存最多的10个进程
ps aux|head -n1;ps aux|grep -v PID|sort -nr -k4|head -n10
 
2、free -g/m
 
 
三、遇到的问题
 
1、free 与 available 的区别
free 是真正尚未被使用的物理内存数量。
available 是应用程序认为可用内存数量,available = free + buffer + cache (注:只是大概的计算方法)
 
扩展:
Linux 为了提升读写性能,会消耗一部分内存资源缓存磁盘数据,对于内核来说,buffer 和 cache 其实都属于已经被使用的内存。但当应用程序申请内存时,如果 free 内存不够,内核就会回收 buffer 和 cache 的内存来满足应用程序的请求。这就是稍后要说明的 buffer 和 cache。
 
以上内容借鉴:https://www.cnblogs.com/M18-BlankBox/p/5326484.html
 
 
 
 
 

posted @ 2021-09-01 11:02  Lenwen  阅读(81)  评论(0编辑  收藏  举报