3

我们开始在我们的应用程序中实现 Coherence,以提高性能并减少 DB 服务器上的负载并减少 Web 服务调用。

在高负载期间,我们通常会遇到高 CPU 使用率(weblogic App 服务器的 JVM),DB 服务器通常不是问题。

除了响应时间的改善,oracle Coherence 将如何在高负载期间改善应用服务器的 CPU 和堆使用率。

1) 减少 XML 处理,因为我们将开始从缓存中检索可供使用的 Java 对象,而不必解组 XML。

2) 减少 ORM 映射开销,因为我们不会将表行映射到缓存数据的对象.... 3) 还有什么?

非常感谢

4

1 回答 1

2

免责声明 - 我在 Coherence 为 Oracle 工作。

假设 CPU 负载将用于 XML 封送处理,您应该会看到通过将生成的对象放入缓存中减少了 CPU 消耗。您仍然需要为序列化支付 CPU 费用,但对象序列化占用的 CPU 更少 - 如果您使用 POF 进行序列化,您会看到更好的性能。

如果与使用对象的位置有任何关联,您可以利用近缓存来避免去网络检索缓存的对象。这只有在您执行的读取操作多于写入操作时才会有所帮助。

使用 Coherence,您无需丢弃 ORM - 您可以编写一个 CacheStore(或使用我们随 OOTB 提供的 JPA CacheStore)在缓存未命中时透明地从数据库读取,并在更新缓存时更新数据库。如果您通过主键检索 ORM 对象,则此方法效果最佳。

如果没有更多关于究竟是什么占用了 CPU 的详细信息(线程转储是一种很好的低技术诊断方法),很难说缓存有多少帮助。

于 2012-03-12T13:47:54.247 回答