linux内存中cache分析

本文通过实际案例介绍了如何使用top命令发现Linux系统中缓存占用情况,并深入探讨了如何定位被缓存的具体文件,包括使用定制工具进行验证的过程。

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

背景
在做性能测试中,用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 *
输出
# 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
[img]http://dl2.iteye.com/upload/attachment/0111/5619/2d2a2a90-d0d7-3748-b568-30f697cf07b0.png[/img]

用vi编辑器,打开了wildfly(110M左右)
[img]http://dl2.iteye.com/upload/attachment/0111/5621/bb801948-0e17-3a6c-9814-3de8b8d60486.png[/img]

用cache分析工具,查看是否是这个文件
[img]http://dl2.iteye.com/upload/attachment/0111/5623/7459193f-11a8-37b3-a5f3-019e09a3f5d2.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值