如何在 grails 应用程序中监控 Hibernate 统计信息(缓存命中和未命中)?

Posted

技术标签:

【中文标题】如何在 grails 应用程序中监控 Hibernate 统计信息(缓存命中和未命中)?【英文标题】:How to monitor Hibernate statistics (cache hits and misses) in a grails app? 【发布时间】:2011-06-21 16:07:32 【问题描述】:

默认情况下,Grails 使用带有 EHCache 的 Hibernate 作为二级缓存。我仍在学习 Hibernate 如何在内部工作,并且希望能够在应用程序运行和执行我的查询时自省缓存(EHCache 和 Hibernate 在“级别 1”所做的任何事情)。是否有任何 Grails 插件或类似的插件可以促进这一点?

【问题讨论】:

在本论坛回答类似问题 [***.com/a/71196032/1440101] 【参考方案1】:

grails-melody 插件或 app-info 插件都可以让您查看 2 级 EHCache 中的内容,以及有关您的应用内部的许多其他有趣的细节。

hibernate 一级缓存更短暂,据我所知,没有任何方法可以检查它。

【讨论】:

【参考方案2】:

您可以将“net.sf.ehcache.hibernate”的日志记录级别设置为“config.groovy”中的信息或调试。这应该可以为您提供大量信息。

【讨论】:

【参考方案3】:

安装 JXM 插件 (http://www.grails.org/plugin/jmx) 会将 Hibernate 统计信息公开为 JMX。

此外,您可能需要在DataSource.groovy 中启用统计信息收集:

hibernate 
    generate_statistics = true
    ...
 

安装插件后,您可以使用例如jconsole 连接到您的进程并浏览统计信息。

【讨论】:

以上是关于如何在 grails 应用程序中监控 Hibernate 统计信息(缓存命中和未命中)?的主要内容,如果未能解决你的问题,请参考以下文章

Grails 应用程序的探查器

如何在 Grails 3 中更改应用程序名称?

如何在 Grails 3.0 中使用 jQuery

如何在 Grails 3 Gradle 项目中控制 H2 驱动程序版本?

如何在 Grails 中嵌入 jqPlot?有啥特殊标签吗?

如何在 Grails 中实现超时页面