作为我构建的一部分,我们使用cargo-maven2-plugin使用我们的app启动一个码头容器。间歇性地,我们得到的结果是“无法启动Jetty 6.x Embedded容器”。我们遇到了默认的120秒超时。
我们正在使用Sun 1.6.0_07 JVM,所以我认为hprof可能会有所帮助。
作为一项健全测试,我从
开始set MAVEN_OPTS=%MAVEN_OPTS% -agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out
然后跑
mvn -Dmaven.test.skip=true install
(Cargo配置为在预集成测试和集成后测试目标期间运行)
这似乎是我想要的 - 我看到了启动和停止容器的消息,以及跳过测试的消息。在maven输出构建摘要之后,我看到消息“通过采样正在运行的线程...已完成来转储CPI使用情况”。写了hprof.out文件,它有我想要的那种样本数据。
当然,这是maven本身的一个样本,没用。
如何为我的网络应用获取相同的采样信息?
我最初的想法是使用cargo.jvmargs属性
<cargo.jvmargs>-agentlib:hprof=cpu=samples,interval=20,depth=3,file=hprof.out</cargo.jvmargs>
,但是(a)当我这样做(从MAVEN_OPTS中删除分析参数)时,我找不到生成的hprof.out文件和(b)再次查看文档表明可能那些仅用于容器的开始/停止,而不是容器本身?