我们在应用程序中开始实施Coherence,以提高性能并减少数据库服务器的负载并减少Web服务调用。
我们通常在高负载期间遇到高CPU使用率(weblogic App服务器的JVM),数据库服务器通常不是问题。
除响应时间改进外,oracle Coherence如何在高负载期间改善应用服务器的CPU和堆使用率。
1)减少XML处理,因为我们将开始从缓存中检索准备使用的Java对象,而不必解组XML。
2)减少ORM映射开销,因为我们不会将表行映射到缓存数据的对象.... 3)还有什么?
非常感谢
答案 0 :(得分:2)
免责声明 - 我在Coherence上为Oracle工作。
假设CPU负载是XML编组,您应该通过将生成的对象放在缓存中来减少CPU消耗。您仍然需要为序列化支付CPU,但是对象序列化会占用更少的CPU - 如果您使用POF进行序列化,您将看到更好的性能。
如果对使用对象的位置有任何关联,则可以利用near缓存来避免进入网络以检索缓存对象。这只会在您执行更多读取而非写入时才有用。
使用Coherence,您不需要丢弃您的ORM - 您可以编写CacheStore(或使用我们随OOTB提供的JPA CacheStore)在缓存未命中时透明地从数据库读取并在更新缓存时更新数据库。如果您通过主键检索ORM对象,则效果最佳。
如果没有更多关于究竟占用CPU的细节(线程转储是一种很好的低技术诊断方法),很难说缓存有多大帮助。