当前位置:首页>Linux>Linux实时系统里最常见的 10 个坑:优先级、锁、中断、绑核到底怎么避?

Linux实时系统里最常见的 10 个坑:优先级、锁、中断、绑核到底怎么避?

  • 2026-06-30 13:37:14
Linux实时系统里最常见的 10 个坑:优先级、锁、中断、绑核到底怎么避?

很多人第一次做实时系统,容易有一个错觉:

把实时补丁打上,线程优先级拉高,再跑一遍 cyclictest,事情就差不多了。

真正到了现场,很快会发现不是这样。

实时系统最麻烦的地方,不是“某一个机制不会用”,而是很多小问题单独看都不致命,但叠在一起,就足够把关键线程拖垮。

比如:

• 优先级关系乱

• 锁拿得太久

• 中断打在关键核上

• 网卡和控制线程混跑

• 关键路径里动态分配内存

• 热路径里同步打日志

• CPU 绑了,但环境并不干净

这些问题每一个都可能只带来几十微秒、几百微秒的抖动。

但工业现场最怕的,正是这些抖动叠加。

这一篇不讲抽象原理,直接讲实时系统里最常见的 10 个坑,以及怎么避。

一句话先讲明白

实时系统最怕的,不是某个参数没调好,而是关键线程前面同时堆了优先级错误、锁等待、中断干扰、CPU 混跑、内存抖动、驱动慢路径。

避坑的核心,也不是猛调某一个参数,而是顺着关键线程,把“唤醒、调度、执行”这条主路径一层层清干净。

第一坑:把“高优先级”当成万能药

最常见的错误是:

关键线程不稳,那就继续加优先级。

问题是,优先级不是奖励,而是抢占权。

如果系统里一堆线程都被提成高优先级,最后通常会变成:

• 关键线程互相抢

• 后台线程被压死

• 日志、喂狗、恢复线程跑不起来

• 问题看起来更随机

很多现场问题不是关键线程优先级不够高,而是高优先级线程太多,层级关系乱了。

怎么避?

• 按 deadline 排,不按“感觉重要”排

• 高优先级线程数量要少

• 明确谁必须高于谁,谁可以低一点

• 不要让一堆线程挤在同一个实时优先级

• 给日志、恢复、喂狗线程留下运行空间

实时系统里,优先级不是越高越好,而是关系越清楚越好。

第二坑:只看单个线程优先级,不看整体优先级关系

很多人会说:

这个线程我已经给很高优先级了。

但真正决定系统稳不稳的,不是某个线程“高不高”,而是它和其他线程的相对顺序对不对。

尤其在 PREEMPT_RT 系统里,很多中断会线程化。

这时不只要看用户态控制线程,还要看 IRQ 线程、通信线程、采样线程、后台线程。

比如控制线程优先级很高,但它依赖网卡收包。

如果网卡 IRQ 线程优先级太低,数据迟迟进不来,控制线程再高也只能等。

怎么避?

• 列出所有关键线程

• 把控制链、采样链、通信链、后台链分清楚

• 把 IRQ 线程优先级也纳入排序

• 看清关键线程依赖谁,谁又可能打断它

• 不要只排用户线程,忽略内核线程和 IRQ 线程

调优第一步,不是调参数,而是把优先级关系画清楚。

第三坑:锁用得太重

实时系统里,锁不是不能用。

真正危险的是:

• 临界区太大

• 锁里做复杂逻辑

• 锁里做 I/O

• 锁里打日志

• 高低优先级线程共用同一把重锁

这类问题最容易造成一个假象:

高优先级线程明明已经被调度了,但就是推进不下去。

原因不是它没拿到 CPU,而是它卡在锁前面。

怎么避?

• 锁里只放最小必要动作

• 不在锁里做日志、I/O、复杂计算和长循环

• 热路径尽量少共享资源

• 关键线程尽量不要和后台线程共用重锁

• 关键锁优先使用支持优先级继承的机制

锁的问题不在于“有没有锁”,而在于高优先级线程会不会被低优先级路径挡住。

第四坑:忽略优先级反转

很多实时问题表面看像“线程偶发超时”,根因其实是优先级反转。

典型场景是:

低优先级线程拿着锁。

高优先级线程需要这把锁,于是等待。

中优先级线程不断运行,把低优先级线程压住。

低优先级线程迟迟不能释放锁,高优先级线程也就一直等。

最麻烦的是,它表面看起来不像“低优先级线程影响了高优先级线程”。

因为真正占 CPU 的,可能是中优先级线程。

怎么避?

• 缩短持锁时间

• 减少跨优先级共享资源

• 关键路径使用支持优先级继承的锁

• 避免低优先级线程持有高优先级线程需要的资源

• trace 时重点看高优先级线程是不是卡在锁前

• 不要只看谁在跑,还要看谁在等谁

很多“偶发卡顿”不是 CPU 不够,而是等待关系错了。

第五坑:中断路径太重

很多驱动和系统抖动问题,最后都能落到一句话:

中断里做太多。

中断路径太重,常见后果是:

• 周期线程晚醒

• 调度延迟尖峰变大

• 实时线程被中断前置工作挡住

• 平均负载不高,但最大延迟很难看

尤其是网卡、采集卡、串口、CAN、USB、存储设备,一旦中断频率高或者后续处理重,就容易影响实时线程。

PREEMPT_RT 会把很多中断线程化,但不等于中断没有影响。

线程化以后,它仍然要占 CPU,仍然要参与优先级竞争。

怎么避?

• ISR 只做最少必要动作

• 大量处理后移到线程上下文

• 高频中断源重点盯

• 检查 /proc/interrupts,看中断是否集中打在关键 CPU 上

• 对 IRQ 线程设置合理优先级

• 出现尖峰时,优先排查中断路径是否过长

中断不是背景噪声,它经常就是延迟尖峰的来源。

第六坑:把网卡和实时线程放在同一个核上

这是现场特别常见的一类坑。

系统里只要有:

• 高频收包

• TCP/UDP 通信

• SSH 远程访问

• 日志上传

• 监控服务

• NAPI poll 活跃

如果它们和关键实时线程跑在同一个 CPU 上,实时性通常会明显变差。

很多人只看到实时线程绑在 CPU2 上,却没看网卡 IRQ、软中断、NAPI 处理是不是也在 CPU2 上。

结果就是:

线程是绑住了,但干扰也绑过来了。

怎么避?

• 实时线程和高频网卡 IRQ 分核

• 检查 /proc/interrupts,确认网卡中断落在哪些 CPU 上

• 迁走网卡 IRQ 和相关高频干扰

• 注意软中断和 NAPI poll 对 CPU 的影响

• 不要只绑线程,不管 IRQ

• 实时控制核尽量不要承担普通网络业务

很多抖动不是控制线程的问题,而是网络路径把 CPU 打乱了。

第七坑:只做任务绑核,不做 IRQ 绑核

很多人会把关键线程绑到某个 CPU 上。

这一步没错,但只做这一步远远不够。

因为线程虽然固定了,中断可能还在这个 CPU 上乱打。

最后就会出现:

关键线程没有迁移,调度策略也没问题,优先级也不低,但延迟还是抖。

原因可能就是:

你只管了任务,没有管 IRQ。

怎么避?

• 任务绑核和 IRQ 绑核一起做

• 看关键 CPU 上到底有哪些 IRQ

• 把网卡、存储、USB、串口等高频 IRQ 移出关键核

• 必要时停掉 irqbalance,再手工规划 IRQ affinity

• 调整后用 /proc/interrupts 验证,不要凭感觉

绑核不是把线程固定住就结束了。

真正要做的是让关键 CPU 少被无关工作打扰。

第八坑:绑核了,但 CPU 其实并不干净

很多人把实时线程绑到 CPU2,就以为 CPU2 已经是“实时核”了。

但这个 CPU 上可能还在跑:

• 周期 tick

• RCU 回调

• 内核 workqueue

• 普通服务线程

• 软中断

• 定时器回调

所以线程虽然没有迁移,CPU 环境仍然不干净。

从应用层看,线程 affinity 是对的。

但从系统层看,这个 CPU 仍然在承载杂活。

怎么避?

• 先做任务绑核

• 再做 IRQ 迁移

• 检查关键 CPU 上还有哪些内核线程和后台任务

• 必要时配置 isolcpus、nohz_full、rcu_nocbs

• 把普通服务线程移出关键 CPU

• 不要只看 affinity,要看这个 CPU 上到底还在跑什么

实时核不是“绑了一个线程的核”,而是“尽量只服务关键路径的核”。

第九坑:在关键路径里动态分配内存、打大量日志

这类问题特别像:

平时正常,偶发变慢。

动态分配内存可能走到不可预测的慢路径。

日志可能引入字符串格式化、锁竞争、缓冲区等待、I/O 阻塞。

大量数据访问还可能带来 cache 抖动和内存带宽竞争。

放到实时关键路径里,这些都会变成延迟尖峰。

尤其是同步日志,非常危险。

很多现场问题最后发现,不是控制算法慢,而是关键线程在打印、刷盘、抢日志锁。

怎么避?

• 关键路径预分配内存

• 关键线程不频繁 malloc/new

• 热路径少打日志,尤其不要同步打印

• 日志尽量异步化、降频、限流

• 把调试信息和实时路径解耦

• 关键线程启动后尽量避免触发缺页和大块内存申请

实时路径里最贵的,不一定是算法,而是那些“顺手写上去”的辅助动作。

第十坑:一上来就拍脑袋查问题,没有顺着关键线程走

这是最大的一类坑。

实时系统一出问题,很多人会马上到处看:

• CPU 负载

• 调度策略

• 中断数量

• 网卡流量

• 锁竞争

• PREEMPT_RT 配置

• 内核参数

• 驱动实现

这些都要看,但不能一上来乱看。

越是复杂系统,越要先抓主线:

先盯关键线程。

先确认它到底卡在哪一段:

• 没按时醒

• 醒了但没拿到 CPU

• 拿到 CPU 但执行推进太慢

这三个问题,对应的排查方向完全不同。

• 没按时醒:看定时器、中断、唤醒路径

• 醒了没跑:看调度、优先级、CPU 是否被更高优先级任务占住

• 跑了还慢:看锁、内存、I/O、cache、驱动路径和共享资源

怎么避?

• 永远从关键线程倒推

• 先分清问题发生在唤醒、调度还是执行阶段

• 不要一上来就认定是 CPU 或调度器

• 用 trace 看关键线程的实际时间线

• 先看主路径,再看旁路噪声

• 每次只验证一个假设,不要同时乱改一堆参数

实时问题最怕凭感觉查。

先把关键线程的时间线拉出来,很多问题自然会变清楚。

最实用的一套避坑顺序

如果只想记一套现场可用的方法,可以按这个顺序来:

1. 先把关键线程找出来

不要一上来优化全系统。

先明确谁是真正有 deadline 的线程,谁只是辅助线程,谁只是后台线程。

2. 把优先级关系排清楚

不要只问“这个线程优先级高不高”。

要问:

谁绝不能被谁挡住?

谁依赖谁?

谁可以慢一点?

IRQ 线程应该排在哪一层?

3. 把线程和 IRQ 分开

关键线程不要和高频中断共核。

尤其是网卡、采集卡、存储、USB 这类设备,要重点检查 IRQ affinity。

只绑任务不绑 IRQ,很多时候等于只做了一半。

4. 把锁和共享资源收紧

沿着关键路径查一遍:

有没有重锁?

有没有跨优先级共享资源?

有没有锁里打日志、做 I/O、跑复杂逻辑?

高优先级线程是不是在等低优先级线程释放资源?

5. 把 CPU 环境清干净

如果关键线程对延迟很敏感,就不要让它所在的 CPU 同时承担一堆杂活。

必要时做:

• CPU affinity

• IRQ affinity

• isolcpus

• nohz_full

• rcu_nocbs

• 后台服务迁移

目标不是参数好看,而是让关键 CPU 尽量少被打扰。

6. 再看内存、DMA、cache 和驱动路径

前面几层清完以后,如果还有尖峰,再往更深处看:

• 动态内存分配

• 缺页

• DMA 同步

• cache miss

• 驱动慢路径

• 总线竞争

• 设备固件响应时间

这一步通常不是解决大方向问题,而是收尾尖峰。

最后怎么一句话记住?

实时系统最常见的坑,不是某一个参数没配,而是优先级、锁、中断、绑核、内存和驱动路径一起把关键线程拖慢。

避坑的核心也不是头痛医头,而是顺着关键线程,把“唤醒、调度、执行”这条主路径一层层清干净。

先清主路径,再清噪声。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 09:37:49 HTTP/2.0 GET : https://f.mffb.com.cn/a/498319.html
  2. 运行时间 : 0.206254s [ 吞吐率:4.85req/s ] 内存消耗:4,756.46kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=9633af20a51aade92c03df687fcf3c16
  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.000536s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000988s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000297s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.004709s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000531s ]
  6. SELECT * FROM `set` [ RunTime:0.011248s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000644s ]
  8. SELECT * FROM `article` WHERE `id` = 498319 LIMIT 1 [ RunTime:0.002832s ]
  9. UPDATE `article` SET `lasttime` = 1783042669 WHERE `id` = 498319 [ RunTime:0.010365s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001864s ]
  11. SELECT * FROM `article` WHERE `id` < 498319 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.006143s ]
  12. SELECT * FROM `article` WHERE `id` > 498319 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.021870s ]
  13. SELECT * FROM `article` WHERE `id` < 498319 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.029472s ]
  14. SELECT * FROM `article` WHERE `id` < 498319 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.042578s ]
  15. SELECT * FROM `article` WHERE `id` < 498319 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002827s ]
0.207747s