1

我有更多关于意见和经验的问题,而不是技术解决方案。

您如何看待在生产环境中通过 JMX 控制台打开 Hibernate 统计信息和 Ehcache 统计信息?这似乎是个好主意还是可怕的主意?为什么?

问候

4

2 回答 2

2

在我看来,这里有两个突出的问题:

  1. 统计信息有用吗?在 JMX 中发布时您能否以有用的方式访问它们?
  2. 启用统计信息是否会影响系统的整体性能?

我们假设 #1 是真的(否则我们为什么在这里?:))

就#2而言,您确实必须在负载下测试您的应用程序,无论是否有统计数据,但我的经验是这两个统计组件对性能的影响可以忽略不计。此外,定期收集和分析这些统计数据可能会带来改进,因为它会/可能会帮助您找到瓶颈或系统中可能没有使用缓存的部分。

我想你可能会争辩说有更好的方法来挖掘这些信息,比如让后台线程定期将统计信息写入日志文件,这适用于更简单的指标,如“元素如何在缓存中”,但许多统计信息不会如果核心引擎没有启用统计信息(如大多数 Hibernate 的指标),则可用。此外,JMX 已经走了很长一段路,并且有各种创造性的方式来访问和分析/报告/可视化它公开的数据。

希望这会有所帮助。

于 2013-02-07T14:35:51.120 回答
2

我工作的产品拥有一切——Hibernate stats、Ehcache stats、JMX 等等。但是我们通过我们的特殊后端(而不是 JMX)公开 Hibernate/Ehcache 信息,该后端只能由管理员用户访问,并使用 JMX 来监视绑定到我们的 SLA 合同的各种事物。但是,如果您的产品没有这样的后端,那么通过 JMX 公开 db/cache 统计数据对我来说听起来并不是一件错误的事情。

在生产环境中打开统计数据并不是什么大问题。成本大约是AtomicLong incrementAndCount每笔交易的一次操作,几乎是免费的。除非您每秒处理数百万笔交易,否则您不会注意到任何差异。

于 2013-02-07T21:45:54.047 回答