我有一个程序在有内存泄漏的远程无头机器(即没有 X 服务器)上运行。我能够安装 gperftools 并运行发现泄漏的堆检查器。
我的问题是我无法在远程机器上安装 pprof,因为需要所有图形库,所以我将生成的 .heap 文件复制到另一台安装了 pprof 的机器上。这台机器也有与 rmote 机器相同的库。
我尝试运行堆检查器建议的 pprof 命令,但使用 --text 而不是 --gv
$ pprof <my_bin> <heap_file> --inuse_objects --lines --heapcheck --text
但它抱怨 curl 命令失败
Using local file <my_bin>.
Use of uninitialized value $host in substitution (s///) at
/usr/bin/pprof line 3195. Use of uninitialized value $hostport in
concatenation (.) or string at /usr/bin/pprof line 3197. Use of
uninitialized value $prefix in concatenation (.) or string at
/usr/bin/pprof line 3197. Use of uninitialized value $host in
substitution (s///) at /usr/bin/pprof line 3195. Use of uninitialized
value $hostport in concatenation (.) or string at /usr/bin/pprof line
3197. Use of uninitialized value $prefix in concatenation (.) or string at /usr/bin/pprof line 3197. Use of uninitialized value $host
in sprintf at /usr/bin/pprof line 3364. Gathering CPU profile from
http:///pprof/profile?seconds=30 for 30 seconds to
/home/developer/pprof/<my_bin>.1640195244. Be patient...
curl: (6) Couldn't resolve host 'http' Failed to get profile: curl
'http:///pprof/profile?seconds=30' >
/home/developer/pprof/.tmp.<my_bin>.1640195244.: No such
file or directory
所以我的问题是:我正在尝试的东西是否可能?我应该使用不同的 pprof 命令吗?curl 命令是关于什么的?
谢谢,