你是否好奇为什么Linux系统第二次读取同一个文件比第一次快得多?这背后是页缓存(Page Cache)的魔法。本教程将通过详细步骤,测试Linux页缓存对磁盘IO的影响,让你亲眼见证缓存带来的性能飞跃。即使你是刚接触Linux的小白,也能轻松跟上。
一台Linux机器(物理机、虚拟机或云主机均可),建议内存不小于1GB,磁盘剩余空间不小于2GB。需要Linux性能测试常用工具:fio、dd、free、vmstat。通常系统默认已安装,若无则使用包管理器安装(如yum install fio)。
运行free -h查看内存使用,重点关注buff/cache列。页缓存是其中主要组成部分。也可查看cat /proc/meminfo | grep -E "^(MemTotal|MemFree|Cached)",其中Cached就是页缓存的大小。
使用dd if=/dev/zero of=testfile bs=1M count=1024生成一个1GB的测试文件(若磁盘空间有限可减小count)。然后清空系统缓存:echo 3 > /proc/sys/vm/drop_caches(需要root权限)。现在首次读取文件:time cat testfile > /dev/null,记录real时间,这是直接从磁盘IO读取的速度。
紧接着再次执行time cat testfile > /dev/null。你会发现第二次读取耗时极短,因为数据已缓存在页缓存中,几乎不产生磁盘IO。此时再运行free -h,可见buff/cache显著增加。
dd命令不够精细,推荐使用fio进行Linux性能测试。编写以下配置:[test]rw=readbs=4ksize=1Gfilename=testfileioengine=libaiodirect=0direct=0表示使用页缓存,运行fio test.fio观察带宽和IOPS。然后执行缓存清理:echo 3 > /proc/sys/vm/drop_caches,再次运行fio。对比两次结果,磁盘IO性能差异一目了然。
实验表明:利用页缓存,重复读性能可提升几十甚至上百倍。这是Linux内核将空闲内存用于缓存磁盘块,极大减少实际磁盘IO次数的结果。在日常运维和开发中,理解这一机制有助于优化应用IO模式,例如数据库可适当调大innodb_buffer_pool_size,文件服务器可利用vmtouch等工具主动管理缓存。同时,缓存清理是测试缓存效果的标准操作,生产环境请谨慎使用。
通过本教程,你已亲手验证了Linux页缓存对磁盘IO的巨大影响。现在,你可以自信地向同事解释为什么Linux第二次读文件总是“秒开”!
关键词:页缓存、磁盘IO、Linux性能测试、缓存清理
本文由主机测评网于2026-02-11发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/20260224799.html