4

こんにちは、Solaris Sparc で Java アプリケーションをテストしようとしていますが、奇妙な動作が発生しています。私は炎の戦争を探しているわけではありません。何が起こっているのか、何が間違っているのか知りたいだけです...

Intel と T1000 で同じ JAR を実行していますが、Windows マシンでは 100% (パフォーマンス モニター) の CPU 使用率を得ることができますが、Solaris マシンでは 25% (prstat) しか得られません。

このアプリケーションは、netty をネットワーク フレームワークとして使用する、私が作成したカスタム サーバー アプリです。

Windows マシンでは、完全なビジネス ロジックと外部のサード パーティへのアクセスを含め、毎秒 200 を超えるリクエスト/レスポンスに到達できます。一方、Solaris マシンでは、わずか 25% の CPU で約 150 のリクエスト/レスポンスを取得します。

Sparc をフルパワーで使用させることができれば、Sparc からさらに多くの要求/応答を取得できることは想像に難くありません。

サーバーは...

Windows 2003 SP2 x64 ビット、8GB、2.39Ghz Intel 4 コア Solaris 10.5 64 ビット、8GB、1Ghz 6 コア

どちらもそれぞれjdk 1.6u21を使用しています。

何か案は?

4

3 に答える 3

2

T1000 はマルチコア CPU を使用しています。つまり、CPU は複数のスレッドを同時に実行できます。CPU の使用率が 100% の場合、すべてのコアが 100% で実行されていることを意味します。アプリケーションがコア数よりも少ないスレッドを使用する場合、アプリケーションはすべてのコアを使用できないため、CPU を 100% 使用することはできません。

于 2010-08-26T15:57:31.773 に答える
1

これは今ではかなり古い質問ですが、同様の問題に遭遇しました。

注意すべき重要な事実は、SUN T1000は、8コアに対して1つのシングルFPUしかないUltraSpacT1プロセッサに基づいているということです。したがって、アプリケーションが多くの、またはいくつかの浮動小数点計算を実行する場合、FPUがボトルネックになるため、これが問題になる可能性があります。

于 2010-11-17T11:34:36.020 に答える
1

コードがなければ、手助けするのは難しいです。いくつかのアイデア:

  • 両方のシステムで Java アプリのプロファイルを作成し、違いがどこにあるかを確認します。あなたは驚くかもしれません。T1 CPU には順不同の実行がないため、奇妙な領域でパフォーマンスが不足していることがわかる場合があります。
  • prstatErick Robertson が言うように、通常のコアの数ではなく、経由で報告される仮想コアの数にスレッドの数を増やしてみてください。T1000 は、スレッド レベルの並列処理を多用する UltraSparc T1 プロセッサを使用します。

また、最新世代の Intel プロセッサと古い Sunプロセッサを使用していることにも注意してください。Sun の「Developering and Tuning Applications on UltraSPARC T1 Chip Multithreading Systems 」と「Maximizing Application Performance on Chip Multithreading (CMT) Architectures 」を読むことを強くお勧めします。

于 2010-08-26T16:07:06.140 に答える