Misc. bug: Webui causing high CPU load in Firefox

该问题出现在使用 llama.cpp 的 llama-server 运行推理速度约 100 T/s 的 reasoning 模型时,前端 Firefox 打开 WebUI 并生成较长的 reasoning 输出,导致客户端 Firefox 占用 100% 单核 CPU。优先排查方向是 WebUI 前

快速结论:该问题出现在使用 llama.cpp 的 llama-server 运行推理速度约 100 T/s 的 reasoning 模型时,前端 Firefox 打开 WebUI 并生成较长的 reasoning 输出,导致客户端 Firefox 占用 100% 单核 CPU。优先排查方向是 WebUI 前端 DOM 更新与渲染方式,而非服务端推理本身。

适用环境:Issue 中确认的信息为:llama.cpp 版本 10027(commit a58222229),操作系统为 Linux,客户端浏览器为 Firefox,通过 llama-server 启动(命令行参数与问题无关)。Python、CUDA、PyTorch、显卡、依赖版本等信息 Issue 未提供,需自行确认。

最快修复方案:Issue 评论指出该问题已由 #26097、#26083、#26098 修复。可按对应 PR 的改动更新到包含这些修复的 llama.cpp WebUI 版本;若无法确认版本对应关系,建议直接升级到已合并上述 PR 的版本。

注意事项:Issue 本体为 bug-unconfirmed 且被标记为 stale 后关闭,没有由报告者给出复现验证或回归测试结论;评论区仅说明由 #26097、#26083、#26098 修复,未提供详细验证步骤。因此上述修复方案视为 Issue 中给出的结论,但不保证在任意旧版本或自定义构建中同样生效。

问题场景

用户在 Linux 上通过 llama.cpp 的 llama-server 启动服务,使用约 100 T/s 的 reasoning 模型,并通过 Firefox 访问 WebUI。当提问触发较长的 reasoning 输出时,客户端 Firefox 会占用 100% 的一个 CPU 核心。该现象在 reasoning 折叠与展开两种状态下都会出现。报告者尚未验证生成最终回答时是否同样触发,但指出最终回答通常生成时间远短于 reasoning 过程。

报错原文

Misc. bug: Webui causing high CPU load in Firefox

Issue 未提供日志输出(Relevant log output: N/A),也未提供首个错误提交(First Bad Commit: N/A)。

原因分析

报告者推测,问题可能与 WebUI 前端低效的 DOM 操作有关:推理过程中内容持续追加更新,若每次更新触发的 DOM 操作或重渲染代价过高,会让浏览器主线程长期处于高负载状态,从而出现单核 CPU 100% 的现象。该判断为报告者推测,Issue 中并未通过性能剖析或火焰图给出确证。

可参考的修复线索来自评论:该问题由 #26097、#26083、#26098 处理,说明上游最终定位到 WebUI 前端相关问题。由于 Issue 未展开说明每个 PR 的具体改动点,本文不进一步推断具体是哪一类 DOM 操作导致。

环境排查

  • 确认 llama.cpp 版本是否为 10027(a58222229)或包含后续修复的版本。
  • 确认是否通过 llama-server 启动,并访问其内置 WebUI。
  • 确认客户端浏览器为 Firefox,并观察问题是否只在 Firefox 出现。
  • 确认使用的模型为 reasoning 模型,且推理速度接近 100 T/s,能稳定产生较长 reasoning 输出。
  • 确认操作系统为 Linux;Issue 未提供更多系统细节。
  • Issue 未提供 Python、CUDA、PyTorch、显卡等版本信息,如需排查可按实际情况记录,但不属于本 Issue 已确认的触发条件。

解决步骤

  1. 记录当前 llama.cpp 版本号与 commit,确认是否仍为 10027(a58222229)。
  2. 查阅 #26097、#26083、#26098 三个 PR 的合并情况,确认当前使用的版本是否已包含这些改动。
  3. 若未包含,更新到已合并上述 PR 的 llama.cpp 版本,并重新构建包含 WebUI 的相关部分。
  4. 重新通过 llama-server 启动服务,使用相同 reasoning 模型与相近的提问方式复现原场景。
  5. 若更新后问题依旧,可优先尝试在 Firefox 中打开开发者工具的 Performance 面板录制生成 reasoning 输出时的性能数据,确认高负载是否仍来自 WebUI 渲染。

验证方法

在更新后的版本中,使用 Firefox 访问 WebUI,重复触发长 reasoning 输出的提问,观察生成过程中 Firefox 的 CPU 占用是否不再长期打满单个核心。可同时用浏览器任务管理器或系统监控确认 CPU 占用,并在 Firefox Performance 面板中对比更新前后生成过程中的主线程负载。

参考来源

ggml-org/llama.cpp #25724

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 23474

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注