当前位置:首页>Linux>解构Linux内核三大基石:调度、内存与I/O的“爱恨情仇”

解构Linux内核三大基石:调度、内存与I/O的“爱恨情仇”

  • 2026-03-27 00:21:39
解构Linux内核三大基石:调度、内存与I/O的“爱恨情仇”

一台服务器每秒处理数万请求,幕后是谁在指挥调度?内存将满时,谁在紧急回收?磁盘写入缓慢,谁在默默优化?今天,我们走进Linux内核的“中央指挥部”。

你是否曾经好奇过,当你运行一个程序、打开一个文件、或者访问一个网站时,Linux操作系统背后究竟发生了什么?为什么同样的硬件配置,有的系统流畅如飞,有的却卡顿不堪?

答案就藏在Linux内核的三大核心模块中:进程调度、内存管理、文件I/O。这三者如同一个国家的行政、财政与交通系统,既各司其职,又紧密协作,共同决定了系统的性能与稳定性。

无论你是后端开发者、运维工程师,还是SRE(网站可靠性工程师),深入理解这些底层机制,都是通往高级玩家的必经之路。今天,我们就来揭开它们的神秘面纱。

一、进程调度:CPU时间的“大管家”

想象一下,你的电脑同时运行着浏览器、编辑器、音乐播放器——但在单核CPU上,真正同时运行的只有一个程序。那么,谁来决定下一个该谁上?答案就是调度器

从CFS到EEVDF:公平的艺术

Linux内核自2.6.23版本以来默认使用完全公平调度器(CFS),它的设计理念简单而优雅:每个进程都应该获得相等的CPU时间份额

CFS通过一个名为虚拟运行时间(vruntime)的概念来实现公平性。它的计算公式如下

vruntime = 实际运行时间 * 1024 / 进程权重

这意味着:

  • 高优先级进程(权重大):vruntime增长慢,“虚拟时钟”走得慢,因此获得更多运行时间

  • 低优先级进程(权重小):vruntime增长快,“虚拟时钟”走得快,运行时间相对较少

CFS使用红黑树数据结构来管理所有可运行进程,以vruntime作为排序键值。调度器每次选择树上最左边的节点(即vruntime最小的进程)来运行,从而让所有进程的虚拟运行时间“互相追赶”,实现公平。

调度类的“四层架构”

现代Linux内核并不只有一种调度策略,而是通过多个调度类管理不同优先级的任务:

调度类
优先级
适用场景
截止期限调度类(DL)
最高
硬实时任务,必须按时完成
实时调度类(RT)
实时响应任务,如音视频处理
公平调度类(CFS/EEVDF)
普通
大多数普通进程
空闲调度类(Idle)
最低
系统空闲时运行

每个CPU核心都维护自己独立的运行队列(runqueue),调度器遍历各调度类,选择最合适的任务执行。

多核负载均衡的艺术

在多核系统中,事情变得更有趣。调度器不仅要决定哪个进程运行,还要考虑负载均衡

这里有两个关键机制:

  • wake_affine机制:当一个进程被唤醒时,尽量将其放回原CPU运行,以充分利用CPU缓存

  • 定期负载均衡:定时检查各CPU负载,迁移任务以平衡负载

特别是在NUMA(非统一内存访问)架构下,调度器会优先考虑让进程访问本地内存,避免跨节点访问带来的性能损失。

实战工具

要观察调度器行为,可以使用以下工具:

  • perf sched:记录和分析调度事件

  • trace-cmd:追踪内核函数执行路径

  • /proc/sched_debug:查看调度器内部状态

二、内存管理:系统的“物资部长”

如果说调度器决定谁用CPU,那么内存管理就决定谁用内存、用多少、用完怎么回收。

虚拟内存的“障眼法”

每个Linux进程都认为自己拥有独立的地址空间(例如32位系统下4GB),这就是虚拟内存的魅力。内核通过页表将虚拟地址映射到物理内存,并控制访问权限。

物理内存被划分为固定大小的页(通常4KB),内核使用伙伴系统(Buddy System)以2的幂次管理连续物理页,有效减少外部碎片。

分配器的“三驾马车”

针对不同需求,内核提供多种内存分配器:

  1. 伙伴系统:管理物理页框,负责大块内存分配

  2. slab分配器:缓存频繁分配的小对象(如进程描述符),避免重复初始化

  3. vmalloc:分配虚拟地址连续但物理地址不连续的内存区域

当你调用malloc()申请内存时,内核并不会立即分配物理页——只有在进程实际访问时,才会触发缺页异常,真正分配物理内存。这种惰性分配机制极大提高了内存利用率。

页缓存:加速文件访问

页缓存(Page Cache)是内存管理的得意之作。当你读取一个文件时,内核会将其内容缓存在内存中;下次再读,直接从内存返回,速度提升几个数量级。

页缓存主要服务两类用途:

  • 文件映射页:关联到磁盘文件

  • 匿名页:属于进程地址空间(如堆、栈),没有文件后盾

内存回收的“紧急预案”

当物理内存紧张时,内核必须回收一些页。这时,kswapd内核线程try_to_free_page()函数就会登场。

回收策略基于LRU(最近最少使用)算法,内核维护两类链表:

  • 活跃链表:最近访问过的页

  • 非活跃链表:可能被回收的页

kswapd扫描部分活跃链表,将最近未使用的页移至非活跃链表;当内存极度紧张时,OOM Killer(内存不足杀手)会被唤醒,选择合适进程终止以释放内存。

有趣的是,kswapd会优先压缩页缓存,而不是将进程的匿名页交换出去(swap out),因为后者代价更高。

你可以使用vmstat -a命令查看系统中活跃和非活跃内存的分布。

现代内存特性

  • 透明大页(THP):自动使用2MB或1GB大页,减少TLB缺失

  • 多代LRU(MGLRU):优化回收效率,减少扫描开销

  • 内存cgroup:限制进程组内存使用量,实现资源隔离

三、文件I/O:数据的“高速公路”

文件I/O子系统连接存储与应用程序,它的性能直接影响数据库、Web服务器等应用的吞吐能力。

I/O栈的三层结构

从系统调用到底层硬件,Linux I/O栈大致分为三个层次:

系统调用层(read/write)       ↓文件系统层(VFS + 具体文件系统)       ↓    块设备层(I/O调度)       ↓    设备驱动层(DMA)
  1. 文件系统层:以write()为例,内核将用户态数据拷贝到页缓存中,并适时向下同步

  2. 块层:管理块设备的I/O队列,对请求进行合并、排序

  3. 设备层:通过DMA与内存直接交互,完成数据传输

三种I/O方式的较量

传统缓冲I/O使用页缓存,但涉及两次数据拷贝(磁盘→页缓存→用户缓冲区)。

mmap()将页缓存直接映射到用户地址空间,省去了一次拷贝,效率更高。

直接I/O(O_DIRECT)绕过页缓存,让用户缓冲区和磁盘直接交互:

“直接IO,绕过缓存,不会出现write成功数据丢失情况。注意:直接IO的缺点就是如果访问的数据不在应用程序缓存中,那么每次数据都会直接从磁盘进行加载,这种直接加载会非常慢,通常直接IO跟异步IO结合使用会得到较好的性能。”

I/O模型的演进

Linux I/O模型从简单到复杂不断演进:

  • 阻塞I/O:进程等待直到数据就绪——简单但低效

  • 非阻塞I/O:立即返回,轮询检查——浪费CPU

  • I/O多路复用(select/poll/epoll):单线程监视多个文件描述符——高并发基石

  • 信号驱动I/O:数据就绪时发送信号

  • 异步I/O(AIO/io_uring):操作完成后通知——极致性能

其中epoll已成为现代高并发服务器的事实标准,而io_uring作为Linux 5.1引入的新秀,通过共享环形缓冲区将性能推向新高度。

I/O调度与追踪

在块层,I/O调度器(如mq-deadline、bfq)负责合并相邻请求、优化机械硬盘寻道或SSD并发。

常用I/O分析工具:

  • iostat:查看设备I/O统计

  • blktrace:追踪块层I/O事件

  • bcc/eBPF:动态追踪I/O延迟

四、三者的“爱恨情仇”

调度、内存和I/O并非孤立运作,它们之间存在着错综复杂的相互作用:

相爱相杀的三角关系

场景一:内存回收触发I/O
当内存紧张时,kswapd可能将匿名页换出到交换分区——这本身就是I/O操作。而这些I/O请求又需要进程等待,进而影响调度决策。

场景二:I/O完成唤醒进程
当磁盘数据就绪,设备驱动程序通过中断通知内核,内核唤醒等待该I/O的进程——调度器登场,将其放入运行队列。

场景三:调度影响内存访问
调度器将进程迁移到另一个CPU时,如果该CPU访问的是远端内存(NUMA),内存访问延迟会显著增加,进而影响整体性能。

一个完整的读写故事

假设你执行cat file.txt

  1. 打开文件:VFS根据路径查找dentry和inode,建立文件描述符

  2. 读操作read()系统调用进入内核

  3. 页缓存查找:内存管理子系统检查页缓存是否命中

  4. 缺页:如果未命中,触发缺页异常,内存分配新页

  5. 发起I/O:文件系统层构造I/O请求,传递给块层

  6. I/O调度:块层合并、排序请求,通过DMA读取磁盘

  7. 数据就绪:设备中断通知内核,唤醒等待的cat进程

  8. 调度执行:调度器选择cat进程运行,拷贝数据到用户空间

整个过程涉及三大子系统的无缝协作——任何一个环节出问题,都会成为性能瓶颈。

五、性能调优的启示

理解这三大模块的协同关系,对我们进行性能调优有着重要指导意义:

瓶颈定位思路

  • CPU负载过高 → 关注调度器:是否存在过多上下文切换?是否有进程占用了过多CPU?

  • 内存不足 → 关注内存回收:swap使用情况?页缓存是否被过度挤压?

  • I/O等待严重 → 关注I/O栈:是否可以使用mmap或直接I/O?I/O调度器是否合适?

实用调优建议

  1. 针对高并发网络服务:使用epoll或io_uring,考虑调整网络协议栈参数

  2. 针对数据库应用:考虑直接I/O绕过页缓存(让数据库自己管理缓存),调整I/O调度器为deadline或none

  3. 针对实时任务:考虑PREEMPT_RT补丁,合理设置实时优先级

  4. 针对容器环境:善用cgroups限制资源使用,避免“吵闹的邻居”

观察工具汇总

子系统
命令行工具
追踪工具
调度
top
perf sched
trace-cmd
ftrace
内存
free
vmstat -a
perf mem
eBPF
I/O
iostat
iotop
blktrace
bcc

最后:

Linux内核的调度、内存与I/O三大模块,犹如一支交响乐队的三个声部——调度是指挥,控制节奏;内存是乐谱库,存储音符;I/O是乐器,发出声音。只有三者完美协作,才能奏出高水平的乐章。

从原理层面理解这些机制及其相互作用,是在复杂场景下做出精准优化的前提。 无论是开发高性能应用还是诊断系统瓶颈,这三大模块都是技术人员的必修课。

后续,我们将深入每个子系统,探索更多高级玩法和实战案例。下一期,我们将深入进程调度器,看看CFS如何实现“公平”,以及如何通过调整调度参数优化应用响应时间。

关注我,为您分享更多的IT知识。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 12:56:40 HTTP/2.0 GET : https://f.mffb.com.cn/a/480699.html
  2. 运行时间 : 0.081562s [ 吞吐率:12.26req/s ] 内存消耗:4,763.94kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e3ce034765cf11b47b45e3ae584ec611
  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.000511s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000667s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.001552s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000258s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000496s ]
  6. SELECT * FROM `set` [ RunTime:0.000194s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000567s ]
  8. SELECT * FROM `article` WHERE `id` = 480699 LIMIT 1 [ RunTime:0.002397s ]
  9. UPDATE `article` SET `lasttime` = 1774587400 WHERE `id` = 480699 [ RunTime:0.003657s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000284s ]
  11. SELECT * FROM `article` WHERE `id` < 480699 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000412s ]
  12. SELECT * FROM `article` WHERE `id` > 480699 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000438s ]
  13. SELECT * FROM `article` WHERE `id` < 480699 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000712s ]
  14. SELECT * FROM `article` WHERE `id` < 480699 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001607s ]
  15. SELECT * FROM `article` WHERE `id` < 480699 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001787s ]
0.083253s