当前位置:首页>Linux>看懂 Linux 内存的“假满”与“真缺”

看懂 Linux 内存的“假满”与“真缺”

  • 2026-06-27 23:13:08
看懂 Linux 内存的“假满”与“真缺”
Linux 内存高使用率本身不是问题,能用 available 和 swap 活动度来区分“高效利用”和“濒临溢出”。一旦 available 持续枯竭、直接回收频繁、swap 高速进出,才是真问题。

一、为什么内存“总是”被占满?——Linux 的缓存哲学

Linux 内核有一条核心设计原则:空闲内存是浪费的资源。只要物理内存(RAM)没有被应用明确申请走,内核就会把它用来缓存磁盘上的数据。

这部分缓存主要分为两类,合称 buff/cache

  • Buffer(缓冲区): 缓存文件系统的元数据(如 inode、目录结构)和块设备的原始写入。通常占用很小。
  • Page Cache(页缓存): 这是真正的大头。任何通过 read()mmap() 访问过的文件内容,都会被缓存在未使用的内存页中。程序代码、配置文件、日志、数据库数据文件等全在这里。

你看到的高内存占用,绝大多数就是 Page Cache。
它的意义在于:下一次读写同样的文件时,直接命中内存,速度比磁盘快几个数量级。当应用程序需要新内存时,内核会瞬间丢弃一部分不活跃的缓存页,腾出空间给应用,这个过程对应用几乎无感。

因此,传统意义上“已用内存 = 总内存 - 空闲内存”的公式在 Linux 下是错误的。真正的公式是:

已提交给进程不可回收的内存 ≈ 总内存 - 真正可用内存(available)

二、关键数据结构和回收机制

要深入理解,需要知道内核是如何管理内存页的。

1. 内存页的两大家族

  • 匿名页(Anonymous Pages): 进程的堆、栈、mmap 的 MAP_ANONYMOUS 区域等,没有对应磁盘文件。需要换出时只能写入 Swap。
  • 文件页(File-backed Pages): 可执行文件、普通数据文件的缓存,有磁盘文件作为后备。回收时,干净的页可以直接丢弃;脏页(被修改过)得先写回磁盘。

2. 活跃/非活跃链表(LRU)

内核为每个内存区域维护两个链表:

  • Active list: 最近被访问过的页,属于“热”数据。
  • Inactive list: 一段时间没被访问的页,属于回收的候选者。

当内存紧张时,kswapd 线程会扫描 Inactive 链表,回收干净的文件页,或者将脏页写回后回收。如果压力极大,连 Active 链表里的页也会被降级到 Inactive 然后回收。

3. 水位线(Watermark)

内核为每个内存区域设定了三条水位线:minlowhigh。当空闲内存降到 low 以下时,会唤醒 kswapd 守护线程在后台异步回收内存,直到回到 high 以上。如果空闲内存直接击穿 min 线,那么任何申请内存的操作都会被阻塞,并触发直接内存回收(Direct Reclaim),此时进程会卡顿,IO 飙升,这就是明显的内存压力。

4. Swap 与 swappiness

当需要回收匿名页时,内核要么把它们换出到 Swap 分区/文件,要么就不能回收。vm.swappiness(范围0-100)参数控制内核回收文件页 vs. 换出匿名页的倾向:

  • 值越低,越倾向于回收文件页(清缓存),保留匿名页。
  • 值越高,越倾向于换出匿名页,给文件缓存留空间。

三、正确解读内存状态的核心工具

1. free -h 命令——第一道防线

              total        used        free      shared  buff/cache   available
Mem:           15Gi       3.2Gi       500Mi       1.8Gi        11Gi        9.8Gi
Swap:         2.0Gi       100Mi       1.9Gi
  • total: 物理内存总量。
  • used: 已使用,计算公式大致是 total - free - buff/cache。这个值高是正常的。
  • free: 完全没有被使用的内存,数字小是常态。
  • shared: 大部分是 tmpfs 占用的内存(如 /dev/shm),进程间共享内存也计入这里。
  • buff/cache: 就是上面说的 Buffer 和 Page Cache。可以随时回收。
  • available: 这是唯一需要你关心的数字。它由内核估算,表示即使现在需要,能立即分配给新进程而不导致 OOM 的可用内存。它近似等于 free + 可立即回收的buff/cache

判断标准:只要 available 足够你将要运行的任务使用,且系统响应流畅,内存使用率 99% 也毫无问题。

2. /proc/meminfo——显微镜

这是 free 的数据来源,关键字段:

  • MemAvailable: 和 free -h 里的 available 一致,是决策核心。
  • Cached: Page Cache 总大小,包含文件缓存和 tmpfs。
  • SwapCached: 曾经被换出,但又被换入内存,同时 Swap 中仍保留副本的页。如果这个值很大且波动,说明系统正发生频繁的换入/换出。
  • Committed_AS: 系统承诺给所有进程的内存总量(虚拟内存总和)。如果它超过了 CommitLimit(物理内存+Swap),一旦所有进程同时要求兑现承诺,就会触发 OOM Killer。 这可以预警内存超卖。
  • Shmem: 共享内存和 tmpfs 占用的总量。如果异常大,说明可能有进程在 /dev/shm 里创建了大量文件。
  • Active(file) / Inactive(file)
    :活跃/非活跃的文件缓存页。你可以看到缓存中有多少是热的。

3. vmstat 1——实时压力监控

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 0  0  10240  51200    200 11500000   0   0     0     3    1    1  5  1 94  0  0

关键列:

  • si / so: swap in 和 swap out 的速率(KB/s)。如果这两列持续不为 0,说明系统正在严重抖动,内存已严重不足。
  • bi / bo: 块设备读/写速率。
  • r: 运行队列长度;b:不可中断睡眠的进程数。如果 b 持续大于 0,通常意味着 IO 阻塞,可能是内存不足导致的直接回收在闪存/磁盘上。

四、完整的内存健康度判断流程

第一步:看症状

  • 系统响应变慢、应用延迟飙升、大量磁盘 IO 声音。
  • top 或 htop
     中看到 CPU 等待 IO 的 wa 占比很高,或者 kswapd0 进程 CPU 占用率异常。
  • 查看系统日志:dmesg | grep -i oom,如果出现 “Out of memory: Killed process”,说明已经触发过 OOM Killer。

第二步:查 available 和 swap

  • free -h 观察 available
    。若小于总内存的 5% 且持续下降,危险。
  • swap 的 used
     很高且 si/so 速率很高,问题严重;如果只是用了少量 Swap 但 si/so 几乎为 0,可能是因为某个非活跃匿名页被换出过一次,可以接受。

第三步:用 top / htop 找“凶手”

  • 按 M 键按内存使用排序。
  • 重点关注 RES(物理内存非换出部分)和 SHR(共享内存)。如果某个进程的 RES 在长时间内只增不减,很可能存在内存泄漏。
  • 用 smem -rs pss 可以看到 PSS(比例集大小),它能更公平地反映进程间共享内存的实际开销。

第四步:深挖缓存来源(当缓存异常大时)

  • 如果你怀疑是文件缓存太大导致 available 过低,可以查看具体是什么文件占用了缓存。虽然内核不直接提供完整列表,但可以通过工具如 vmtouchpcstat 或 fincore 查看某个文件或目录的缓存占用。
  • 检查 tmpfs 占用:df -hT | grep tmpfs,看 /dev/shm 或 /run 是否被写入了大量文件。

第五步:监控内存回收事件

  • cat /proc/vmstat | grep -E "pgsteal_|pgscan_|allocstall"
    • pgsteal_kswapd 和 pgscan_kswapd
      :kswapd 后台回收的页数。
    • allocstall: 发生直接内存回收的次数。如果这个数字不断增长,说明空闲内存多次击穿 min 水位线,内存严重不足。

五、经典场景分析

1. “我有 32GB 内存,数据库占了 28GB,available 只有 100MB,是不是要爆了?”

不一定。 数据库(如 MySQL、MongoDB)通常会故意将自己的 buffer pool 锁定在内存中,它们调用的是 malloc 获取匿名页,这部分内存被计为 used,几乎不会被回收。同时,系统通常还会有大量文件缓存。如果 available 非常小,但系统没有 swap 换入换出、没有直接回收、kswapd 也不忙,说明内存分配已经“刚好够用”,处于平衡态。但如果业务一个尖峰需要更多内存,可能立刻 OOM。你需要预留一定量的 available 作为缓冲。

2. “Swap 用了一点,但系统不卡,要不要管?”

可以不管。比如一个后台服务启动了但长期没请求,它的部分内存页被换出到 Swap,这是内核的优化策略,不干扰活跃进程。只有当 vmstat 的 si 列持续有数值,说明进程正被频繁换入,这才会影响性能。

3. “available 很大,但 cached 非常高,应用程序却说自己内存不足”

应用程序可能不是在物理内存层面失败,而是触及了虚拟内存限制(如 ulimit -v)或 cgroup 的内存上限。需要检查容器/进程的 cgroup 限制,而不是宿主机全局内存。


六、如果确实是内存压力过大,怎么办?

不要随手 echo 3 > /proc/sys/vm/drop_caches。这只会暂时清空缓存,性能会陡降,随后缓存又会重新填充,治标不治本,而且可能掩盖真正的内存泄漏。

正确应对:

  • 调整应用参数: 降低数据库 buffer pool、Java heap size、缓存大小等。
  • 控制超卖: 用 cgroup (v1/v2) 给服务设置内存限制,避免单个应用拖垮全局。
  • 调优参数: 适当降低 vm.swappiness(如设为 10),让内核优先清缓存,尽可能保留匿名页,减少 Swap 颠簸。
  • 开启 zram/zswap: 在内存中压缩一部分交换数据,用 CPU 换 IO,对内存压力有奇效。
  • 加物理内存: 这是最简单的终极方案。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 12:31:22 HTTP/2.0 GET : https://f.mffb.com.cn/a/496572.html
  2. 运行时间 : 0.357738s [ 吞吐率:2.80req/s ] 内存消耗:4,652.47kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=05ab8e94aac350f4d10726dcc3c48779
  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.000791s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001615s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.101352s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.050801s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001687s ]
  6. SELECT * FROM `set` [ RunTime:0.000661s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001977s ]
  8. SELECT * FROM `article` WHERE `id` = 496572 LIMIT 1 [ RunTime:0.000934s ]
  9. UPDATE `article` SET `lasttime` = 1783053082 WHERE `id` = 496572 [ RunTime:0.019705s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000702s ]
  11. SELECT * FROM `article` WHERE `id` < 496572 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.007271s ]
  12. SELECT * FROM `article` WHERE `id` > 496572 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.002728s ]
  13. SELECT * FROM `article` WHERE `id` < 496572 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002112s ]
  14. SELECT * FROM `article` WHERE `id` < 496572 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.002406s ]
  15. SELECT * FROM `article` WHERE `id` < 496572 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010007s ]
0.360856s