有没有办法在为Dataflow作业创建的VM上运行jstack? 我正在努力查看作业占用大部分CPU时间的位置,但我找不到它。
谢谢, ģ
答案 0 :(得分:1)
我找到了解决方法:
sudo docker ps
sudo docker exec -i -t 9da88780f555 bash
连接到容器(将容器ID替换为步骤2中找到的容器ID)apt-get install openjdk-7-jdk
/usr/bin/jstack 1437
答案 1 :(得分:1)
此Github issue update包含使用--enableProfilingAgent
选项获取配置文件的一些基本说明。
答案 2 :(得分:1)
这不能回答您问题的“和其他工具”部分,但是: Dataflow工作程序运行本地http服务器,您可以使用它来获取一些信息。您可以使用以下命令获取线程转储,而不是使用jstack:
curl http://localhost:8081/threadz
答案 3 :(得分:0)
我不熟悉jstack,但基于快速Google搜索,jstack看起来像是一个独立于JVM运行的工具,只需要一个PID。因此,您可以在作业运行时执行以下操作。
这对你有用吗?您是否尝试从代码中运行jstack以便自动对其进行分析?