linux内存分配与回收及swap使用观察

本文探讨Linux系统中内存分配与回收的过程,特别是swap的使用。在系统运行过程中,free内存会逐渐减少,cache则会增加。通过dd命令写入大文件时,会触发内存回收,增加swap使用。同时,分析了mysql内存使用情况,以及如何通过top和/proc/meminfo等工具监控swap和cache。详细分析了swapoff的触发条件。
摘要由CSDN通过智能技术生成
1) 系统刚刚启动的时候free会比较大

在这里插入图片描述

2) 运行一段时间之后,free会减小到很少,cache会增加到尽量大。

这会因为系统为了加速文件读写速度,减少磁盘使用次数尽量多的使用内存cache硬盘上的数据。虽然free比较少了,但是有新的内存请求的时候可以立即从cache里面回收物理内存,所以系统显示的可用内存变化不大(461M-465M)。
在这里插入图片描述

3)下面这个例子我用dd程序写一个1G的文件到硬盘,运行过程中需要申请大量内存。

当有程序运行过程中需要内存大于free的时候,根据swappiness的设置按照一定比例,回收cache页面和anon页面来满足新的内存分配需求。cache会减小,swap used会增加,used 会增加。
当程序运行结束的时候会重新释放内存,可以看到free增加列很多,cache暂时变化不大,因为没有新的磁盘读写。Swap used会减小,但还是大于系统刚启动的时候,这是因为有一部分数据暂时不被应用程序使用到,也没有释放,就继续留在swap中。随着系统运行时间的增长swap中这种数据可能会慢慢积累到一个比较大的数字。比如我们看到的gdm和mysqld程序长时间运行会在swap中占用很大空间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值