3

パフォーマンスを向上させ、DB サーバーの負荷を軽減し、Web サービスの呼び出しを減らすために、アプリケーションに Coherence の実装を開始しました。

通常、高負荷時に CPU 使用率 ( weblogic App サーバーの JVM) が高くなりますが、DB サーバーは通常問題になりません。

応答時間の改善以外に、Oracle Coherence は高負荷時のアプリケーション サーバーの CPU とヒープの使用をどのように改善しますか。

1) XML をアンマーシャリングするのではなく、すぐに使用できる Java オブジェクトをキャッシュから取得するため、XML 処理を削減します。

2) キャッシュされたデータのテーブル行をオブジェクトにマッピングしないため、ORM マッピングのオーバーヘッドを削減します.... 3) 他には?

どうもありがとう

4

1 に答える 1

2

免責事項 - 私は Oracle の Coherence で働いています。

CPU 負荷が XML マーシャリングに向かうと仮定すると、結果のオブジェクトをキャッシュに配置することで、CPU 消費が削減されるはずです。シリアライゼーションには引き続き CPU を使用しますが、オブジェクトのシリアライゼーションに必要な CPU ははるかに少なく、シリアライゼーションに POF を使用すると、さらに優れたパフォーマンスが得られます。

オブジェクトが使用されている場所に類似性がある場合は、ニア キャッシングを利用して、ネットワークにアクセスしてキャッシュされたオブジェクトを取得することを回避できます。これは、書き込みよりも多くの読み取りを行う場合にのみ役立ちます。

Coherence を使用すると、ORM を破棄する必要はありません。CacheStore を記述して (または OOTB に同梱されている JPA CacheStore を使用して)、キャッシュ ミス時にデータベースから透過的に読み取り、キャッシュが更新されたときにデータベースを更新することができます。これは、主キーを介して ORM オブジェクトを取得する場合に最適です。

正確に何が CPU を占有しているかについての詳細がなければ (スレッド ダンプはこれを診断するための優れたローテクな方法です)、キャッシュがどれだけ役立つかを言うのは困難です。

于 2012-03-12T13:47:54.247 に答える