You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何PostgreSQL的JIT会导致Linux服务器性能大幅下降?

PostgreSQL跨平台JIT性能差异解析请求

背景

开发环境为Windows系统上的PostgreSQL 14.4,生产环境为Ubuntu Linux系统上的PostgreSQL 14.5。已将开发库完整导入生产库,数据完全一致,但部分查询在Ubuntu上的执行速度比Windows慢100倍,硬件差异无法解释该差距。

关键查询

SELECT a.field1,
...
a.field_n,
CASE (EXISTS ( 
SELECT b."waterBodyCode"
  FROM "GAP_ecologico_SWB_1" b
  WHERE a.field1 = b.field1_b AND ...))
  WHEN true 
    THEN 'Yes'
        ELSE 'No'
  END AS "attributableQE"
FROM "SWB_ecological_quality_elements" a
ORDER BY a.field1, ...;  

注:SWB_ecological_quality_elements和waterBodyCode均为视图。怀疑Windows端内部查询使用了索引或缓存,而Ubuntu端执行全表扫描。两台服务器的postgresql.conf配置高度相似,除已排查项外,还可检查哪些内容?

排查更新1

按PgTune建议调整内存配置后,性能无改善。执行带Analyze的查询,计时结果异常:

"  Functions: 1499"
"  Options: Inlining true, Optimization true, Expressions true,         Deforming true"
"  Timing: Generation 101.424 ms, Inlining 103.476 ms, Optimization 10402.780 ms, Emission 6866.288 ms, Total 17473.968 ms"
"Execution Time: 18005.457 ms"

排查更新2

将jit设置为false后,Linux端查询性能大幅提升。目前对JIT理解有限,无法解释为何它在PostgreSQL 14.4(Windows)和14.5(Linux)上的表现差异如此之大,已有同类异常案例被报道。

请求解释

请说明该现象的根本原因?


内容的提问来源于stack exchange,提问作者Filippo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 20:01:22