首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么EhCache中的每个DiskStorage刷新都需要4秒?

为什么EhCache中的每个DiskStorage刷新都需要4秒?
EN

Stack Overflow用户
提问于 2014-04-23 18:33:34
回答 1查看 231关注 0票数 0

我们使用的是EhCache 2.6.2。因为我们需要高生存性,所以我们只使用DiskStorage而不使用MemoryStorage。

在程序中的每一次数据更新之后,我们都将数据刷新到磁盘。

一段时间后,cache.data文件超过了1 gb的最大值。当数据文件大小为250MB时,刷新耗时250ms;当数据文件大小为1 1gb时,刷新耗时3.5秒。

我们的对象每个大约有20kb,所以有数百万个。

有没有一种方法可以将数据文件拆分为几个较小的文件,并让EhCache处理?

我们更喜欢只涉及配置更改而不涉及代码更改的解决方案,因为它是在生产环境中。

环境详细信息:

在64位AIX 6.1上运行WebSphere 7、IBM Java1.6和EhCache 2.6.2。

EN

回答 1

Stack Overflow用户

发布于 2014-04-29 16:22:38

在Ehcache2.6.2中,所有缓存数据都将作为storage model changed存储在磁盘上,因此除了使用磁盘存储之外,您还可以通过使用内存存储来提高速度。

当你说:

程序中的每一次数据更新后,我们都会将数据刷新到磁盘。

关于磁盘存储的性能,有一个选项可以尝试:

代码语言:javascript
复制
<cache diskAccessStripes="4" ...>
  ...
</cache>

其中diskAccessStripes属性取2的幂。首先尝试使用较小的值,看看是否有什么收获。此属性的确切效果将取决于许多因素:硬件、操作系统以及应用程序的使用模式。

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

https://stackoverflow.com/questions/23241706

复制
相关文章

相似问题

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