1

LinuxサーバーでGlassfishアプリケーションサーバーを実行しています。各Glassfishインストールは3つのドメインをホストします。各ドメインには、-Xms1GBや-XmX2GBなどのJVM構成があります。つまり、これら3つのドメインすべてが最大メモリで実行されている場合、サーバーは合計6GBをJVMに割り当てることができるはずです。

その計算では、各サーバーに8GBのRAM(2 GBのバッファー)があります。まず、これは良いアプローチですか?このサーバーのメモリ使用率を過去数か月にわたって分析したところ、最大1GBしかなかったため、私はそうは思いませんでした。

現在、これらのサーバーにドメインを追加するように要求されています。これは、安全のため、または傾向に基づいて、サーバーにあるメモリを使用して続行するために、2 GBのRAMを追加することを意味しますか?

4

1 に答える 1

1

いくつかの目安:

  • XmXと、ボックスで常に実行する必要のあるアプリケーション(OSを含む)に必要なRAMの合計を、使用可能な物理RAMよりも低くする必要があります。そうしないと、何かがディスクにスワップされ、その「何か」を実行する必要があるときに、物事が劇的に遅くなります。物事が常にスワップに出入りする場合、何も実行されません。

  • 一部のアプリケーションサーバーでは、より低いXmXでうまくいく可能性があります(あなたの質問は、一部のJVMに割り当てられたRAMが多すぎることを意味しているようです)。Tomcatはわずか64mbのXmXで起動できると思いますが、多くのアプリケーションはそのセットアップで非常に迅速にメモリを使い果たします。メモリ割り当てとガベージコレクターを調整することは、それだけの価値があるかもしれません。率直に言って、私は最近GCのパフォーマンスについてあまり最新ではないので(4〜5年でまともなパフォーマンスを得るために何も調整する必要はありませんでした)、それがどれほど価値があるかわかりません。GCコレクションの一時停止は以前は悪いものでしたが、ヒープが大きいほど一時停止が長くなります...

  • 予備のメモリが「無駄になる」ことはありません。OSはそれをディスクキャッシュに使用し、それは利点になるかもしれません。

いずれにせよ、答えは通常...テストを実行する必要があります。ストレステストを実行できることは非常に貴重です。時間をかけてテストを作成し、実行することをお勧めします。それはあなたがこの問題に関して知識に基づいた決定をすることを可能にするでしょう。

于 2010-06-07T19:18:23.920 に答える