我使用这样的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
或您喜欢的语言编写类似的脚本。