Commit Graph
8 Commits
Author SHA1 Message Date
RRRosmontis 434869573f feat: 日常任务启动前增加画面预检
每天的首次云会话可能停在不可识别画面约 10 分钟(游戏做每日首登资源处理),MAA 在
每个任务上识别失败并烧掉当次尝试的额度(2026-09-23/09-24 连续两天实测,各损失整天
或近半天进度)。包装脚本现在在 /start 后、运行 MAA 前先观察画面:按截图体积分类
(黑屏 <20KB / 登录 200-350KB / 标题 ~480KB / 公告与主界面 >=650KB),对标题屏与
登录屏自动点按推进,出现可识别画面才交给 MAA;超时(默认 13 分钟)则放弃本轮、
释放会话并重试。分类阈值标定于真实截图样本,可调。
2026-09-24 09:45:59 +08:00
RRRosmontis ec917a4c9d docs: 说明如何避免系统更新打断日常任务
主机上的 unattended-upgrades 在 06:20-06:50 运行,needrestart 会重启仍映射旧库的服务,
可能与 04:00-06:35 的日常任务窗口重叠并打断当次执行(实测 2026-09-22 libexpat1 升级
导致 API 服务在 06:20:58 被外部重启)。补充 needrestart 排除配置的写法与检查方式。
2026-09-22 11:29:56 +08:00
RRRosmontis 55f8eb91c9 docs: 补充内存行为与可选的分配器调优
- README: 修正内存观测说明(字段已扩展为 cgroup 构成 + RSS 拆分),补充实测结论:
  MALLOC_ARENA_MAX=2 把 mmap arena 从 33 个降到 1 个,但增长转入 brk 堆 [heap],
  会话中 RSS 仍可达约 2.4 GB;会话期间服务 swap 占用为 0,回收机制仍是主要依靠
- README: 把 MALLOC_MMAP_THRESHOLD_ / MALLOC_TRIM_THRESHOLD_ 记为可选且默认不启用,
  说明原因是该负载下服务 CPU 占用高(35 分钟会话约 14 分钟 CPU),强制 mmap 会引入
  syscall/缺页/TLB 开销,可能拖长任务时长;附基线对比与回滚步骤
2026-09-21 08:16:47 +08:00
RRRosmontis 636ecbd974 feat: 增加内存观测日志
- bin/maa-online-memlog: 每分钟采集一次服务 cgroup 匿名内存、swap 占用、进程 RSS、
  以及大于 32 MB 的匿名映射数量(glibc arena 膨胀指纹),追加写入 logs/memlog.csv,
  超过 5 MB 自动滚动并保留一代;同时输出一行到 journald
- systemd/maa-online-memlog.service, maa-online-memlog.timer: 每分钟触发采集,
  Nice=10 避免影响流媒体负载
- bin/maa-online-install-systemd: 安装并启用观测定时器,安装提示补充内存日志路径
- README.md, user_config/README.md: 补充内存观测说明、字段表与查看命令
- .gitignore: 忽略运行期产生的 logs/
2026-09-20 13:07:19 +08:00
RRRosmontis 7806524279 feat: 增加每日内存回收与 malloc arena 限制
流媒体会话会在 glibc malloc arena 中留下大量不归还操作系统的冷匿名内存,实测单个
服务可累积到 2.5 GB 并占满整个 swap 文件(33 个 64/128 MB 匿名段,空闲时不增长,
随会话单调抬升)。本次从根因与兜底两侧处理:

- systemd/maa-online-server.service: 设置 MALLOC_ARENA_MAX=2,把线程 arena 数量
  从 8xCPU 压到 2,抑制 arena 膨胀
- systemd/maa-daily.service: 单元结束时经 ExecStopPost 重启 API 服务,回收当次会话残留
- systemd/maa-online-recycle.service, maa-online-recycle.timer: 新增每日 03:59(游戏
  每日刷新前)独立回收定时器,错开更新与日常任务窗口,Persistent=false 避免补跑撞车
- bin/maa-online-can-recycle: 回收守卫,检测日常任务(systemd 单元或手工运行)是否
  进行中,是则跳过回收,避免重启打断任务
- bin/maa-online-install-systemd: 安装并启用新增的回收单元
- README.md, user_config/README.md: 补充内存回收机制与定时器说明
2026-09-19 23:58:54 +08:00
RRRosmontis 0264053b08 feat: 增加 systemd 定时执行与断点续跑
- backend/server.py: 信令 WebSocket 被远端关闭或视频流停滞超过阈值时自动拆除会话,
  由 finally 释放网易云端实例,避免会话空挂、后续 /start 一直拿到 503
- bin/maa-online-daily-run: 新增日常任务包装脚本,等待 API 就绪、启动云游戏、
  停滞看门狗(连续 ScreencapFailed 或 Disconnected)、失败即释放云会话并最多重试 3 次
- bin/maa-resume-tasks.py: 新增断点续跑规划器,重试时只运行未出现 Completed 的任务,
  全部完成则直接判定成功,不再开启新会话;StartUp 永不跳过
- systemd/: 新增 server/daily/update 服务与定时器模板,每天 04:00 起随机 0-2 小时执行
- bin/maa-online-install-systemd: 渲染 __ROOT__ 并安装、启用上述单元
- README.md, user_config/README.md: 补充自动定时执行、断点续跑与已知限制说明
- .gitignore: 忽略生成的 config/tasks/daily-resume.toml
2026-09-19 16:45:48 +08:00
RoyirinRosmontis 73250c91b6 更新 README.md 2026-09-16 12:08:27 +08:00
RRRosmontis de064272ec feat: publish sanitized Linux cloud-game MAA adapter 2026-09-16 11:11:35 +08:00