4

PERSISTENT メッセージのパフォーマンスは、NON_PERSISTENT メッセージよりもはるかに遅いことがわかりました。non_persistent メッセージを送受信しましたが、パフォーマンスは次のとおりです。

Method      Number of Msg  Elapsed Time

    Sending   - 500 messages - 00:00:0332
    Receiving - 500 messages - 00:00:0281

永続的なメッセージを送受信しました。パフォーマンスは次のとおりです。

    Sending   - 500 messages - 00:07:0688
    Receiving - 500 messages - 00:06:0934

この動作は、MQMessage と JMSMessage の両方で発生します。

問題を解決してくれたすべての人に感謝します。

Shashi、T.Rob、Pangea に感謝します。

4

3 に答える 3

4

新しいタイトルを考えると、私は今、この質問に対する答えを持っていることがわかりました.

はい、永続的なメッセージは、他のすべての側面が等しい場合、非永続的なメッセージよりも常に時間がかかります。ただし、速度が遅い程度は高度に調整可能です。表示されている結果を得るために、キュー マネージャーには最悪の場合のチューニングが多く含まれている可能性があります。適用される要因の一部を次に示します。

  • ディスクがローカルかネットワークか。回転するディスク上にマウントされた NFS と通信する 100MBS および低速の接続の場合、ほとんどの場合、ローカル ドライブの方がはるかに高速です。(ただし、ファイバー チャネルとバッテリ バックアップのキャッシュ コントローラーを使用した SAN へのマウントは、ほとんどの場合、ローカルの回転ドライブよりも高速です。)一般的な例は、コンシューマー グレードの NAS ドライブの使用です。自宅の NAS ユニットがどれだけ優れていても、スループットは常にローカル ディスクよりも遅くなります。
  • ローカル ドライブの場合は、ドライブの速度。新しい「グリーン」ドライブは、電力を節約するために回転速度を変化させます。7200 RPM のディスクでも、10k RPM のドライブに比べてパフォーマンスが低下する可能性があります。
  • ローカル ドライブの場合、断片化の程度。メッセージは小さくても、事前に割り当てられたログ ファイルに配置され、非常に断片化されている可能性があります。
  • ディスクとログ ファイルを同じローカル ボリュームに置く。これにより、制御がアプリケーションに戻る前に単一のメッセージが両方のファイルに書き込まれるため、ヘッドの競合が発生します。
  • 線形ログと円形ログ。ログフォーマッタは毎回新しいものを割り当てる必要があるため、線形は遅くなります。
  • 同期点を使用するかどうか。単一の作業単位で多くのメッセージが書き込まれる場合、WMQ はキャッシュされた書き込みを使用して、セクターの書き込み操作を最適化できます。COMMIT だけがブロッキング呼び出しである必要があります。

非永続メッセージは完全にメモリ内で処理されるか、最大で 1 つのディスク ファイルにオーバーフローするため、これらの問題のほとんどの影響を受けません。

于 2012-07-04T17:32:56.020 に答える
1

あなたのマイクロベンチマークには欠陥があると思います(間違ったベンチマークメカニズムを使用しており、i/o(開始時間と終了時間の計算内のSystem.out.println)も画像に含めています)。最初にGoogle の Caliper のようなツールを使用して正しい数字を見つけてから、答えを探します。前回 (2003 年だったと思います)、MQ JMS 実装は Java MQI クラスのラッパーであり、最適なスループットを満たすために Java MQI に固執する必要がありました。

于 2012-07-04T03:01:13.717 に答える
0

WebSphere MQ JMS メッセージは、JMS スタイルのメッセージングをサポートするために追加のヘッダー (JMS ヘッダーと呼ばれる) を伝送します。JMSDestination、JMSReplyTo、JMSDeliveryMode、JMSType など、およびプロバイダー固有の JMS ヘッダーは JMS ヘッダーの一部です。これらのヘッダーは、メッセージが送受信されるたびに処理されます。

一方、WebSphere MQ Java クラスは純粋な WMQ メッセージのみを送受信します。WMQ メッセージには MQMD があり、その後にメッセージ本文が続きます。

だから違いがわかります。JMS メッセージの利点は、標準ベースであることと、JMS メッセージが相互運用可能であることです。

于 2012-07-03T03:51:08.083 に答える