乐于分享
好东西不私藏

RDMA OpenSM 架构、软件实现与应用

RDMA OpenSM 架构、软件实现与应用

knowledge base:

RDMA IB Core 软件架构及应用

RDMA InfiniBand MAD 架构及工作原理

RDMA SM/SA 软硬件架构及软件接口使用

RDMA: libibverbs 架构及其与内核 uverbs 的交互机制

RDMA: event channel 架构及软件实现解析

一、RDMA 基础架构

1.1 什么是 RDMA

RDMA(Remote Direct Memorial Access,远程直接内存访问)是一种允许网络中一台计算机直接访问另一台计算机内存的技术,无需 CPU 介入、无需操作系统内核参与数据路径

传统网络路径:
App → 用户态Buffer → 系统调用 → 内核协议栈 → 网卡驱动 → 网络

RDMA 路径:
App → 注册内存区域(MR) → RDMA NIC(RNIC) → 网络(内核旁路)

1.2 RDMA 三大传输协议


       
         
           
           
         
协议全称链路层特点
InfiniBandIB专用IB网络性能最强,延迟最低,需专用交换机
RoCERDMA over Converged Ethernet以太网v1基于L2,v2基于UDP/IP,复用以太网
iWARPInternet Wide Area RDMA ProtocolTCP/IP兼容性强,性能稍弱
       

     

1.3 核心操作语义

单边操作(Zero-copy,无需远端CPU):
  RDMA READ   — 从远端内存读取数据
  RDMA WRITE  — 向远端内存写入数据
  RDMA ATOMIC — 原子操作(CAS/FAA)

双边操作(需远端CPU参与):
  SEND / RECV — 类似传统消息传递

二、InfiniBand 网络架构

2.1 IB 网络拓扑组件

┌──────────────────────────────────────────────────┐
│                  InfiniBand Fabric                │
│                                                  │
│   Host A                         Host B          │
│  ┌──────┐    ┌──────────────┐   ┌──────┐        │
│  │ HCA  │────│   IB Switch  │───│ HCA  │        │
│  └──────┘    └──────┬───────┘   └──────┘        │
│                     │                            │
│              ┌──────┴───────┐                   │
│              │   IB Switch  │                   │
│              └──────┬───────┘                   │
│                     │                            │
│              ┌──────┴───────┐                   │
│              │  SM (OpenSM) │  ← Subnet Manager  │
│              └──────────────┘                   │
└──────────────────────────────────────────────────┘

2.2 IB 地址体系


       
         
           
           
         
地址类型说明
GIDGlobal Identifier,128位,全局唯一
LIDLocal Identifier,16位,子网内唯一,由SM分配
GUID64位,硬件固化,类似MAC地址
PKEYPartition Key,逻辑隔离分区
       
     

三、OpenSM 架构详解

3.1 OpenSM 定位

OpenSM 是 Linux 平台上开源的 InfiniBand Subnet Manager(SM) 实现,属于 rdma-core / opensm 项目,由 OFED(OpenFabrics Enterprise Distribution)维护。

SM 是 IB 网络的"大脑",负责发现拓扑、分配地址、计算路由、管理状态。

3.2 OpenSM 核心子系统

┌─────────────────────────────────────────────────────────┐
│                        OpenSM                           │
│                                                         │
│  ┌───────────┐   ┌──────────────┐   ┌───────────────┐  │
│  │  Subnet   │   │   Routing    │   │    Event      │  │
│  │  Manager  │   │   Engine     │   │   Manager     │  │
│  └─────┬─────┘   └──────┬───────┘   └───────┬───────┘  │
│        │                │                    │          │
│  ┌─────▼────────────────▼────────────────────▼──────┐   │
│  │              Core State Machine                  │   │
│  └─────────────────────┬─────────────────────────── ┘   │
│                        │                                │
│  ┌─────────────────────▼──────────────────────────────┐ │
│  │            MAD (Management Datagram) Layer         │ │
│  └─────────────────────┬──────────────────────────────┘ │
│                        │                                │
│  ┌─────────────────────▼──────────────────────────────┐ │
│  │              libibmad / libibumad                  │ │
│  └─────────────────────┬──────────────────────────────┘ │
│                        │                                │
└────────────────────────┼────────────────────────────────┘
                         │
                    IB Hardware (HCA)

3.3 OpenSM 工作流程

Phase 1: 发现(Discovery)
  SM 发送 SMP (Subnet Management Packets)
  遍历所有交换机端口,构建拓扑图

Phase 2: 地址分配(Address Assignment)
  为每个端口分配唯一 LID
  写入各节点的 PortInfo 属性

Phase 3: 路由计算(Routing)
  根据拓扑选择路由算法(min-hop/ftree/lash等)
  生成 LFT(Linear Forwarding Table)
  下发至所有交换机

Phase 4: 激活(Activation)
  将所有端口状态迁移到 ACTIVE
  子网进入可用状态

Phase 5: 持续监控(Event-driven maintenance)
  监听 Trap 事件
  处理端口上/下线,触发重新路由

3.4 OpenSM 路由算法


       
         
           
           
         
算法适用场景特点
min_hop通用默认最短路径,简单高效
ftreeFat-Tree 拓扑针对HPC胖树网络优化,负载均衡
lash多路径消除死锁,利用虚通道
updn非规则拓扑Up/Down 路由,避免环路
dgree大规模集群分布式路由计算
dfsssp通用基于Dijkstra最短路径
       

     

四、软件栈实现

4.1 Linux RDMA 软件栈层次

用户态应用
    │
    ▼
┌──────────────────────────────────────┐
│         用户态库 (libibverbs)         │  ← verbs API
│   libmlx5 / librdmacm / libmad       │
└──────────────────┬───────────────────┘
                   │ ioctl / mmap
┌──────────────────▼───────────────────┐
│         内核态 RDMA 子系统            │
│  ib_core / rdma_cm / ib_uverbs       │
├──────────────────────────────────────┤
│         驱动层                        │
│  mlx5_core / mlx4 / rxe(软件RoCE)    │
└──────────────────┬───────────────────┘
                   │
              RDMA 硬件 (HCA/RNIC)

4.2 关键库与工具

# 核心库
libibverbs      # 统一 verbs 接口
librdmacm       # 连接管理(类socket)
libibmad        # MAD 报文处理
libibumad       # 用户态 MAD 访问

# OpenSM 相关

opensm          # Subnet Manager 主程序
osmtest         # SM 功能测试工具

# 诊断工具

ibstat          # 查看HCA状态
ibstatus        # 端口链路状态
ibroute         # 查看路由表
ibtracert       # 路径追踪
perfquery       # 性能计数器查询
ibping          # 网络连通测试

4.3 OpenSM 安装与启动

# 安装(RHEL/CentOS)
yum install opensm opensm-libs

# 安装(Ubuntu/Debian)

apt install opensm

# 启动

systemctl start opensm
systemctl enable opensm

# 手动启动(指定端口GUID)

opensm -g 0x0002c9030000f1e1 \
       -f /var/log/opensm.log \
       -R ftree \          # 路由算法
       --priority 8        # SM优先级(0-15,越高越优先)

4.4 OpenSM 配置文件

# /etc/opensm/opensm.conf(关键配置项)

# 路由算法

routing_engine ftree

# 日志级别

log_flags 0x03

# SM 优先级(多SM部署时使用)

sm_priority 8

# 扫描周期(秒)

sweep_interval 10

# 开启 SR-IOV 支持

enable_sr_iov TRUE

# Partition 配置文件

partition_config_file /etc/opensm/partitions.conf

4.5 Partition(分区)配置

# /etc/opensm/partitions.conf
# 格式: PartitionName=PKEY, [ipoib]: GUIDlist


Default
=0x7fff, ipoib:
    ALL_CAS
=full;       # 所有CA端口加入默认分区

Storage
=0x0002, ipoib:
    0x0002c9030000f1e0
=full,   # 存储节点
    0x0002c9030000f1e2
=full;

Compute
=0x0003, ipoib:
    0x0002c9030000f1e4
=full,   # 计算节点
    0x0002c9030000f1e6
=full;

五、核心编程接口(Verbs API)

5.1 RDMA 连接建立流程

// 1. 获取设备列表
struct ibv_device **dev_list =
 ibv_get_device_list(&num_devices);

// 2. 打开设备

struct ibv_context *ctx =
 ibv_open_device(dev_list[0]);

// 3. 分配 Protection Domain

struct ibv_pd *pd =
 ibv_alloc_pd(ctx);

// 4. 注册内存区域(MR)

struct ibv_mr *mr =
 ibv_reg_mr(pd, buf, buf_size,
    IBV_ACCESS_LOCAL_WRITE |
    IBV_ACCESS_REMOTE_READ |
    IBV_ACCESS_REMOTE_WRITE);

// 5. 创建 Completion Queue

struct ibv_cq *cq =
 ibv_create_cq(ctx, CQ_SIZE, NULL, NULL, 0);

// 6. 创建 Queue Pair(QP)

struct ibv_qp_init_attr qp_attr =
 {
    .send_cq = cq,
    .recv_cq = cq,
    .qp_type = IBV_QPT_RC,   // Reliable Connection
    .cap = { .max_send_wr = 64, .max_recv_wr = 64 }
};
struct ibv_qp *qp =
 ibv_create_qp(pd, &qp_attr);

// 7. QP 状态迁移: RESET → INIT → RTR → RTS

// (需交换 QPN、LID、GID 等握手信息)

5.2 RDMA WRITE 操作示例

// 构建 WRITE 工作请求
struct ibv_sge sge =
 {
    .addr   = (uint64_t)local_buf,
    .length = msg_len,
    .lkey   = mr->lkey          // 本地内存key
};

struct ibv_send_wr wr =
 {
    .wr_id      = 1,
    .opcode     = IBV_WR_RDMA_WRITE,
    .sg_list    = &sge,
    .num_sge    = 1,
    .send_flags = IBV_SEND_SIGNALED,
    .wr.rdma = {
        .remote_addr = remote_addr,  // 对端虚拟地址
        .rkey        = remote_rkey   // 对端内存key
    }
};

// 提交到发送队列

struct ibv_send_wr *bad_wr;

ibv_post_send(qp, &wr, &bad_wr);

// 轮询完成队列

struct ibv_wc wc;

while
 (ibv_poll_cq(cq, 1, &wc) == 0);
// wc.status == IBV_WC_SUCCESS 表示成功

六、典型应用场景

6.1 HPC 高性能计算

MPI 通信库(OpenMPI / MPICH)
        │
    UCX 传输框架
        │
   libibverbs (RDMA)
        │
   InfiniBand Fabric (OpenSM 管理)

特点:
- MPI_Send/Recv 透明利用 RDMA
- 延迟 < 1μs,带宽 > 200Gbps(HDR IB)
- 支持 AllReduce 等集合操作硬件卸载

6.2 分布式存储


       
         
           
           
         
系统RDMA 使用方式
CephBlueStore + RDMA messenger
DAOS全RDMA,专为NVM-oF设计
LustreLNet over IB/RoCE
GlusterFSRDMA transport
NVMe-oF块设备通过RDMA访问
       

     

6.3 AI/ML 训练加速

多GPU训练通信栈:

PyTorch DDP / NCCL
       │
   UCX / NCCL-RDMA
       │
  RoCEv2 / InfiniBand
       │
  OpenSM (IB) / 交换机配置 (RoCE)

关键技术:
- GPUDirect RDMA:GPU内存直接DMA到网卡,绕过CPU
- SHARP (Scalable Hierarchical Aggregation):交换机内AllReduce
- 带宽:NDR InfiniBand 400Gbps/端口

6.4 云计算与虚拟化

# SR-IOV 虚拟化(一张物理HCA切分为多个VF)
echo
 8 > /sys/class/infiniband/mlx5_0/device/mlx5_num_vfs

# DPDK + RDMA 用户态网络

# RoCE 在公有云(AWS EFA, Azure InfiniBand)

七、高可用与多 SM 部署

主备 SM 选举机制(基于 SM Priority + GUID):

SM_A (priority=8) ──┐
                     ├── 通过 SMInfo MAD 选主
SM_B (priority=6) ──┘   priority高者成为Master SM
                         相同priority则GUID大者胜出

Master SM:负责完整子网管理
Standby SM:监听Master心跳,随时准备接管

配置示例:
# SM_A(主)
opensm --priority 8 --guid 0x...a

# SM_B(备)  
opensm --priority 6 --guid 0x...b

八、监控与诊断

# 查看子网拓扑
ibnetdiscover -p              # 打印完整拓扑
ibnetdiscover > topo.txt      # 保存拓扑

# 查看路由表

ibroute <switch_lid>          # 查看交换机LFT

# 性能监控

perfquery <lid> <port>        # 端口计数器
ibclearerrors -a              # 清除错误计数

# 链路质量诊断

ibqueryerrors                 # 全网错误扫描
iblinkinfo                    # 链路速率信息

# 路径追踪

ibtracert <src_lid> <dst_lid> # 追踪报文路径

# OpenSM 日志分析

tail
 -f /var/log/opensm.log | grep -E "ERR|WRN|routing"

九、总结

RDMA 生态全景:

物理层:InfiniBand / RoCEv2 / iWARP
         ↓
网络管理:OpenSM(拓扑发现、LID分配、路由计算)
         ↓
驱动层:mlx5_core / ib_core(内核)
         ↓
用户态:libibverbs / librdmacm
         ↓
中间件:UCX / MPI / SPDK / DPDK
         ↓
应用:HPC / AI训练 / 分布式存储 / 低延迟数据库

OpenSM 作为 IB 子网的控制平面,是整个 RDMA 网络正常运作的前提。理解其拓扑发现、路由计算、事件处理机制,对于部署、调优和排障大规模 RDMA 集群至关重要。

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-04-29 21:41:00 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/568860.html
  2. 运行时间 : 0.216198s [ 吞吐率:4.63req/s ] 内存消耗:4,649.60kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=ce680957f4cdb3e083e20f532955d2ed
  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.000803s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001437s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000648s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000628s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001527s ]
  6. SELECT * FROM `set` [ RunTime:0.014112s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001925s ]
  8. SELECT * FROM `article` WHERE `id` = 568860 LIMIT 1 [ RunTime:0.011229s ]
  9. UPDATE `article` SET `lasttime` = 1777470060 WHERE `id` = 568860 [ RunTime:0.005290s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.004307s ]
  11. SELECT * FROM `article` WHERE `id` < 568860 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000839s ]
  12. SELECT * FROM `article` WHERE `id` > 568860 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002397s ]
  13. SELECT * FROM `article` WHERE `id` < 568860 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000678s ]
  14. SELECT * FROM `article` WHERE `id` < 568860 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001568s ]
  15. SELECT * FROM `article` WHERE `id` < 568860 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.003689s ]
0.217933s