首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在机器启动期间测量java服务的性能?

在机器启动期间测量java服务的性能?
EN

Stack Overflow用户
提问于 2015-03-10 19:35:05
回答 1查看 109关注 0票数 2

我们有几个java应用程序,它们使用Tankui的java服务包装器作为Windows服务运行。当机器启动时(前30秒),我们的客户遇到了可伸缩性问题。

传统上,我们使用j控制台/ Virtual来监视Java虚拟机的运行情况。但是,在机器启动期间,这些工具对于捕获java.exe性能不是很好。

我搜索了一个答案,我发现最好的搜索结果是一篇题为“测量Java启动时间”的论文,但他们求助于用JNI调用informatics/pdf/INFOL073.pdf来检测应用程序。我们更喜欢一种较小的侵入性方法。

什么是一个好的外部工具或技术,能够捕获java.exe统计数据(线程计数、堆使用等)在机器启动的时候?

@djmorton要求定义可伸缩性问题。问题是,当应用程序监视100个系统对象时,一切都很好。但是当数据增加到1,000个系统对象时

  • 1,100个JVM线程同时运行
  • 线程X在Java读写锁上持有一个写锁,C1正忙着使用Hibernate/c3p0/JDBC/MySQL更新系统对象的一部分。
  • 线程Y保存结构P的JVM对象内部锁,并等待在Java读写锁C1上获得读锁,以便使用Hibernate/c3p0/JDBC/MySQL从数据库中读取系统对象的另一部分。
  • 线程Z正在等待获得结构P的JVM对象内部锁。
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-11 17:07:18

最后我们在离线模式下使用了JProfiler。JProfiler允许您基于JVM启动设置触发器。JProfiler允许我们在Java服务启动期间获取各种JVM遥测数据,如线程计数、加上Java争用、线程转储等。

我们必须解决一个Windows文件权限问题。JProfiler想要创建一个临时文件,但是在这个环境中,JProfiler使用LocalSystem帐户在LocalSystem服务中运行。所做的工作是将服务临时设置为以管理员的身份运行。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28972565

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档