当前位置:首页>Linux>Linux 系统上为大型 PostgreSQL 服务器配置 huge_pages

Linux 系统上为大型 PostgreSQL 服务器配置 huge_pages

  • 2026-07-02 16:33:09
Linux 系统上为大型 PostgreSQL 服务器配置 huge_pages

大型 PostgreSQL 部署中,查询延迟突增、CPU 系统态(%sys)异常升高而磁盘 I/O 平稳——此类典型症状往往并非源于 SQL 或硬件瓶颈,而是 Linux 内存页管理机制与数据库共享内存规模不匹配所致。本文从页表映射、TLB 行为、内核内存分配路径出发,系统阐述 huge_pages 的技术原理、静态配置方法、关键约束条件及可观测性验证手段,适用于 shared_buffers ≥ 8 GB 的 OLTP/HTAP 场景。

内存页管理:PostgreSQL 性能的隐性瓶颈

PostgreSQL 的 shared_buffers 是其核心内存结构,用于缓存数据页、WAL 缓冲区及锁表等关键资源。当该参数配置为 32 GB 时,若系统使用标准 4 KB 页面,则需维护约 8,388,608 个独立页表项(PTE)。这一数量级对现代 CPU 的 TLB(Translation Lookaside Buffer)构成显著压力。

TLB 是 CPU 中用于缓存虚拟地址到物理地址映射关系的专用高速缓存。主流 x86-64 处理器的 L1 TLB 容量通常为 64–128 条目(全相联或四路组相联),L2 TLB 为 512–2048 条目。当工作集远超 TLB 容量时,将频繁触发 TLB miss,进而引发代价高昂的页表遍历(Page Table Walk)。该过程需多次访问内存中的多级页表(PGD → PUD → PMD → PTE),在 NUMA 架构下还可能跨节点访问,平均延迟达 100–300 ns。

实测数据显示,在高并发 OLTP 负载下(如 pgbench -c 200 -j 4),启用 4 KB 页面的 PostgreSQL 进程 %sys CPU 使用率可达 15–25%,其中超过 60% 的系统时间消耗于 __pte_allochandle_mm_fault 及 TLB 刷新指令(如 invlpg)执行路径中。此开销直接挤占了查询解析、执行计划生成及 WAL 日志刷写等关键路径的 CPU 周期。

TLB 压力与性能退化的关系建模

设单次 TLB miss 引发的页表遍历平均耗时为 Tptw,每秒内存访问次数为 Naccess,TLB miss 率为 M,则 TLB 相关开销占比为:

Overhead = M × Naccess × Tptw / (1 s)

当 shared_buffers = 32 GB 且采用 4 KB 页面时,理论最大 TLB miss 率趋近于 1(因 TLB 容量远小于所需 PTE 数量)。此时即使 Tptw 仅 150 ns,若 Naccess 达 5×10⁷/s(对应约 8 GB/s 内存带宽),开销即达 11.25% 的 CPU 时间。

huge_pages 的技术本质与作用机制

huge_pages 并非简单增大页面尺寸,而是通过重构内存管理单元,从根本上降低地址转换的层次复杂度。Linux 支持两种大页规格:

2 MB 大页(HPA):基于 x86-64 的 Page Middle Directory(PMD)层级实现,跳过 PTE 层,单个 PMD 条目直接映射 2 MB 物理内存;

1 GB 大页(HugeTLB):基于 Page Upper Directory(PUD)层级,单个 PUD 条目映射 1 GB,但要求内核启动时预分配,灵活性较低。

以 2 MB 大页为例,32 GB shared_buffers 仅需 16,384 个 PMD 条目,较 4 KB 页面减少 511 倍。这带来三重确定性收益:

1.TLB 命中率提升:主流服务器 CPU 的 L2 TLB 可容纳全部 16K PMD 条目,使 TLB miss 率趋近于 0;

2.页表遍历开销归零:地址转换仅需一次 PMD 查找,消除多级页表遍历;

3.内核内存管理轻量化struct page 实例数量锐减,降低 mm_struct 锁竞争及反向映射(rmap)操作开销。

PostgreSQL 的 shared_buffers 区域是 huge_pages 最具价值的应用场景,因其具有长期驻留、访问密集、地址空间连续三大特征,完美匹配大页的适用前提。其他动态分配区域(如 backend process heap)因生命周期短、碎片化严重,不适合强制使用 huge_pages。

透明大页(THP)的不可控性及其禁用必要性

Linux 内核自 2.6.38 引入透明大页(Transparent Huge Pages, THP),旨在无需应用修改即可享受大页优势。其机制为:内核后台线程 khugepaged 周期性扫描匿名内存页,尝试将其合并为 2 MB 大页。然而,该设计与数据库的确定性延迟要求存在根本冲突:

不可预测的内存压缩时机khugepaged 在内存压力下会主动触发 collapse_huge_page(),该操作需持有 mmap_lock 读锁并遍历 VMA,导致用户态进程在 mmap() 或 madvise() 调用时出现毫秒级阻塞;

NUMA 亲和性破坏:THP 合并过程不保证跨 NUMA 节点的内存局部性,可能导致远程内存访问激增;

OOM Killer 触发风险:大页分配失败时,内核可能因无法回收足够连续内存而提前触发 OOM Killer。

PostgreSQL 社区基准测试(PG Bench on 64-core EPYC)表明,启用 THP 后 P99 延迟波动幅度扩大 3.2 倍,且在 70% 负载下即出现周期性 200+ ms 尖峰。因此,所有生产环境必须显式禁用 THP,而非依赖 madvise(MADV_NOHUGEPAGE) 等运行时控制。

永久禁用 THP 的内核级配置

 BASH

# 检查当前状态cat /sys/kernel/mm/transparent_hugepage/enabled# 输出应为 [never] always madvise# 临时禁用(重启失效)echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag# 永久禁用(推荐 GRUB 参数方式)# 编辑 /etc/default/grub,添加:GRUB_CMDLINE_LINUX_DEFAULT="... transparent_hugepage=never"# 更新 GRUB 并重启grub2-mkconfig -o /boot/grub2/grub.cfg && reboot

注:systemd 服务方式存在竞态风险(如 disable-thp.service 启动晚于 postgresql.service),GRUB 参数确保内核启动即生效,是唯一可靠的禁用方案。

静态 huge_pages 的精确计算与分配

静态 huge_pages 需在内核启动早期预分配连续物理内存,其数量计算必须覆盖 PostgreSQL 共享内存的实际物理占用,而非仅 shared_buffers 值。

计算公式与安全余量

设 shared_buffers = S(单位:GB),则所需 huge_pages 数量 N 为:

N = ⌈(S × 1024² + Overhead) ÷ Hugepagesize⌉

其中: - Overhead 为 PostgreSQL 内部开销,实测值约为 S × 0.0625 GB(含 WAL buffers、CLOG、commit log 等); - Hugepagesize 为 2048 kB(2 MB); - ⌈x⌉ 表示向上取整。

示例shared_buffers = 32 GB → 总内存需求 = 32 × 1024² + 32 × 0.0625 × 1024² = 34,096,640 kB → N = ⌈34,096,640 ÷ 2048⌉ = 16,648 → 加入 12% 安全余量(应对未来配置增长)→ N = 18,646 → 取整为 19,000

分配与验证

 BASH

# 临时分配(验证用)sysctl -w vm.nr_hugepages=19000# 永久分配(写入 /etc/sysctl.d/99-postgresql-hugepages.conf)vm.nr_hugepages = 19000# 应用配置sysctl --system# 验证分配结果grep -E "HugePages_|Hugepagesize" /proc/meminfo# 输出应为:# HugePages_Total:   19000# HugePages_Free:    19000# Hugepagesize:       2048 kB

关键约束:分配失败常见于内存碎片。若 HugePages_Total < 19000,说明物理内存不连续。此时必须重启服务器,或在 GRUB 中添加 hugepagesz=2M hugepages=19000 参数强制启动时分配。

内存锁定(memlock)与权限配置

huge_pages 必须被锁定在物理内存中,防止被 swap 或迁移。PostgreSQL 进程需以 CAP_IPC_LOCK 能力运行,并满足 RLIMIT_MEMLOCK 限制。

用户级限制配置

 BASH

# /etc/security/limits.d/postgresql.confpostgres soft memlock 39845888postgres hard memlock 39845888# 计算:19000 pages × 2048 kB = 39,845,888 kB

systemd 服务级强化

 INI

# /usr/lib/systemd/system/postgresql.service.d/override.conf[Service]LimitMEMLOCK=infinity# 或精确指定:LimitMEMLOCK=39GMemoryLock=yes

注意:LimitMEMLOCK=infinity 需内核开启 CAP_IPC_LOCK,且 ulimit -l 输出应为 unlimited。若使用容器化部署,需在 Pod Security Context 中设置 securityContext.capabilities.add: ["IPC_LOCK"]

PostgreSQL 配置与启动验证

启用 huge_pages 需 PostgreSQL 主进程在启动时显式请求大页内存。配置项 huge_pages 有三个取值:

off:禁用(默认);

on:强制启用,若大页不足则启动失败;

try:尽力启用,不足时回退至标准页(推荐初始测试使用)。

配置步骤

 SQL

-- postgresql.confhuge_pages = try  # 初始验证阶段# huge_pages = on # 生产环境启用-- 重启服务systemctl restart postgresql-- 检查日志确认tail -n 20 /var/log/postgresql/postgresql-*.log# 应包含:"huge pages not supported by system" 或 "using huge pages"

启动后验证

 BASH

# 1. 检查大页消耗grep -E "HugePages_(Total|Free)" /proc/meminfo# HugePages_Free 应小于 HugePages_Total,差值即为 PostgreSQL 占用数# 2. 检查 PostgreSQL 进程内存映射pmap -x $(pgrep -f "postgres:.*master") | grep "huge"# 输出应含 "2048K" 字样及 "rw" 权限# 3. 查询 PostgreSQL 内部状态SELECT name, setting FROM pg_settings WHERE name = 'huge_pages';

性能影响量化与可观测性指标

启用 huge_pages 后,核心可观测性指标变化如下:

指标
4 KB 页面
2 MB huge_pages
变化
%sys
 CPU(top)
18.2%
9.7%
↓ 47%
P99 延迟(pgbench -c 200)
124 ms
78 ms
↓ 37%
shared_buffers
 命中率
92.1%
93.8%
↑ 1.7%(间接提升)
PostgreSQL 启动时间
8.4 s
3.1 s
↓ 63%(32 GB 配置)

关键结论:huge_pages 不提升单次查询的绝对速度,而是显著降低系统态开销与延迟抖动,使数据库在高负载下保持可预测的响应能力。其收益随 shared_buffers 增大而边际递增,当 shared_buffers ≥ 8 GB 时,投入产出比已具备工程实施价值。

云环境与容器化部署的特殊考量

在 AWS EC2(如 r6i.32xlarge)、Azure VM(E64ds_v5)等云实例上,huge_pages 支持需满足:

实例类型支持大页(x86-64 架构均支持);

操作系统镜像已禁用 THP;

GRUB 配置中预分配大页(hugepagesz=2M hugepages=N)。

Kubernetes 部署规范

 YAML

# pod.yamlapiVersion: v1kind: Podmetadata:  name: postgresqlspec:  containers:  - name: postgres    image: postgres:15    resources:      requests:        hugepages-2Mi: "34Gi"  # 34 GiB = 17,408 × 2 MiB      limits:        hugepages-2Mi: "34Gi"    securityContext:      capabilities:        add: ["IPC_LOCK"]

强制前提:Kubernetes 节点必须预先配置 huge_pages(通过 vm.nr_hugepages),且 kubelet 启动参数包含 --feature-gates=HugePages=true。未满足时,Pod 将处于 Pending 状态,事件中提示 "Insufficient hugepages-2Mi"

小结

huge_pages 是 Linux 内存子系统与 PostgreSQL 共享内存模型深度协同的技术方案,其价值不在于玄学加速,而在于消除由内存页粒度过细引发的确定性系统开销。实施流程需严格遵循:

1.永久禁用 THP(GRUB 参数 transparent_hugepage=never);

2.按实际内存需求计算 huge_pages 数量(含 10–15% 余量);

3.启动时预分配(避免运行时碎片导致分配失败);

4.配置 memlock 限制与 CAP_IPC_LOCK 能力

5.PostgreSQL 中启用 huge_pages = on 并验证消耗

对于 shared_buffers ≥ 8 GB 的生产集群,此项配置已成为基础设施标准化的必备环节。它不改变数据库逻辑,却让每一次内存访问都更接近硬件本质——这正是系统工程追求的终极效率。

— 长按关注,获取更多科技资讯 —

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 10:56:29 HTTP/2.0 GET : https://f.mffb.com.cn/a/495628.html
  2. 运行时间 : 0.102969s [ 吞吐率:9.71req/s ] 内存消耗:4,939.63kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=8c81fc32bde48e112fd165c00a629fb8
  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.000651s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000958s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000352s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000308s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000504s ]
  6. SELECT * FROM `set` [ RunTime:0.000205s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000541s ]
  8. SELECT * FROM `article` WHERE `id` = 495628 LIMIT 1 [ RunTime:0.001394s ]
  9. UPDATE `article` SET `lasttime` = 1783047389 WHERE `id` = 495628 [ RunTime:0.009764s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.000261s ]
  11. SELECT * FROM `article` WHERE `id` < 495628 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000443s ]
  12. SELECT * FROM `article` WHERE `id` > 495628 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000466s ]
  13. SELECT * FROM `article` WHERE `id` < 495628 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001100s ]
  14. SELECT * FROM `article` WHERE `id` < 495628 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001743s ]
  15. SELECT * FROM `article` WHERE `id` < 495628 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.014382s ]
0.104590s