AGENTS.md 3.09 KB
Newer Older
zk's avatar
zk committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# 项目记忆

这个文件记录后续维护本项目时需要优先参考的约定和关键信息。每次开始处理需求时,先读这里,再结合当前代码和用户最新要求行动。

## 工作习惯

- 每次功能更新、修复或部署相关变更,都要同步更新 `CHANGELOG.md`
- `CHANGELOG.md` 使用中文记录,按日期分组,说明用户能感知到的变化和关键部署/兼容性信息。
- 用户要求“用 git 保存每步修改”,因此代码或文档变更完成后应及时提交;需要同步远端时推送到 GitHub 和 GitLab。
- 不要提交本地真实服务器配置、日志、打包文件等运行数据。
- 修改前先确认工作区状态,避免覆盖用户在本地新增的服务器或代码改动。

## 仓库和远端

- 本地工作区:`C:\Users\zhengke\Documents\桌面端服务器占用监控`
- GitHub:`https://github.com/mantuoluozk/gpu-dcu-monitor.git`
- GitLab:`https://developer.sourcefind.cn/codes/zhengke/gpu-dcu-monitor`
- 主分支:`main`

## 本地服务

- 默认访问地址:`http://localhost:3066`
- 默认端口:`3066`
- 启动入口:`server.js`
- 启动命令:`node server.js`
- 后台采集默认间隔:`POLL_INTERVAL_MS=10000`
- 默认 SSH/采集超时:`SSH_TIMEOUT_MS=20000`

## 云端部署

- 公共部署服务器:`10.8.145.247`
- 登录用户:`root`
- 服务访问地址:`http://10.8.145.247:3066`
- 部署目录:`/opt/gpu-dcu-monitor`
- systemd 服务名:`gpu-dcu-monitor.service`
- 常用命令:
  - 查看状态:`systemctl status gpu-dcu-monitor`
  - 重启服务:`systemctl restart gpu-dcu-monitor`
  - 查看日志:`journalctl -u gpu-dcu-monitor -f`
- 云端 Node.js 版本较旧,已知是 Node 12 系列;代码要保持 Node 12 兼容,避免使用过新的语法或 API。
- 部署代码时不要覆盖云端 `/opt/gpu-dcu-monitor/data/servers.json`,该文件保存公共服务上的真实服务器列表。
- 更新云端前建议先备份云端 `data/servers.json`

## 服务器配置和采集

- 服务器列表文件:`data/servers.json`,本地真实配置被 `.gitignore` 忽略。
- 示例配置文件:`data/servers.sample.json`
- 添加服务器前,需要让当前运行服务的机器可以免密 SSH 到被监控机器。
- SSH 用户默认是 `root`
- 支持采集命令:
  - 海光 DCU:`hy-smi`
  - NVIDIA GPU:`nvidia-smi`
- DCU/GPU 数量由后端采集结果自动识别,不需要用户手动选择。
- 型号信息在添加、编辑或手动刷新时采集;普通定时刷新只采集占用状态,避免额外开销。
- `hy-smi` 已加入登录 Shell 兜底:当非交互 SSH 找不到 `hy-smi` 时,会尝试通过 `bash -ilc` 加载环境后再采集。

## 已知机器和注意事项

- `10.17.26.107`:本地和云端都已验证可采集,属于 `hy-smi` 需要登录 Shell 环境兜底的情况。
- NVIDIA 机器的 `nvidia-smi` 偶尔响应较慢,默认超时时间已调到 20 秒。
- 多人访问公共服务时,共享同一份云端服务器列表;如果后续多人同时编辑冲突变多,需要再加编辑锁、操作审计或账号权限。