当前位置:首页>Linux>Linux磁盘I/O性能优化全攻略:从基准测试到分层实践

Linux磁盘I/O性能优化全攻略:从基准测试到分层实践

  • 2026-01-20 18:40:56
Linux磁盘I/O性能优化全攻略:从基准测试到分层实践

在Linux系统性能优化领域,磁盘I/O是最易成为瓶颈的核心环节。无论是数据库高频读写、日志海量存储,还是大数据离线处理,I/O性能直接决定系统的响应速度与业务吞吐量。不少开发者、运维人员在遭遇I/O瓶颈时,常陷入“盲目调参”的误区,却忽视了“先定位、再优化”的核心逻辑。本文基于Linux I/O栈底层原理,从基准测试切入,逐层拆解应用程序、文件系统、磁盘硬件三层优化思路,帮你构建系统化、可落地的I/O性能调优能力。

一、优化前必做:I/O基准测试(明确目标,拒绝盲目调参)

优化的前提是“知其然更知其所以然”——你需要先明确:当前磁盘/文件系统的性能上限是什么?应用的I/O需求与硬件极限存在多大差距?这就要求通过基准测试获取客观数据,为后续优化提供量化依据,避免凭经验、靠感觉调参。

1. 核心测试工具:fio

fio(Flexible I/O Tester)是Linux生态下最主流的I/O基准测试工具,支持随机读/写、顺序读/写等全场景模拟,可自定义块大小、I/O引擎、缓存策略等核心参数,能精准复现不同业务的I/O访问特征。

(1)fio安装

不同Linux发行版的安装命令简洁直观,直接执行即可:

# Ubuntu/Debian系列apt-get install -y fio# CentOS/RHEL系列yum install -y fio

(2)常见场景测试命令

以下命令覆盖日常最典型的4类I/O场景,重要提醒:若直接测试原始磁盘(如/dev/sdb),会直接破坏磁盘原有文件系统,测试前务必备份所有重要数据!

# 1. 随机读(4K小文件,异步I/O,队列深度64,模拟数据库场景)fio -name=randread -direct=1 -iodepth=64 -rw=randread -ioengine=libaio -bs=4k -size=1G -filename=/dev/sdb# 2. 随机写(参数含义同上,仅I/O模式改为随机写)fio -name=randwrite -direct=1 -iodepth=64 -rw=randwrite -ioengine=libaio -bs=4k -size=1G -filename=/dev/sdb# 3. 顺序读(模拟大数据离线处理、文件拷贝场景)fio -name=seqread -direct=1 -iodepth=64 -rw=read -ioengine=libaio -bs=4k -size=1G -filename=/dev/sdb# 4. 顺序写(模拟日志写入、数据备份场景)fio -name=seqwrite -direct=1 -iodepth=64 -rw=write -ioengine=libaio -bs=4k -size=1G -filename=/dev/sdb

(3)关键参数解读

  • direct:是否跳过系统页缓存(1=跳过,0=使用缓存);测试硬件原生性能时建议设为1,排除缓存干扰

  • iodepth:异步I/O的最大并发请求数,队列深度直接影响吞吐量(队列过浅无法充分利用硬件资源,过深可能导致延迟飙升)

  • rw:I/O模式(read/write=顺序读/写,randread/randwrite=随机读/写,rw=randrw=混合读写)

  • ioengine:I/O引擎(libaio=Linux原生异步I/O,sync=同步I/O,mmap=内存映射I/O)

  • bs:I/O块大小(默认4K,可根据业务场景调整:数据库用4K/8K,大数据用128K/256K)

  • filename:测试目标(磁盘路径=测试硬件性能,文件路径=测试文件系统性能)

(4)测试报告核心指标

fio输出报告中,重点关注以下5个核心指标,它们是评估I/O性能的关键量化依据:

  • slat:I/O提交延迟(从请求发起至内核开始处理的时间,反映请求提交效率)

  • clat:I/O完成延迟(从请求提交至处理完成的时间,异步I/O场景核心关注指标)

  • lat:总延迟(从创建I/O请求到完成的全链路时间,近似等于slat+clat)

  • bw:吞吐量(单位MiB/s或MB/s,反映单位时间内数据传输能力,顺序I/O核心指标)

  • IOPS:每秒I/O次数(随机I/O场景核心指标,如数据库高频小请求场景)

补充说明:同步I/O场景下,请求提交与处理完成是同一流程,因此clat会显示为0,此时slat即可代表实际的I/O完成延迟。

(5)精准模拟应用I/O模式:blktrace+fio重放

常规测试场景难以完全匹配真实业务的I/O特征(如复杂的读写比例、块大小分布),此时可通过“blktrace记录真实I/O+fioreplay重放”的组合方案,精准复现业务的I/O行为,让测试数据更具参考价值:

# 1. 用blktrace跟踪目标磁盘的真实I/O行为(需指定业务访问的磁盘,如/dev/sdb)blktrace /dev/sdb# 2. 将跟踪日志转换为fio可识别的二进制文件blkparse sdb -d sdb.bin# 3. 用fio重放跟踪日志,获取贴近真实业务的I/O基准数据fio --name=replay --filename=/dev/sdb --direct=1 --read_iolog=sdb.bin

二、分层优化思路:从应用到磁盘的全栈突破

Linux I/O栈自上而下分为应用层、文件系统层、磁盘硬件层,优化需遵循“自上至下”的逻辑——先从应用层减少无效I/O请求,再通过文件系统优化I/O调度效率,最后借助硬件升级突破物理性能极限。整体技术框架如下:

1. 应用程序层优化(最易落地,性价比最高)

应用程序是I/O请求的发起源头,通过优化应用的I/O模式和缓存策略,无需改动底层环境即可大幅提升性能,是性价比最高的优化环节:

  • 用追加写替代随机写:机械硬盘(HDD)的随机写需要频繁移动磁头寻址,性能极低;追加写可让数据连续存储,最大程度减少磁头移动开销,典型适用场景:日志存储、数据备份、消息队列持久化。

  • 充分利用系统缓存:优先使用标准库函数(如fopen、fread、fwrite)而非直接调用系统调用(open、read、write),标准库自带缓冲区机制,可自动合并小I/O请求,减少实际磁盘访问次数。

  • 构建应用级缓存:对于高频访问的热点数据,建议在应用内部实现缓存逻辑,或接入Redis、Memcached等分布式缓存系统。核心优势:可自主控制缓存数据的生命周期和淘汰策略,避免被其他应用抢占系统页缓存(典型案例:MySQL数据库若仅依赖系统缓存,当缓存被清理后,查询延迟可能从0.1s飙升至15s)。

  • 用mmap替代read/write:当需要频繁读写同一块文件空间时,使用mmap(内存映射)替代传统的read/write调用,可将文件直接映射到进程地址空间,减少“用户态-内核态”的数据拷贝环节,显著提升I/O效率。

  • 合并同步写请求:避免使用O_SYNC标志(强制每个写请求同步落盘),建议采用“批量写入+fsync()同步”的方式,将多个小写请求合并为一个大写请求后再同步到磁盘,减少磁盘刷盘次数。

  • 限制进程I/O优先级:多应用共享磁盘资源时,需通过技术手段保障核心应用的I/O资源优先级:一是用cgroups限制非核心应用的IOPS和吞吐量上限;二是若使用CFQ调度器,通过ionice命令调整进程I/O优先级(Realtime>Best-effort>Idle),确保数据库、核心业务等关键应用优先获取I/O资源。

2. 文件系统层优化(平衡性能与可靠性)

文件系统是连接应用与磁盘的中间层,负责磁盘空间管理、I/O请求调度和数据可靠性保障。选择适配场景的文件系统并优化配置,是提升I/O性能的关键环节:

  • 选对文件系统:需根据业务场景选择适配的文件系统,避免“一刀切”选型:

  • ext4:适用于中小规模存储场景,支持磁盘收缩、日志恢复,兼容性极佳(Ubuntu默认文件系统);

  • XFS:支持超大规模存储(单文件系统最大16EB),顺序读写吞吐量高,延迟稳定性好,适合大数据离线处理、分布式存储等场景(CentOS 7及以上默认文件系统);

  • tmpfs:内存文件系统,数据存储在内存中,无实际磁盘I/O,适合存储临时文件、高频访问的缓存数据(如/dev/shm目录,默认大小为物理内存的一半)。

优化文件系统配置

  • 调整日志模式:ext4、XFS均支持三种日志模式——journal(全日志,可靠性最高,性能最差)、ordered(顺序日志,默认模式)、writeback(回写日志,性能最优,可靠性最低);非核心数据场景(如日志存储)可选用writeback模式提升性能。

  • 添加挂载选项:在/etc/fstab文件或mount命令中添加noatime参数(禁用文件访问时间更新),减少文件元数据的写入次数;若业务无需记录文件修改时间,可额外添加nodiratime参数(禁用目录访问时间更新)。

  • 优化文件系统特性:对于ext4文件系统,可通过tune2fs工具开启ext_attr(扩展属性)、dir_index(目录索引)特性,提升大目录(文件数10万+)的查询效率。

优化文件系统缓存

  • 调整脏页刷新策略:通过内核参数控制内存脏页量,避免大量脏页集中刷盘导致I/O卡顿——/proc/sys/vm/dirty_background_ratio(后台刷新脏页阈值,默认10%,内存脏页占比达到该值时触发后台刷盘)、/proc/sys/vm/dirty_ratio(强制刷新脏页阈值,默认20%,达到该值时阻塞应用进程强制刷盘),可根据内存大小和业务场景微调。

  • 调整缓存回收倾向:/proc/sys/vm/vfs_cache_pressure参数(默认100)控制内核回收目录项和索引节点缓存的倾向,数值越大越容易回收;内存紧张场景可适当调大(如150),保障应用内存需求;I/O密集场景可调小(如50),保留更多缓存提升I/O效率。

3. 磁盘硬件层优化(突破物理极限)

当应用层、文件系统层优化达到瓶颈后,需通过硬件升级或配置调整突破物理性能限制,这是提升I/O性能的最后一道防线:

  • 升级磁盘类型:用SSD(固态硬盘)替代传统HDD(机械硬盘),SSD无机械磁头和盘片,彻底摆脱寻址延迟限制,随机读写性能可提升10-100倍,是提升I/O性能最直接、最有效的方式,典型适用场景:数据库、高频读写业务。

  • 使用RAID阵列:将多块磁盘组合为RAID阵列,兼顾性能提升与数据可靠性,根据业务需求选择合适级别:

  • RAID 0:条带化存储,无数据冗余,读写性能随磁盘数量线性提升,适合非核心数据(如临时计算数据);

  • RAID 10:先镜像(RAID 1)再条带化(RAID 0),兼具高可靠性和高性能,适合数据库、核心业务等对数据安全和性能均有高要求的场景。

选择合适的I/O调度算法:I/O调度算法决定内核如何排序和分发I/O请求,需根据磁盘类型和业务场景选择,通过/sys/block/[磁盘名]/queue/scheduler文件查看当前调度器,直接写入名称即可修改(永久生效需配置内核参数):

  • noop:简单FIFO队列,无复杂调度逻辑,适合SSD和虚拟机磁盘(无机械寻址开销,调度增益极低);

  • deadline:按请求完成时间排序,确保每个请求都有明确的完成时限,避免请求饥饿,适合数据库、交易系统等对延迟敏感的场景;

  • CFQ:完全公平调度器,按进程分配I/O带宽,确保所有应用公平获取资源,适合多应用共享磁盘的通用服务器场景。

数据隔离存储:为I/O压力大的核心应用(如数据库、日志系统、分布式存储)配置独立磁盘或磁盘阵列,避免不同应用争抢I/O资源,减少相互干扰。

调整磁盘预读大小:顺序读场景下,增大预读大小可让内核提前读取后续数据到缓存,减少I/O请求次数,显著提升吞吐量;随机读场景无需调整(预读无效),配置方式如下: `

# 方法1:直接修改内核参数(单位KB,默认128KB,顺序读场景建议调整为8192KB) echo 8192 > /sys/block/sdb/queue/read_ahead_kb

方法2:用blockdev工具(单位512B扇区,数值为read_ahead_kb的2倍)

blockdev --setra 16384 /dev/sdb`

检查磁盘硬件健康:磁盘硬件故障(如坏道、磁头老化、接口松动)会导致I/O性能骤降,需定期排查:通过dmesg命令查看内核输出的磁盘硬件故障日志;用badblocks工具检测磁盘坏道;用smartctl工具查看磁盘S.M.A.R.T信息;用e2fsck(ext4)、xfs_repair(XFS)工具修复文件系统错误(修复前需卸载磁盘)。

三、优化核心原则与避坑指南

1. 核心原则

  • “先定位,再优化”:优化前必须通过iostat、pidstat、blktrace等工具定位瓶颈源头——是应用发起的I/O请求过多?还是文件系统调度低效?或是磁盘硬件性能不足?避免盲目调参浪费时间。

  • “减少I/O优先于优化I/O”:磁盘是I/O栈中速度最慢的环节,优先通过缓存、请求合并、数据压缩等方式减少无效I/O请求,再优化现有I/O的执行效率,性价比更高。

  • “平衡性能与可靠性”:所有优化都需在性能提升与数据可靠性之间找到平衡点,例如:writeback日志模式虽性能优异,但断电可能导致数据丢失;关闭文件系统日志可提升性能,但数据损坏后无法恢复,核心业务需谨慎权衡。

2. 常见坑点

  • 测试时破坏生产数据:用fio直接测试生产环境的磁盘(如/dev/sda系统盘),导致文件系统损坏、业务中断,解决方案:测试前确认目标磁盘无重要数据,或在测试环境搭建同源环境验证。

  • 过度调大磁盘队列长度:盲目增大iodepth参数追求高吞吐量,导致I/O延迟飙升,解决方案:根据磁盘类型调整,HDD队列深度建议64-128,SSD建议32-64,延迟敏感场景需严格控制队列深度。

  • 忽略缓存抢占问题:仅依赖系统页缓存提升性能,未构建应用级缓存,当其他应用占用大量内存时,系统缓存被回收,导致业务性能暴跌,解决方案:核心业务必须实现应用级缓存,关键数据双缓存兜底。

  • 统一配置所有磁盘:对SSD和HDD采用相同的I/O调度器、预读大小等配置,无法发挥硬件优势,解决方案:按磁盘类型差异化配置,SSD用noop调度器+小预读,HDD用deadline/CFQ调度器+大预读。

四、总结

Linux磁盘I/O优化并非“调几个内核参数就能一劳永逸”,而是一套“基准测试-瓶颈定位-分层优化-验证效果”的闭环系统化流程。从应用层的缓存设计、请求合并,到文件系统的选型配置、日志优化,再到硬件层的磁盘升级、RAID阵列搭建,每一层都有明确的优化方向和可落地的实操方案。整个优化过程的核心思路是:

尽可能减少无效磁盘I/O次数,让有限的I/O资源优先服务于核心业务

最后需要强调:优化没有“银弹”,所有方案都需结合实际业务场景(如HDD/SSD选型、随机/顺序I/O占比、延迟/吞吐量优先级)灵活调整,并通过基准测试验证优化效果。希望本文的分层优化思路和实操指南,能帮你在实际工作中高效解决磁盘I/O性能瓶颈,提升系统稳定性和业务吞吐量!

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-08 15:24:09 HTTP/2.0 GET : https://f.mffb.com.cn/a/464050.html
  2. 运行时间 : 0.633152s [ 吞吐率:1.58req/s ] 内存消耗:5,384.62kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=78c9ebe4e9e41e716b28146674d339cf
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000513s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000749s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.010094s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004857s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000604s ]
  6. SELECT * FROM `set` [ RunTime:0.003357s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000580s ]
  8. SELECT * FROM `article` WHERE `id` = 464050 LIMIT 1 [ RunTime:0.009094s ]
  9. UPDATE `article` SET `lasttime` = 1770535449 WHERE `id` = 464050 [ RunTime:0.009532s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.005599s ]
  11. SELECT * FROM `article` WHERE `id` < 464050 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003743s ]
  12. SELECT * FROM `article` WHERE `id` > 464050 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.039420s ]
  13. SELECT * FROM `article` WHERE `id` < 464050 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.231648s ]
  14. SELECT * FROM `article` WHERE `id` < 464050 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.151718s ]
  15. SELECT * FROM `article` WHERE `id` < 464050 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.090630s ]
0.634763s