背景
在做性能测试中,用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分析工具,查看是否是这个文件