问题描述
我正在尝试了解BCC BPF工具并利用其对Linux Ubuntu 18服务器上生产中的NodeJs应用程序进行故障排除。我能够使用配置文件工具成功诊断cpu高挂起,但是我试图了解如何使用这些工具对IO绑定挂起或cpu低挂起进行故障排除。
我创建了一个测试节点js页面,该页面调用了Azure sql数据库,并且在执行查询时,我故意在sql数据库中引入了10秒的延迟。现在,我正在尝试查看BCC BPF工具是否可以跟踪此延迟,并帮助我在调用数据库时确定我的请求(或页面很慢)。
到目前为止,我已经使用了配置文件工具和offcputime工具,并且都使用了它们,但我无法获得显示跟踪延迟是在远程依赖项调用中的堆栈跟踪。
这些是我执行的命令
使用配置文件工具进行测试时
node --perf_basic_prof bin/www &
/usr/share/bcc/tools/profile -f -F 97 `pgrep -n node` > node.stacks
cat node.stacks | ./flamegraph.pl > nodelowcpu.svg
使用offcputime工具进行测试时
node --perf_basic_prof bin/www &
/usr/share/bcc/tools/offcputime -p `pgrep -n node` > folded.stacks
cat folded.stacks | ./flamegraph.pl > offcpu.svg
在这种情况下是否可以使用其他工具。另外,如何解决远程HTTP调用需要较长时间的问题。
谢谢!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)