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

背景


服务器内存占用太高

查看内存


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与用户空间的数据交换。


 

你可能感兴趣的:(大数据,服务器,linux,运维)