服务器内存占用太高如何解决及知识点介绍

背景


服务器内存占用太高

查看内存


free -m 查看服务器内存使用情况,-m的意思是内存显示单位是mb
top 查看服务器所有进程占用内存,为了查看方便,可以使用
shift+md可以让进程按照内存排序

处理办法


1、执行sync命令强制将内存中的文件缓冲内容写到磁盘
2、执行一下命令来释放pagecache、dentries、inodes
echo 3>/proc/sys/vm/drop_caches

可以对比执行前后,执行之后,buff/cache内存会下降,free的内存会增加

这种方式也是常用的方式

知识点1


修改/proc/sys/vm/drop_caches,释放slab占用的cache内存空间
有三个层级
释放 pagecache:
echo 1 > /proc/sys/vm/drop_caches
释放dentries and innodes:
echo 2 > /proc/sys/vm/drop_caches
释放pagecache,dentries and innodes:
echo 3 > /proc/sys/vm/drop_caches

知识点2


当内存低于某个阈值时,会触发脏页回写,提交回写work到对应BDI设备,
由BDI writeback进程回写脏页释放内存,结果过是释放pagecache内存

知识点3


由于页高速缓存的缓存作用,写操作实际上会被延迟。当页高速缓存中的数据
比后台存储的数据更新时,那么该数据就被称为脏数据。
在内存中积累起来的页最终必须被写回磁盘。

知识点4


页高速缓存回写磁盘触发:
1、当空闲的内存低于一个特点的阈值时,内核必须将脏页写回磁盘,以便释放内存。
2、当脏页在内存中驻留时间超过一个特点的阈值时,内核必须将超时的脏页写回磁盘,以确保脏页
不会无限期的驻留在内存中


知识点5


pagecache,又称pcache,中文名称页高速缓存存储器,pagecache的大小称为一页,通常为4k,
在linux读写文件时,它用于缓存文件的逻辑内容,从而加快对磁盘上映像和数据的访问。
从外存的一页到内存的一页的映射过程中,page cache与buffer cache、swap cache共同实现了
高速缓存功能。
外存的一页 -> 物理磁盘的磁盘块 -> 内存的buffer cache -> 内存的一页 -> 页高缓系统
在这个过程中,内存管理系统和VFS与page cache交互,内存管理系统负责维护每项page cache的
分配和回收,同时在使用memory map方式访问时负责建立映射,VFS负责page cache与用户空间的数据交换。


 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗少说

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值