当前位置:首页>Linux>CXL 内存时代来了:Linux 如何管理 TB 级内存?

CXL 内存时代来了:Linux 如何管理 TB 级内存?

  • 2026-03-15 04:18:12
CXL 内存时代来了:Linux 如何管理 TB 级内存?

    过去几十年服务器内存架构几乎没有发生根本变化:CPU 通过集成的内存控制器直接访问 DDR DIMM 模块,系统可用内存容量受限于 CPU 插槽数量、内存通道数量以及 DRAM 芯片密度。当应用规模还停留在几十 GB 或几百 GB 时,这种架构能够满足需求,但随着 AI 训练、内存数据库、图计算以及实时分析系统的发展,越来越多应用开始需要 TB 级甚至更大的内存容量。传统 DRAM 扩展不仅成本高,而且资源利用率低,例如在云数据中心中,一些服务器可能存在大量空闲内存,而另一些服务器却频繁触发 OOM,这种资源孤岛问题严重影响整体效率。

    CXL(Compute Express Link)正是在这种背景下诞生的。CXL 通过在 PCIe 物理层之上构建新的缓存一致性协议,使 CPU 可以直接访问设备内存,从而突破 CPU DIMM 插槽的限制,实现内存扩展与内存池化。在 CXL 架构下,服务器不仅可以接入本地 DRAM,还可以通过 CXL Switch 接入远端内存扩展设备甚至机架级内存池。然而对于 Linux 内核而言,这意味着系统物理内存不再是简单的本地 DRAM,而可能包含 本地 DRAM、远端 DRAM、CXL 内存甚至持久化内存等多种层级。如何在 TB 级甚至 PB 级内存系统中高效管理这些资源,成为 Linux 内存管理子系统需要解决的重要问题。


一、CXL 架构:从 I/O 总线到内存互连

    传统 PCIe 主要用于设备 I/O,其通信模式依赖 DMA:设备通过 DMA 引擎访问主机内存,而 CPU 无法直接通过 load/store 指令访问设备内存。CXL 的设计目标是改变这种模式,使设备内存能够被 CPU 以类似 DRAM 的方式访问,从而实现真正的 内存语义互连(Memory Semantic Interconnect)

CXL 协议栈由三个部分组成:

  • CXL.io:用于设备发现、配置空间访问以及中断管理,基本兼容 PCIe

  • CXL.cache:允许设备访问 CPU cache 并参与缓存一致性协议

  • CXL.mem:允许 CPU 直接访问设备内存

在实际系统中,CXL 通常通过 PCIe Root Complex 接入,并通过 CXL Switch 连接多个设备。典型架构如下:

                 +----------------+                 |      CPU       |                 |  Memory Ctrl   |                 +--------+-------+                          |                   PCIe / CXL Root                          |                     CXL Switch            +-------------+-------------+            |                           |     CXL Memory Expander        CXL Accelerator        (Type 3 Device)           (Type 2 GPU)

    在这种结构下,CPU 可以通过 CXL.mem 协议直接访问远端设备内存,这使得服务器能够突破本地 DIMM 插槽的限制,从而扩展到 TB 级甚至更大的内存规模。


二、CXL 设备类型与内存扩展模式

    根据功能不同,CXL 规范将设备划分为三类。Type1 设备仅支持 CXL.cache,不提供设备内存,典型应用是 SmartNIC 或 FPGA 加速器;Type2 设备同时支持 CXL.cache 与 CXL.mem,既可以访问主机内存,也可以提供设备本地内存,例如 GPU 或 AI 加速器;Type3 设备则只提供 CXL.mem,是一种纯内存扩展设备,通常被称为 CXL Memory Expander

    在数据中心环境中,Type3 设备是最重要的一类,因为它允许服务器通过 PCIe 插槽或 CXL Switch 接入大量额外内存。单个 CXL 内存设备的容量通常在数百 GB 到 1TB 之间,多设备组合可以轻松构建数 TB 内存系统。

典型 CXL 内存扩展架构如下:

           +-------- CPU --------+                    |               CXL Root Port                    |                CXL Switch          +---------+---------+          |                   |   CXL Memory Card      CXL Memory Card        512GB                 1TB

通过这种方式,服务器可以将内存容量扩展到远超传统 DRAM 架构的规模。


三、Linux CXL 子系统架构

    为了支持 CXL 硬件,Linux 内核从 5.12 版本开始引入 CXL 子系统,并在 6.x 内核中持续增强。相关代码主要位于 drivers/cxl/ 目录中,其内部结构包括 core、pci、mem、region、pmem 等多个子模块。

    当系统启动时,PCI 子系统首先完成设备枚举,如果检测到具有 CXL capability 的设备,内核会将其交由 CXL 子系统处理。随后内核会构建完整的 CXL 端口拓扑结构,因为在复杂系统中,CXL 设备可能通过多级 switch 连接。

CXL 设备初始化流程如下:

PCI Enumeration      │      ▼Detect CXL Capability      │      ▼Build CXL Port Topology      │      ▼Register CXL Memory Device      │      ▼Create CXL Region

    当 Type3 内存设备被识别后,Linux 会为其创建对应的 cxl_mem 结构,并通过 region 与 decoder 机制管理其地址映射关系。


四、CXL 内存接入 Linux:Memory Hotplug 机制

    Linux 并不会将 CXL 内存直接当作普通内存处理,而是通过 memory hotplug 机制将其动态加入系统。memory hotplug 原本用于支持服务器运行过程中插拔内存模块,但同样适用于 CXL 设备。

CXL 内存接入系统的大致流程如下:

CXL Type3 Device        │        ▼   cxl_mem Driver        │        ▼ Create CXL Region        │        ▼ add_memory_resource()        │        ▼ Memory Hotplug        │        ▼ Online Memory Pages        │        ▼ Linux Page Allocator

    在这个过程中,内核会为新加入的内存创建 memory block,并在 sysfs 中生成对应节点,例如 /sys/devices/system/memory/memoryX。当 memory block 被 online 后,内核会为其分配 struct page 描述符,并将这些页面加入伙伴系统,从而使 CXL 内存能够被正常分配和使用。


五、TB 级内存带来的结构性挑战

    当系统内存规模达到 TB 级时,Linux 内核需要解决多个结构性问题。首先是 struct page 元数据膨胀问题。Linux 使用 struct page 描述每个物理页面,在典型 x86_64 系统中每个结构大约占 64 字节。如果系统拥有 1TB 内存,按照 4KB 页面大小计算,大约存在 2^28 个页面,这意味着仅页描述符数组就需要约 16GB 内存。为了解决这个问题,Linux 引入了 sparsemem 与 vmemmap 机制,使 struct page 可以按需映射,并在部分系统中支持 memmap_on_memory 技术,即将页描述符存储在 CXL 内存本身。

    其次是 页表规模问题。TB 级内存意味着页表项数量巨大,因此 x86_64 引入了五级页表(5-level paging)机制,使虚拟地址空间从 48 位扩展到 57 位,从而支持最高 128PB 的虚拟地址空间。五级页表结构如下:

PGD └── P4D     └── PUD         └── PMD             └── PTE

与此同时,大页(Huge Page)机制也变得更加重要。Linux 支持 2MB 与 1GB 大页,通过减少页表项数量和 TLB miss 次数,可以显著降低地址转换开销。


六、NUMA 与 Memory Tiering

    CXL 内存通常具有比本地 DRAM 更高的访问延迟,因此 Linux 不会简单地把它当作普通内存,而是将其映射为独立 NUMA 节点。例如在一个典型系统中,本地 DRAM 可能位于 Node0 与 Node1,而 CXL 内存则被映射为 Node2 或 Node3。

示例拓扑如下:

Node0  CPU0 + DRAMNode1  CPU1 + DRAMNode2  CXL MemoryNode3  CXL Memory

    由于不同节点之间的访问延迟差异明显,Linux 在 5.15 内核中引入了 Memory Tiering 机制,用于根据内存访问速度对系统内存进行分层管理。在典型系统中,内存层级通常如下:

+----------------------+| Tier 0 : DDR5 DRAM  || Fast Memory         |+----------------------+| Tier 1 : CXL Memory || Medium Memory       |+----------------------+| Tier 2 : PMEM       || Slow Memory         |+----------------------+

内核会根据页面访问频率动态迁移数据,使热点数据始终位于 DRAM,而访问较少的数据逐渐迁移到 CXL 或 PMEM。


七、未来:CXL Memory Fabric 与 PB 级内存系统

    随着 CXL 2.0 与 CXL 3.0 的发展,内存扩展模式正在从单机扩展走向 内存池化与内存网络(Memory Fabric)。在未来的数据中心中,多台服务器可能通过 CXL Switch Fabric 共享同一个内存池,从而实现类似网络存储的资源共享模式。

典型未来架构如下:

        +----------------------+        |     CXL Fabric       |        +----------+-----------+                   |       +-----------+-----------+       |                       |   Server A               Server B       |                       |       +-----------+-----------+                   |             Memory Pool

    在这种架构下,服务器可以动态申请或释放远端内存资源,系统总内存容量可能达到 数十 TB 甚至 PB 级。Linux 内核未来需要进一步优化 memory tiering、page migration 与调度器协同机制,以适应这种大规模分层内存系统。

如果你是随性之人,可以关注二狗蛋,除了技术,我们还有生活

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 16:37:05 HTTP/2.0 GET : https://f.mffb.com.cn/a/480208.html
  2. 运行时间 : 0.085768s [ 吞吐率:11.66req/s ] 内存消耗:4,644.17kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=39c8c36b4b9aab3f80bf2487a2deb563
  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.000532s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000848s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000321s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000270s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000497s ]
  6. SELECT * FROM `set` [ RunTime:0.000192s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000582s ]
  8. SELECT * FROM `article` WHERE `id` = 480208 LIMIT 1 [ RunTime:0.000404s ]
  9. UPDATE `article` SET `lasttime` = 1774600625 WHERE `id` = 480208 [ RunTime:0.006783s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000392s ]
  11. SELECT * FROM `article` WHERE `id` < 480208 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000692s ]
  12. SELECT * FROM `article` WHERE `id` > 480208 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000408s ]
  13. SELECT * FROM `article` WHERE `id` < 480208 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001858s ]
  14. SELECT * FROM `article` WHERE `id` < 480208 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001825s ]
  15. SELECT * FROM `article` WHERE `id` < 480208 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002671s ]
0.087396s