采集 NPS 与 NPC 性能分析数据
安全开启 pprof,通过 CPU、内存和协程数据诊断 NPS 或 NPC 性能问题
pprof 提供 CPU、堆内存、协程、锁等运行时数据,适合诊断 NPS/NPC CPU 异常、内存增长或协程阻塞。它默认关闭,接口没有登录认证,不能直接暴露到公网。
NPS 服务端
在 nps.conf 中只监听回环地址,然后重启 NPS:
pprof_ip=127.0.0.1
pprof_port=9999
两项必须同时有效;注释或留空即关闭。
NPC 客户端
命令行模式:
./npc -server=nps.example.com:8024 -vkey=客户端验证密钥 -pprof=127.0.0.1:9999
配置文件模式在 [common] 中设置:
[common]
pprof_addr=127.0.0.1:9999
采集数据
在同一台主机执行:
# 采集 30 秒 CPU profile,并进入交互分析
go tool pprof 'http://127.0.0.1:9999/debug/pprof/profile?seconds=30'
# 查看堆内存
go tool pprof http://127.0.0.1:9999/debug/pprof/heap
# 保存全部协程堆栈
curl -o goroutine.txt 'http://127.0.0.1:9999/debug/pprof/goroutine?debug=2'
远程分析应使用 SSH 端口转发,不要把监听改成公网地址:
ssh -L 9999:127.0.0.1:9999 user@nps.example.com
CPU profile 会增加少量运行开销,应限定采集时间。文件可能包含函数名、路径和运行状态,提交 Issue 前检查并清理敏感信息。采集完成后如不再使用,删除配置并重启对应进程。