【问题标题】:Dynamic cache sizes in ehcacheehcache 中的动态缓存大小
【发布时间】:2014-09-29 12:53:54
【问题描述】:

我在大型报告应用程序上使用 ehcache 2.8.2(从 1.6.2 迁移而来)。由于内存不足错误,我将配置从受元素数量 (maxElementsInMemory) 限制为限制在 cacheManager 级别上的堆内存 (maxBytesLocalHeap/maxBytesLocalDisk) 。不幸的是,这不是很好。

该应用程序有大约 100 个缓存(每个报告一个)。这样便于单独管理缓存。但是,当使用 maxBytes 配置来池化缓存之间的堆空间时,每个缓存只占用池的 1/100。应用程序在给定时刻大约有 5 或 6 个缓存在使用中,因此在我们的例子中,这种约束非常低效。

我们想做的是将 maxBytesLocalHeap 作为所有缓存的限制大小,但是每个缓存可以占用它需要的内存量,而不是限制为池大小的 1/100(也许使用 LRU跨缓存)。当然,所有缓存的大小总和应该小于池。

这可能与ehcache有关吗?在这种情况下,您会建议哪些替代方案?

【问题讨论】:

  • 您在多大程度上使用了 EhCache 的功能?如果仅限于 get(K) 和 put(K, V),您也许可以创建单个缓存缓存。这个 single_cache 中的每个元素都是

标签: java caching memory ehcache


【解决方案1】:

您可以尝试监控 vm 中的可用内存并分别调整 EhCache CacheInstance CacheConfigurations。内存少时减少,内存多时增加。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 1970-01-01
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2016-02-21
    • 2011-09-01
    相关资源
    最近更新 更多