乐于分享
好东西不私藏

谈谈OpenAI 发布的MRC

谈谈OpenAI 发布的MRC

TL;DR

其实几个月前就知道OpenAI和Nvidia / AMD / BRCM / Intel在搞一个新的RDMA协议, 昨天见到了OCP的白皮书《Multipath Reliable Connection (MRC) Specification》[1], 以及OpenAI官网的一个发布blog 《Supercomputer networking to accelerate large scale AI training》[2]. 本来这个问题我们已经完美解决了, 阿里云所有Region所有AZ从第八代计算实例开始就完全支持, 多路径都上线2年多了.... 但看到这个协议还是有那么多缺陷, 起初真是懒得多说话了, 但耐不住一堆人来问, 干脆又得罪人来锐评一下.

总体来说, 这个Multipath Reliable Connection (MRC) 的名字定义是准确的, 要在RC Verbs生态兼容的情况下做好多路径的能力, 至少这件事情终于想清楚了,  没有像 AWS 那样搞什么 SRD 或者 UEC 去搞Libfabric的接口, 这正是我几年前就一直在说支持兼容RC Verbs接口的多路径 Lossy RDMA才是正路, 苦口婆心没人听...还记得某些人前几年张嘴就来“ OpenAI RoCE用的好好的, 哪来的问题”, 既然没问题, 那搞新的协议干嘛?

当然对于MRC还是很不满意的, 几年前我们CIPU eRDMA就完全实现的东西, 甚至追溯到20年前iWARP DDP就可以解决所有语义的多路径能力, 时至今日MRC仅支持 WRITE 和 WRITE_IMM , 说实话我真的是有些无语了, 看看里面的厂家 OAI / Nvidia / AMD / Microsoft / Broadcom / Intel , 不由得再次说出那句话: 世界是一个巨大的草台班子.

1. 从RDMA现代化谈起

对于不熟悉这块知识的读者, 可以看以下以前写的一篇比较好懂的文章《“漫”谈RDMA现代化》 来了解 ScaleOut RDMA, 特别是RoCE遇到了哪些问题. RDMA现代化主要是解决以下两个难题:

这也是 MRC 协议覆盖的内容, 也是我一直讲的要支持 RC Verbs 生态兼容, 支持 Lossy RDMA, 支持多路径... 下面这个决策图用了好多遍了, 终于看到这几家想清楚了...

但是很遗憾的是, 他们并没有完全搞明白该怎么做, 例如还需要依赖交换机, 语义上也仅支持 WRITE 和 WRITE_IMM, 那么SEND/RECV, READ, ATOMIC呢? 又不是做不了, 还不是能力不行...

2. 详细分析MRC

2.1 Overview

MRC Spec里写的挺清楚的针对AI/ML 作负载在标准尽力而为以太网上提供可靠的, 高有效吞吐量的连接. MRC 扩展了 RC 传输协议, 具备显式的多路径操作, 路径健康监控和故障恢复能力, 从而使端点能够在拥塞, 链路故障和其他网络损伤的情况下维持有效的吞吐量. 在更大的系统栈中, MRC 位于现有协议层与 AI/ML 框架或运行时库之间, 暴露的 API 允许 NIC, 加速器和主机软件利用多个网络路径, 同时在需要时保留有序的, 可靠的交付语义.

MRC 解决了诸如网络容量利用率不足, 因瞬时网络问题导致的作业失败或停滞, 以及端点行为与特定网络拓扑的紧密耦合等问题.

渣注

首先标准尽力而为以太网的定义是精准的, 也就是说不要PFC, 不要Lossless, “是男人就要硬刚Lossy”. 然后要保留有序是指的某些场合下尾了兼容性问题, 需要回退到支持Strict Order的场景, 例如DeepEP要构建happen-before语义, 需要 WRITE 后保序执行ATOMIC, 但是MRC的做法是: “那就回退到原来的标准RC语义”, 这样一来不就出问题了? hash冲突会再次困扰EP流量...

然后瞬时网络问题是指训练的时候遇到的光模块实效/交换机故障等因素, 传统的单路径会在这种情况下导致超时最后中断训练任务. 而多路径可以规避网络的失效路径. 其实这一点我们在24年初就使用CIPU eRDMA验证过,  TOR / Spine / Leaf / 端口随便怎么乱搞中断, 训练只有100ms内的抖动, 很快就能恢复, 训练被各种网络故障折腾了好多次从来没断过.

最后端点行为与特定网络拓扑的紧密耦合指的是, 过去几年为了解决单路径Hash冲突的问题, 被迫通过多轨道/多平面的方式加大TOR Switch Radix, 通过特定的网络拓扑来规避问题. 但是实质性的问题并没有很好的解决.

简单来说做了以下几方面改进, MRC 连接实现了以下核心能力:

  • 多路径传输 (Multipath Transmission): 使用 ECMP 或源路由, 将请求和可靠性控制数据包 (SACKs) 分布到多个网络路径上, 并支持 ECN 标记.
  • 可靠性控制 (Reliability Control): 使用选择性确认 (SACKs) 和否定性确认 (NACKs) 来确保及时的数据包交付并传达拥塞状态.
  • WriteIMM 限制 (WriteIMM Limiting): 强制执行用户定义的每个连接中在途的带立即数写操作 (Write-with-Immediate) 的最大数量.
  • 拥塞控制 (Congestion Control): 实现 NSCC, 一个在 UltraEthernet 传输规范 [UESPEC] 中指定的基于发送端的拥塞控制算法.
  • 选择性重传 (Selective Retransmission): 允许基于 SACK/NACK 反馈重传特定的数据包.

2.2 如何支持多路径

从转发路径上来看, 包括两种实施方案:

  1. 基于熵值的请求包轮换, 和Google PLB类似利用IPv6的额外的flowlabel字段作为路径熵影响交换机ECMP hash.
  2. 或者使用SRv6这些source-routing的技术, 让交换机跟着uSID寻址转发.
渣注

嵌入Segment的方式我在2021年做netDAM就实现过, 甚至可以通过Segment作为函数调用的方式实现“进程+管道”的处理方式.. 这没啥特别的. 后面针对Internet也实现过Segment Routing over UDP在全球范围内利用Internet资源实现200ms几乎零丢包的可靠传输. 没啥特别的.

但是后来在阿里的时候, 我给自己了一个新的挑战: 如何不用交换机感知和不利用交换机任何高级特性(INP/ECN/packet spray / packet trim)来实现多路径.  很简单, 本来CSP就是一个多租户网络, 有VXLAN这样的Overlay header, 直接改underlay源 UDP端口就可以作为entropy即可...

说实话, 做一个协议, 特别是拥塞控制类的协议, 尽量少的依赖外部信息, 做到自闭环的控制才是一个有品味的人需要做到的...

2.3 为什么语义上MRC仅支持 WRITE/WRITE_IMM

语义层面, MRC在标准的RoCE基础上增加了一个OPcode. 然后通过在每个消息中携带RETH Header来实现Direct Data Placement(DDP)能力.

但是很遗憾, 它只支持WRITE, WRITE with Imm... SEND/RECV, READ, ATOMIC都不支持...

渣注

其实很简单的一个问题, RETH里面只包含了绝对的内存地址, 当然无法处理SEND/RECV这些操作了. 但是这个问题在20年前就解决干净了的, 在iWARP的DDP Header中定义了 Message Seq Number(MSN)和Message Offset, 这样就很容易通过相对的Offset去做写入地址处理了...

另一方面是memory ordering的处理, 这也是导致MRC不支持ATOMIC的原因. 通过多路径转发后一定会出现乱序的情况, ATOMIC和它前后的WRITE如何处理保证顺序? 抱歉做不了, 也就是说在训练场景中, 例如DeepEPv2/NCCL-gin这些依赖ATOMIC的处理又会有问题要回退到单路径的模式...

那么采用WRITE_IMM可行么? 也不行, 抱歉它硬件实现上有一个max_wimm_inflight的约束...另外WRITE_IMM对GPU做通信-计算Overlap也不好, CQE的数据结构让GPU消费挺消耗资源的...

2.3 拥塞控制

主要是借鉴AMD/BRCM在UEC提的那一套:

  1. 增加独立的SACK能力,  SACK 传达数据包接收状态以及为传输和拥塞控制 (CC) 算法提供的网络和响应端拥塞信号.
  2. 基于PSN的Window based CC,  响应端可以在运行时调整最大在途数据包的范围.
  3. 毕竟Intel在里面, AMD也有以前在Intel搞NDP的, 还有BRCM的也是喜欢NDP, 所以Packet Trim也被包含进来了
  4. 还是采用Active probe的机制, 并且可以根据Entropy Probe某个路径, 最后可达性信息还可以通过Port Status mask传递.
渣注

好的地方是终于开始支持Lossy RDMA, 算是走向正路了, 然后拥塞控制也从Rate Based换到了Recv-Driven的CC window. 几年前我就一直反复在说AI的网络需要抛弃PFC+DCQCN... 很高兴看到这几家都达成共识了...

但是实现上又有很多问题没考虑清楚, SACK受硬件设计约束, 直接影响到了整个路径上inflight packet window. 那么也就是说这个协议还是解决不了超大规模集群的跨数据中心ScaleAcross的传输...

然后拥塞控制算法上还是存在缺陷.... RTT+ECN的控制其实挺复杂的, 直接用Swift这样的4个时间戳带内的信号控制 window 不就成了? 非要自己造轮子干嘛?

3. 结论

大概就这样吧, 也数落了MRC不少的问题了... 本来我都懒得谈这事了, 几年前就干净解决的问题, 几大厂商如今还在这里折腾, 折腾废了UEC, 又开一个新的MRC坑...然后还是解决不干净, 就是一个很脏的工程补丁... 极度无语...

很大程度上他们都被Nvidia CX系列的微架构束缚着. 我还是老话重谈, 下面几个指标是几年前提出的, 做到了再来说话...几个指标如下:

  1. 集合通信能够保证95%以上的Fabric利用率 ✅MRC应该能实现
  2. 丢包率5%的时候仍然能够保证90%的Goodput  ❓没有测试结果, 理论上MRC可以做,但是受到Inflight限制
  3. 无需任何交换机的高级特性, 网卡实现多路径和拥塞控制 ❌MRC需要依赖交换机, 多路径可能要SRv6的能力, 拥塞控制要ECN和NDP
  4. 超大规模(128K QPs)并支持所有QP开启多路径转发能力. ❓这个和具体网卡微架构实现相关
  5. 兼容RDMA RC Verbs, 线下RDMA应用无需修改代码即可直接运行. ❌坚持RC兼容是MRC作出的正确选择, 但是也是只支持部分语义算个怎么回事?
  6. Incast 128打1这样的场景, 每个QP之间的带宽差额最大100Kbps.❓基于Window Based CC应该可以, 但是实现上还需测试

感兴趣, 自己读读《RDMA》这个专题, 了解更多的内容..

总体来说, 我还是要对MRC能够迈出在RC Verbs兼容的前提下, 支持多路径转发同时支持Lossy RDMA这件事点赞的. 三年前我们的选择成了工业界的共识, 但愿以后别再又折腾些Lossless的事情了... 然后...剧透一个小事情, 留给NV的时间不多了......

参考资料
[1] 

Multipath Reliable Connection (MRC) Specification: https://www.opencompute.org/documents/ocp-mrc-1-0-pdf

[2] 

Supercomputer networking to accelerate large scale AI training: https://openai.com/index/mrc-supercomputer-networking/

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