Linux系统的内存管理

  drop_caches 的值可以是 0-3 之间的数字,代表不同的含义:

  0:不释放(系统默认值)

  1:释放页缓存

  2:释放dentries和inode

  3:释放所有缓存

  修改:# echo 1 > /proc/sys/vm/drop_caches   代表释放页缓存

 

  free命令相对于top,提供了更简洁的查看系统内存使用情况:

  # free -m

  mem:表示物理内存统计

  buff/cache:表示物理内存的缓存统计

  swap:表示硬盘上交换分区的使用情况

  系统当前真正可用的内存并不是第一行 free 标记的,他仅代表未被分配的内存

 

  当Linux的物理内存快要被耗尽时,系统会把一些进程占用的内存转移到 swap 区,当物理内存被释放一部分时,swap 区的一些内存占用又慢慢回到 mem 区,但是 mem 区却不再是之前的满负荷状态,而是有一部分 free 的内存!

【总结】

  1)当物理内存快被耗尽时,系统并没有崩溃,而是拿 swap 做临时内存,当两者都耗尽,系统 OutofMemory

  2)物理内存达到峰值,系统中一些不常用的进程内存占用被提到 swap 区

  3)当 Men 区的资源进行释放时,被挪到 swap 的内存并不会全部回来,随着系统或者程序的唤醒才会慢慢回到 men 区

  4)swap 是内存不够时,磁盘虚拟出来的内存,磁盘主要是 I/O 级别的操作,并不是系统内核级别的操作,处理速度跟 mem 区不是一个等级

 

posted @   一只竹节虫  阅读(35)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示