放手工具pprof定期收集新数据



我使用这样的go方法:

go tool pprof -no_browser -http=0.0.0.0:8081 http://localhost:6060/debug/pprof/profile?seconds=60

如何要求pprof定期获取分析数据?

这里有一个python脚本,它使用wget每小时获取一次数据,将输出放入一个文件中,该文件的名称包括时间戳。

每个文件都可以通过运行进行检查

go tool pprof pprof_data_YYYY_MM_DD_HH

这是脚本:

import subprocess
import time
from datetime import datetime
while True:
now = datetime.now()
sleepTime = 3601 - (60 * now.minute + now.second + 1e-6 * now.microsecond)
time.sleep(sleepTime)
now = datetime.now()
tag = f"{now.year}-{now.month:02d}-{now.day:02d}_{now.hour:02d}"
subprocess.run(["wget", "-O", f"pprof_data_{tag}", "-nv", "-o", "/dev/null", "http://localhost:6060/debug/pprof/profile?seconds=60"])

3601使wget在小时结束后约1秒运行,以避免time.Sleep刚好在小时结束前返回的竞赛条件。

很明显,您可以用bash或您喜欢的语言编写类似的脚本。

最新更新