Linux内存清理

本文介绍Linux系统的内存管理方法,包括手动和自动清理内存的具体步骤及参数设置,有助于提高系统性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linux内存清理

 

一、手动清理

  1. Writing to this will cause the kernel to drop clean caches, dentries and inodes from memory, causing that memory to become free.
  2. To free pagecache:
  3. * echo 1 > /proc/sys/vm/drop_caches
  4. To free dentries and inodes:
  5. * echo 2 > /proc/sys/vm/drop_caches
  6. To free pagecache, dentries and inodes:
  7. * echo 3 > /proc/sys/vm/drop_caches
  8. As this is a non-destructive operation, and dirty objects are notfreeable, the user should run "sync" first in order to make sure allcached objects are freed.
  9. This tunable was added in 2.6.16.

这里有三个级别可以使用。使用1时只清理pagecahe ,使用2清理dentries和inodes(也就是slab缓存,查看方式为:cat /proc/meminfo,SReclaimable表示可回收的内存) ,使用3时三者都清理

由于这是一个非破坏性操作而且脏对象不会被释放,因此应当先执行”sync“后再设置这个参数。

 

 

二、自动清理

/proc/sys/vm/min_free_kbytes

该文件表示强制Linux VM最低保留多少空闲内存(Kbytes)。

当可用内存低于这个参数时,系统开始回收cache内存,以释放内存,直到可用内存大于这个值。

vm.min_free_kbytes=4096000 //单位 kb

vm.swappiness=40

vm.vfs_cache_pressure=200

说明:

1.调整min_free_kbytes的目的是保持物理内存有足够的空闲空间,防止突发性的换页。

2.swapiness缺省为60,减少swapiness会使系统尽快通过swapout不使用的进程资源来释放更多的物理内存。

3.vfs_cache_pressure的缺省值是100,加大这个参数设置了虚拟内存回收directory和i-node缓冲的倾向这个值越大,回收的倾向越严重。调整这3个参数的目的就是让操作系统在平时就尽快回收缓冲,释放物理内存,这样就可以避免突发性的大规模换页。

减少vfs_cache_pressure的值,会导致内核倾向于保留dentry和inode缓存。

增加vfs_cache_pressure的值,(即超过100时),则会导致内核倾向于重新声明dentries和inodes

总之,vfs_cache_pressure的值:

小于100的值不会导致缓存的大量减少

超过100的值则会告诉内核你希望以高优先级来清理缓存。

其实无论vfs_cache_pressure的值采用什么值,内核清理缓存的速度都是比较低的。

如果将此值设置为10000,系统将会将缓存减少到一个合理的水平。

 

 

三、查看空闲内存阈值:

sysctl -a | grep min_free_kbytes

具体设置【重启失效】:

echo 1024000 > /proc/sys/vm/min_free_kbytes //设置1G的阈值

echo 200 > /proc/sys/vm/vfs_cache_pressure

echo 40 > /proc/sys/vm/swappiness

sysctl -w vm.min_free_kbytes=1024000

sysctl -w vm.vfs_cache_pressure=200

sysctl -w vm.swappiness=40

那么Linux空闲内存=102400kb+原始预留空闲内存(如我的是700M左右)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值