乐于分享
好东西不私藏

vLLM 0.25.1 源码分析(二 MultiprocExecutor → Worker → Model Runner V2)

vLLM 0.25.1 源码分析(二 MultiprocExecutor → Worker → Model Runner V2)

上一篇讲到路径 D 的 build_async_engine_client 一路 spawn 出 EngineCore 子进程,EngineCore.init 里 self.model_executor = executor_class(vllm_config) 实例化了 MultiprocExecutor。

本篇从这里开始,拆开引擎侧的进程/类关系,

重点分析 vLLM 0.25 默认启用的 ModelRunner V2(MRV2)。

代码根目录:/usr/local/lib/python3.12/dist-packages/vllm

示例场景:Qwen3-32B,TP=4,--distributed-executor-backend mp。


1. 涉及的核心类与职责

进程拓扑(TP=4, DP=1):

主进程 APIServer(pid=5147) └─ EngineCore 子进程(pid=5386) └─ MultiprocExecutor ├─ Worker 子进程(pid=5596, TP rank0, driver) ├─ Worker 子进程(pid=5597, TP rank1) ├─ Worker 子进程(pid=5598, TP rank2) └─ Worker 子进程(pid=5599, TP rank3)

2. MultiprocExecutor._init_executor(multiproc_executor.py:110)

def _init_executor(self) -> None: tp, pp, pcp = self._get_parallel_sizes()# TP=4, PP=1, PCP=1 assert world_size == tp * pp * pcp# world_size=4 set_multiprocessing_worker_envs()# 1) 建广播消息队列:把 SchedulerOutput 广播给所有 Worker(共享内存 MessageQueue) self.rpc_broadcast_mq = MessageQueue(world_size, local_world_size, ...) scheduler_output_handle = self.rpc_broadcast_mq.export_handle()# 2) 逐个 rank spawn Worker 进程 context = get_mp_context()# spawn for local_rank in range(self.local_world_size):# 0..3 global_rank = global_start_rank + local_rank unready = WorkerProc.make_worker_process( vllm_config, local_rank, global_rank, distributed_init_method,# tcp://127.0.0.1:port input_shm_handle=scheduler_output_handle,# 传广播队列句柄 is_driver_worker=self._is_driver_worker(global_rank), ) unready_workers.append(unready)# 3) 等所有 Worker 就绪# (worker.init_device 里有 device sync,必须先全部 spawn 再统一等,否则死锁) self.workers = WorkerProc.wait_for_ready(unready_workers)# 4) 起后台线程监控 Worker 健康 self.start_worker_monitor()# 5) 收集每个 Worker 的 response 队列(收 ModelRunnerOutput) self.response_mqs = [...]

要点:

  • **进程间通信基于共享内存 **MessageQueue:rpc_broadcast_mq(executor → workers 广播 SchedulerOutput)+ 每个 worker 的 worker_response_mq(worker → executor 回传输出)。
  • TP=4 → local_world_size=4 → spawn 4 个 Worker 进程(日志里的 pid 5596~5599)。
  • rank 0 为 driver worker。
  • 先全部 spawn 再统一 wait_for_ready,是因为 init_device() 里有跨卡 device sync,必须并行起来否则互相等待死锁。

3. WorkerProc.make_worker_process:spawn 进程(multiproc_executor.py:662)

ready_reader, ready_writer = context.Pipe(duplex=False)# 子->父 就绪信号death_reader, death_writer = context.Pipe(duplex=False)# 检测父进程退出proc = context.Process( target=WorkerProc.worker_main,# 子进程入口 kwargs={...},)proc.start()# ★ spawn Worker 子进程

spawn 出来的子进程执行 WorkerProc.worker_main(:810)→ worker = WorkerProc(*args) → 进入 WorkerProc.init


4. WorkerProc.init:worker对应哪个类,里面做什么(multiproc_executor.py:597)

关键三步:

# ① 实例化真正的 Workerwrapper = WorkerWrapperBase(rpc_rank=local_rank, global_rank=rank)wrapper.init_worker(all_kwargs)# 按 worker_cls 动态 import 并实例化self.worker = wrapper# ② 绑 GPU + 初始化 NCCL + 构建 model_runnerself.worker.init_device()# ③ 加载模型权重self.worker.load_model()# 建收/发消息队列(收 SchedulerOutput / 发 ModelRunnerOutput)self._init_message_queues(input_shm_handle, vllm_config)

worker 对应的类:init_worker 根据 parallel_config.worker_cls 动态实例化。CUDA 平台在 platforms/cuda.py:312 把它设为:

parallel_config.worker_cls = ”vllm.v1.worker.gpu_worker.Worker”

所以worker 类就是vllm.v1.worker.gpu_worker.Worker(继承WorkerBase)。WorkerWrapperBase 只是延迟实例化的壳。


5. Worker.init_device:分布式环境 + 构建 Model Runner(gpu_worker.py:297)

self.device = torch.device(f”cuda:{visible_device_index}”)torch.accelerator.set_device_index(self.device)# 初始化分布式(NCCL)——日志 ”world_size=4 rank=0 ... backend=nccl”init_worker_distributed_environment( vllm_config, rank, distributed_init_method, local_rank, ”nccl”)if self.use_v2_model_runner: logger.info_once(”Using V2 Model Runner”)# 日志里那行的出处# ★ 构建 model runner,V2 / V1 二选一if self.use_v2_model_runner: from vllm.v1.worker.gpu.model_runner import GPUModelRunner as GPUModelRunnerV2 self.model_runner = GPUModelRunnerV2(vllm_config, device)else: from vllm.v1.worker.gpu_model_runner import GPUModelRunner as GPUModelRunnerV1 self.model_runner = GPUModelRunnerV1(vllm_config, device)

即:先建 CUDA device 和 NCCL 通信组,再根据 use_v2_model_runner 决定实例化哪个 Model Runner。


6. 是否使用MRV2:use_v2_model_runner 判定(config/vllm.py:550)

@propertydef use_v2_model_runner(self) -> bool: if envs.VLLM_USE_V2_MODEL_RUNNER is not None:# 环境变量强制优先 return envs.VLLM_USE_V2_MODEL_RUNNER if spec_method == ”dspark” or dflash_multi_kv or is_diffusion: return True# 这几类只有 V2 支持 if not self._is_default_v2_model_runner_model():# generate + 非hybrid + 非attn_free + return False# (arch 在白名单 或 非 MoE) if not HAS_TRITON:# V2 依赖 Triton return False if self._get_v2_model_runner_unsupported_features():# 有不支持特性则回退 V1 return False return True

_is_default_v2_model_runner_model(config/vllm.py:605):runner_type == "generate" 且非 hybrid、非 attention_free,且(架构在 DEFAULT_V2_MODEL_RUNNER_ARCHITECTURES 白名单里非 MoE)。

本场景结论:Qwen3-32B 是 dense(非 MoE)、generate、非 hybrid,Triton 可用,无不支持特性 → use_v2_model_runner = True,所以日志打印 Using V2 Model Runner。可用 VLLM_USE_V2_MODEL_RUNNER=0 强制回退 V1。


7. 为什么 vLLM 0.25 引入 Model Runner V2

v1/worker/gpu/README.md 直言这是 "Model Runner V2, under active development"。V2 的核心思想:把原来gpu_model_runner.py(V1,单文件近 7000 行的巨型 class)拆成一个极简、稳定、所有模型共享的主 runner + 一批职责单一的工具模块

gpu/model_runner.py 文件头的编码约束(原文大意):

  • 这个 model runner 被所有模型共享(文本/多模态、生成/embedding、公开/私有),所以只能放通用代码;
  • 对改动要"偏执",对新增行要"更偏执",保持最小、稳定;
  • 特性逻辑(哪怕是并行模式这种共享特性)一律外置到工具函数,越不常用越要藏起来。

模块拆分(v1/worker/gpu/):

对比 V1 的单体 gpu_model_runner.py,V2 更易维护、更易按模型类型扩展。


8. GPUModelRunner(V2) 的构建与 load_model

8.1 init(gpu/model_runner.py:122)预建通用组件

从 vllm_config 摊平各 sub-config,并预建:

  • RequestState(states.py):请求状态(max_num_reqs / max_model_len 等)
  • InputBuffers(input_batch.py):输入缓冲池
  • PP 时的 PPHandler
  • EPLBController
  • 多模态时的 EncoderCache
  • 投机解码时的 speculator(init_speculator)

采样相关(Sampler / cudagraph_manager 等)延迟到load_model之后,因为它们依赖 model_state。

8.2 load_model(gpu/model_runner.py:276)

Worker.load_model(gpu_worker.py:424)会调用它:

model_loader = get_model_loader(load_config)self.model = model_loader.load_model(vllm_config, model_config)# 加载 safetensors 权重# 日志: ”Model loading took 15.52 GiB and 7.10 seconds”# 按模型类型建状态(generate / pooling / 多模态等各自的 model_state)self.model_state = init_model_state(vllm_config, self.model, encoder_cache, device)# 末位 PP rank 上建采样相关组件if self.is_last_pp_rank and not self.is_pooling_model: self.sampler = Sampler(...) if speculative_config: self.rejection_sampler = RejectionSampler(...) self.prompt_logprobs_worker = PromptLogprobsWorker(...) self.structured_outputs_worker = StructuredOutputsWorker(...)

8.3 后续阶段(后文展开)

load_model 之后由 EngineCore 侧驱动:

  • get_kv_cache_spec(:408)→ 汇报 KV cache 规格
  • initialize_kv_cache(:411)→ 分配 KV cache 显存
  • profile_run(:673)→ dummy forward 测峰值显存,算出可用 KV cache
  • capture_model(:710)→ 捕获 CUDA Graph(PIECEWISE / FULL)
  • 推理期:execute_model(:1151)+ sample_tokens(:1395)

9. 一句话链路总结

EngineCore.__init__: self.model_executor = MultiprocExecutor(vllm_config) └ MultiprocExecutor._init_executor (multiproc_executor.py:110) 建 rpc_broadcast_mq(广播 SchedulerOutput) ×4 WorkerProc.make_worker_process (:662) → spawn Worker 子进程 └ WorkerProc.worker_main (:810) └ WorkerProc.__init__ (:597) ① WorkerWrapperBase.init_worker → Worker(gpu_worker.py:130) ② Worker.init_device (gpu_worker.py:297) NCCL init + 判 use_v2_model_runner → GPUModelRunner V2 (gpu/model_runner.py:121) ③ Worker.load_model → model_runner.load_model (gpu/model_runner.py:276) 加载权重 + init_model_state + Sampler WorkerProc.wait_for_ready + start_worker_monitor

10. 流程图

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-22 06:59:18 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/869888.html
  2. 运行时间 : 0.119840s [ 吞吐率:8.34req/s ] 内存消耗:4,661.97kb 文件加载:145
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=e595dcaf56652c191e8955798fd09fa7
  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.000410s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000640s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000553s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000247s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000603s ]
  6. SELECT * FROM `set` [ RunTime:0.000390s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000621s ]
  8. SELECT * FROM `article` WHERE `id` = 869888 LIMIT 1 [ RunTime:0.000550s ]
  9. UPDATE `article` SET `lasttime` = 1784674758 WHERE `id` = 869888 [ RunTime:0.033930s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000358s ]
  11. SELECT * FROM `article` WHERE `id` < 869888 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000533s ]
  12. SELECT * FROM `article` WHERE `id` > 869888 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000391s ]
  13. SELECT * FROM `article` WHERE `id` < 869888 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000764s ]
  14. SELECT * FROM `article` WHERE `id` < 869888 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001486s ]
  15. SELECT * FROM `article` WHERE `id` < 869888 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001094s ]
0.121529s