From 51fdf40dbbb20a2c2531e645aadaaa93291b4d52 Mon Sep 17 00:00:00 2001 From: panxiao81 Date: Sun, 27 Sep 2026 03:23:01 +0000 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BD=95=20laptop=20ARC=204=20GiB=20?= =?UTF-8?q?=E9=A2=84=E7=AE=97=E4=B8=8E=E7=8E=B0=E5=9C=BA=E9=AA=8C=E8=AF=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guides/laptop-arc-budget.md | 46 +++++++++++++++++++++++++++++++++++++ services/grafana.md | 2 ++ verification.md | 7 ++++++ 3 files changed, 55 insertions(+) create mode 100644 guides/laptop-arc-budget.md diff --git a/guides/laptop-arc-budget.md b/guides/laptop-arc-budget.md new file mode 100644 index 0000000..0dbef93 --- /dev/null +++ b/guides/laptop-arc-budget.md @@ -0,0 +1,46 @@ +--- +title: laptop ARC 内存预算 +last_reviewed: 2026-09-27 +--- + +# laptop ARC 内存预算 + +laptop 同时运行 Kubernetes、数据库和 libvirt VM。维护者于 2026-09-27 明确批准 +先将 ZFS ARC 上限设为 **4 GiB**,为应用和虚拟机保留突发余量。保留自动 ARC 下限。 + +## 当前配置与验证 + +2026-09-27 已在线应用 `zfs_arc_max=4294967296`,持久文件为 +`/etc/modprobe.d/homelab-zfs-arc.conf`,并更新所有已安装内核的 initramfs。 +没有重启主机、卸载 ZFS 或重启业务。现场 `arcstats` 的 `c`、`c_max` 均为 +4294967296,`c_min` 保持 1038999680;随后 ARC 实际使用量约 3.75 GiB, +内存 PSI 的 10/60/300 秒窗口均为 0。这个即时结果不等于已经验证下一次更新负载。 + +配置源码和回滚操作见 +[PR #165](https://git.ddupan.top/panxiao81/homelab-infra/pulls/165) 的 +[Ansible play](https://git.ddupan.top/panxiao81/homelab-infra/src/commit/209ad5b/infrastructure/host-memory/laptop-arc.yml) 与 +[操作说明](https://git.ddupan.top/panxiao81/homelab-infra/src/commit/209ad5b/infrastructure/host-memory/README.md)。 +现场已部署,PR 尚待合并授权;不能将分支配置当作 main 已纳管。 + +## 为什么设置预算 + +2026-09-26 17:13–17:21 UTC,Gitea RunnerService 请求超过内网 Envoy 的 15 秒超时。 +集中日志确认其中一次 Declare 请求在 Gitea 内耗时约 45.5 秒。 +同期宿主机发生内存回收、换页与 I/O 压力,ARC 从约 3.8 GiB 增至 5.8 GiB, +当时自动上限约 15.5 GiB。数据库、DNS 与控制面都有延迟迹象。 + +进程指标 `vm:winadmin` 写入由约 0.04 MiB/s 升至约 5.8–7.5 MiB/s, +与虚拟磁盘 `zd128` 对应。Windows 任务日志确认 Edge 自动更新在 +17:10:59 开始、17:20:55 结束,期间有安装/AppX 活动。多层证据支持它是重要触发负载, +但没有 Windows 进程级 I/O 历史,不能宣称已证明唯一原因。 + +排查优先使用已有 process-exporter:QEMU 按 VM 名分组,支持 PSS、SwapPss 和 I/O。 +进程 I/O 计数可能包含退出子进程的记账,containerd-shim 突跳不能直接解释为实时盘吞吐。 +宿主机物理盘、zvol、进程指标需相互验证,不能相加。 + +## 后续观察 + +从 [Grafana](../services/grafana.md) 的 Homelab 内存与 Swap 面板查看 ARC、PSI 与换页, +对照 winadmin 下次自动更新及数据库延迟。必要时再调整缓存预算或 VM I/O 策略。 +当前未改变 runner fail-fast、Windows 自动更新、swap 或 VM I/O 上限。 +ARC 上限不是 ZFS 全部内存的硬上限;已有 swap 占用不会因为降低 ARC 自动清零。 diff --git a/services/grafana.md b/services/grafana.md index 4e602bc..800fa2b 100644 --- a/services/grafana.md +++ b/services/grafana.md @@ -169,3 +169,5 @@ Grafana API 已确认 provisioned 数据源,并通过其代理成功读取 `/a 旧 Compose 栈与数据已[清理](victoriametrics-legacy.md),不要再使用旧实例作为排障入口。 来源文件的固定版本与工作区差异见[来源追溯](../sources.md#grafana)。 + +宿主机 ARC 的 4 GiB 预算、应用方式及验证边界见[ARC 内存预算](../guides/laptop-arc-budget.md)。 diff --git a/verification.md b/verification.md index 2da44c8..8100a83 100644 --- a/verification.md +++ b/verification.md @@ -155,3 +155,10 @@ Bao client/TLS 与认证不再归 Database;Secret 凭据适配器注入 manage Ayatori 按维护者决定继续使用独立控制面,本轮只准备接入材料,尚未验收 controller/Instance Ready。 两仓事实已同步,源码文档已直接推送 main:[文档 acd4b55](https://git.ddupan.top/panxiao81/homelab-infra/commit/acd4b55);IaC 固定版本为 [3a2fe5f](https://git.ddupan.top/panxiao81/homelab-infra/commit/3a2fe5f)。 + +## laptop ARC 预算(2026-09-27) + +维护者授权的 4 GiB 上限已在线应用并持久化,Ansible 复查零变更。 +源码 [PR #165](https://git.ddupan.top/panxiao81/homelab-infra/pulls/165) 尚待合并授权, +因此现场配置已完成、main 纳管未完成。配置及验证范围见 +[ARC 内存预算](guides/laptop-arc-budget.md)。合并后更新本项,不重复应用或重启主机。