清空linux cache的方法

本文探讨了在Linux环境下连续两次读取同一文件时时间差异显著的现象,并解释了这是由于Linux内核缓存机制所致。文章通过具体实验数据展示了缓存前后的时间对比,并提供了释放缓存的方法。

之前的一个项目 ,需要测试读取大文件的时间。但是连续两次读取该文件,会发现时间差异很大。比如第一次需要1分22秒,而第二次只需要5秒的时间 。究其原因 ,是因为linux会 自动缓存一部分文件在内存中去,这样第二次读取的时候,实际上并没有由硬盘到内存的传输。

第一次运行:

[root@test25450 test]# time ./a.out
file size is 8852635648
real    1m21.566s
user    0m0.002s
sys     0m11.386s

第二次运行

[root@test25450 test]# time ./a.out
file size is 8852635648
real    0m5.590s
user    0m0.002s
sys     0m5.588s

可以使用free命令查看当前cache住的容量,使用free命令

[root@test25450 test]# free -g
             total       used       free     shared    buffers     cached
Mem:            31          8         22          0          0          8
-/+ buffers/cache:          0         31
Swap:            7          0          7

上面的结果表明内存中有8G的空间是缓存的硬盘的文件(不用担心cache使用的内存过大,因为如果程序需要,cache所占的内存容量可以快速释放掉)

使用以下命令可以释放掉cache

[root@test25450 test]# echo 3 > /proc/sys/vm/drop_caches

重新再跑一次程序,发现使用的时间又恢复到了1分22秒


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值