6.1 KiB
6.1 KiB
CKBNAS 卡顿原因逐项说明(2026-06-06)
设备:DS1825+ ·
192.168.110.101(家里 ovs_eth0)
现象:开机后几分钟内 ping/端口通 → DSM 白屏或 HTTP 000/超时 → SSH banner 超时 → 最后 ping 也不通。
已排除(不是本轮主因)
| 项 | 结论 |
|---|---|
| AI 自动改 IP / 网络守护 | 已于 05:36 全部 .disabled,crontab 无 route-only/watchdog |
| DHCP 抢路由 | 当前静态 110.101,无 dhclient |
| 双网卡断线 | 路由正确时 default via 110.1 dev ovs_eth0 |
卡顿原因(按杀伤力排序)
① btrfs scrub(主因 · 已实锤)
- 是什么:BTRFS 全盘校验,持续读盘,占满磁盘 IO。
- 证据:05:46:34 重启后 26 秒 即自动开始 scrub;取消后本机
local_dsm=200,耗时 0.18s(之前 8s 超时 / HTTP 000)。 - 表现:load 8~25+,IO wait 高;nginx/synoscgi 排队 → 浏览器白屏;sshd 来不及交换 banner →「端口 22 开但 SSH 超时」。
- 计划 scrub 其实已关:
datascrubbing.conf里scheduleenabled=0、scrubbingscheduled=0。 - 真正触发:异常关机(卡顿后硬重启/断电)→ DSM 发
StgMgrScrubbingAbnormalShutdownNotify→ 下次开机自动续扫(与计划无关)。 - 你要做(最重要):
- 尽量避免硬重启;卡顿时等 5~10 分钟或让 Mac
ckbnas_gentle_watch.sh自动降载。 - 降载脚本会
scrub cancel+ 把datascrubbing.status里scrubbingstatus清为 0。 - DSM → 存储管理器 → 确认计划 Scrub 保持关闭;需要体检时再手动跑。
- 尽量避免硬重启;卡顿时等 5~10 分钟或让 Mac
# SSH 能进时应急
sudo btrfs scrub cancel /volume1
② 开机 IO 风暴(scrub + 套件 + Docker 叠加)— 容器是第二大杀手
- 重启后 2 分钟内 load 曾到 8~16+(IO 占大头)。
- Container Manager 默认
restart: unless-stopped→ 20+ compose 同时docker start,与 scrub 抢同一块盘。 - 实测端口:Qdrant/工作手机 SDK 已起,Mongo
:27017、Gitea:3000关 → 部分栈半启动、反复重试更耗 IO。 - 进程里常见:
kworker … btrfs、dockerd、各容器 entrypoint。 - 表现:先用一会儿还行,几分钟后 IO 打满 → DSM 白屏、SSH banner 超时。
- 已落地(2026-06-06):
ckbnas_docker_reduce_io.sh:全容器restart=no+ 停止 + 关 Container Manager 自启ckbnas_docker_staged_boot.sh:tier1→5 分批(mongodb → qdrant → workphone → gitea → frpc),每档间隔 90s~15mininstall_ckbnas_docker_staged_cron.sh:@reboot 注册,禁止一次性全启- Mac 部署:
bash 群晖NAS管理/scripts/deploy_ckbnas_docker_staged_mac.sh
- 手动按需(不自动启):Ollama、官网、Soul、VM、玩值电竞等 → DSM Container Manager 单个开。
③ 定时任务叠加(每 2/5 分钟)
当前 /etc/crontab 仍活跃(非 AI 网络脚本):
| 频率 | 任务 |
|---|---|
*/5 |
git_sync、SynologyDrive 同步、ollama ensure |
| 多条 | synoschedtask(备份/清理等,凌晨为主) |
*/2 |
- 表现:开机本就高负载时,cron 再点火 → 雪上加霜。
- 你要做:稳定后评估
*/5三条是否可改为*/30或仅手动。
④ 重套件后台任务
降载脚本已临时停止:CloudSync、SynologyPhotos、SynoFinder、SynologyDrive、Moments、ActiveBackup 等。
- 表现:索引、缩略图、同步与 scrub 抢同一块盘。
- 你要做:不用时保持停止;要用时再开单个套件。
⑤ SSH banner 超时 / ping 后期不通(症状链,不是独立根因)
| 阶段 | 含义 |
|---|---|
| ping 通、22/5000 开、HTTP 000 | 网卡活着,CPU/IO 忙,应用层无响应 |
SSH banner exchange timeout |
sshd 进程在,握手队列排不上 |
| ping 也不通 | 系统进入 过载僵死 或正在 再次重启/内核卡死 |
- 不要:Mac 侧高频 SSH 轮询(会加重负载)。已改为 3 分钟一次 轻量巡检
ckbnas_gentle_watch.sh。
本轮已自动处理
- 05:47 上传并执行
ckbnas_diagnose_and_degrade.sh:取消 scrub、停重套件、注释*/2frpc/gateway、重启 nginx → DSM 200 / 0.16s。 - Mac 启动
ckbnas_gentle_watch.sh(pid 见日志~/Library/Logs/ckbnas_gentle_watch.log):ping 通且 DSM≠200 时 SSH 一次 降载。 - 计划注册
@reboot sleep 90自动降载(SSH 窗口关闭前未完成写入,待下次连通补注册)。
你现在可以怎么做
A. 完全连不上(当前 ping 100% 丢包)
- 等 5~10 分钟 看是否自行恢复(上次 scrub 取消后约 1 分钟曾恢复)。
- 仍不通:前面板长按电源 4 秒 软关机 → 再按一次开机。
- 开机后 90 秒内不要开浏览器刷 DSM;等 Mac 巡检或你 SSH 跑降载。
- 能进 DSM 后 立刻关计划 scrub(见 ①)。
B. ping 通但 DSM 白屏
# Mac 一次应急(勿循环狂刷)
sshpass -p 'zhiqun1984' ssh fnvtk@192.168.110.101 \
'echo Zhiqun1984 | sudo -S sh /volume1/homes/fnvtk/scripts/karuo-network-watchdog/ckbnas_diagnose_and_degrade.sh'
curl -m8 -w "dsm=%{http_code} t=%{time_total}s\n" -o /dev/null http://192.168.110.101:5000/
C. 稳定后(P1)
- Time Machine:
tm_netbackup_cred_sync.sh后重挂smb://fnvtk@192.168.110.101/NetBackup - 外网:
open.quwanzhi.com:5200(frp)仅作备用,本机卡时隧道也慢
日志位置
| 路径 | 内容 |
|---|---|
NAS …/logs/diagnose_degrade.log |
每次降载前后 load、scrub、DSM 本机 curl |
Mac ~/Library/Logs/ckbnas_gentle_watch.log |
3 分钟巡检 ping/dsm 与 SSH 结果 |
一句话结论
不是网络脚本复发,是重启后 btrfs scrub + 开机重任务把 IO 打满;取消 scrub 后 DSM 秒开,但 DSM 里计划 scrub 未关则会再次复发。请先关计划 scrub,再观察是否还会「用几分钟就全挂」。