Linux内存中Cache分析

背景
在做性能测试中,用top命令发现内存的cache到了4G左右,当时就好奇是cache了什么东西。然后就顺着分析,压测过程中日志文件过大,导致缓存的是日志。

为了验证这个结果,首先是随便vi一个大文件,然后查看cache是否变化。
然后寻找了工具,验证下文件里是否是那个文件。
最后得出结论:linux是会缓存编辑过的文件的。

下载地址:
https://code.google.com/p/linux-ftools/

官方默认的源码,换行符是windows的,下载完源码以后,需要修改换行符,否则安装报错。需要自行替换linux-ftools_modify.zip已经完成了换行符的替换。

打包之前要先修改权限,增加执行脚本的权限
chmod 755 -R *

打包指令
./configure
make && make install

查看缓存命令(只针对当前目录下的文件有效)
linux-fincore --pages=false --summarize --only-cached *
输出
[root@dev-suning tmp]# linux-fincore --pages=false --summarize --only-cached *
filename                                              size        total_pages    min_cached page      cached_pages        cached_size        cached_perc
--------                                              ----        -----------    ---------------      ------------        -----------        -----------
Could not mmap file: linux-ftools: No such device
Could not mmap file: linux-ftools-new: No such device
Could not mmap file: redis-2.8.19: No such device
wildfly-8.1.0.Final.tar.gz                            115,995,207        28,320          0            28,320        115,998,720            100.00
---
total cached size: 115,998,720


以下是截图

刚开始的时候,cache只有40M

用vi编辑器,打开了wildfly(110M左右)

用cache分析工具,查看是否是这个文件

Linux内存中Cache分析

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/15944.html