我目前在休眠理解方面失去了自己。首先让我解释一下,我的问题。
我们决定为产品添加hibernate共享/群集缓存。我们在测试环境方面没有遇到任何问题,但由于这个修改是在生产中发布的,我们在CPU(至少+ 1 CPU使用),RAM(+1到3 Go)和网络(带宽* 2)上都出现了严重的过载。即使我禁用了hibernate L2缓存和查询缓存。 编辑:在RMI同步调用中,在thread.sleep中花费了60到65%的CPU时间。
我的技术堆栈:
现在我将描述我现在所理解的内容:
让我看看我的hibernate - 集群配置hibernate-clustered.xml:
<!--
Hibernate will use the defaultCache unless custom configurations are defined
below for individual domain objects, collection, queries, etc.
-->
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="600"
overflowToDisk="false"
>
<cacheEventListenerFactory
class="net.sf.ehcache.distribution.RMICacheReplicatorFactory"
properties="replicatePuts=false,replicateUpdatesViaCopy=false"
propertySeparator=","
/>
<bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />
</defaultCache>
<bootstrapCacheLoaderFactory class="net.sf.ehcache.distribution.RMIBootstrapCacheLoaderFactory" />
</cache>
我搜索&amp;阅读超过一整天,我仍然怀疑(可能是误解)我的思考过程。我觉得是时候寻求帮助了!
如果您需要更多信息,请与我们联系。
谢谢!