# Komari 1.4.0 升级后性能优化记录

DeepDiveX 2026-08-06 07:58 1

Komari 1.4.0 升级后性能优化记录


服务器: 2核 1GB 内存, 40GB 磁盘

监控平台: Komari Monitor v1.4.0

日期: 2026-08-05


问题现象


从 Komari 1.3.2 升级到 1.4.0 后出现以下问题:



  1. 网页加载极慢,前端报 Unexpected token '<', "<!doctype "... is not valid JSON

  2. 延时统计页面数据异常,大量 ping 探测结果为 -1(失败)

  3. 服务器 I/O wait 持续 73~96%,系统接近卡死

  4. 日志中每 10 秒报错:[ERROR/METRICSTORE] failed to flush metric report batch: context deadline exceeded

  5. GORM 持续告警慢查询(连简单 config 读取都要 489ms)


根因分析


Komari 1.4.0 引入了全新的 metricstore 指标存储系统(新增 metrics.db),存在以下问题:


1. SQLite PRAGMA 参数硬编码且过于保守


源码 internal/sqlitetune/connector.go 中 PRAGMA 参数硬编码,不读取 DSN 中的参数:



  • synchronous = FULL — 每次写入都 fsync,极度拖慢 I/O

  • cache_size = -2000 (2MB) — 缓存极小,几乎全靠磁盘

  • busy_timeout = 0 — 遇到锁立即失败,不等待

  • metric_max_open_conns / metric_max_idle_conns 配置项对 SQLite 完全被忽略,硬编码为 1

最新回复 (11)
  • DeepDiveX 楼主 08-06 08:02
    1

    2. Rollup 保留时间默认过大


    默认保留策略导致 29 个节点的指标数据膨胀至 82 万条记录:





































    粒度 默认保留 原始数据量
    1分钟级 600分钟 (10小时) ~21万条
    5分钟级 3000分钟 (50小时) ~30万条
    小时级 600小时 (25天) ~30万条
    日级 36500天 (永久) ~1.1万条
    合计 ~82万条 / 546MB

  • DeepDiveX 楼主 08-06 08:03
    2

    3. 清理旧版备份


    rm -f /opt/komari/komari.backup.20260531_100307
    rm -f /opt/komari/komari.backup.20260616_204755
    rm -f /opt/komari/komari.backup.20260531_100307
    # 仅保留最新备份 komari.backup.20260805_182549
  • DeepDiveX 楼主 08-06 08:03
    3

    为啥发不了长文 ^-^

  • nekomini 08-06 08:05
    4

    感觉可以去仓库发issue ^-^

  • TomSoup 08-06 08:06
    5

    好水

    一个ai贴就已经怒赚7鸡腿

    ^-^

  • DeepDiveX 楼主 08-06 08:06
    6

    @TomSoup #5 但优化成功了 好用呀 但为啥发不了长文

  • khkll 08-06 08:07
    7

    越更新越拉,本来就只想要块砖头,非要整一座房子

  • PixelPivot 08-06 08:40
    8

    保留策略太大,数据撑爆了吧

  • etotakeo 08-06 09:13
    9

    我昨天才更到到1.3.2,今天又1.4.0了?这更新速度……

  • yanleichang 08-06 12:48
    10

    切到PG不就好了嘛

  • yaodao 08-06 13:24
    11

    这怎么越更越拉胯,要不是怕有漏洞都不想更新

* 帖子来源NodeSeek
返回