2012-02-15 8 views
1

サーバー構成:高スワップメモリ​​使用率

  1. 物理RAM - 16ギガ
  2. スワップメモリ​​ - 27GB
  3. OS - Solaris 10の
  4. 物理メモリ無料 - 598 Mbの
  5. スワップメモリ​​使用 - 〜26Gb
  6. Javaバージョン - は、Java HotSpot(TM)ServerのVM - 私のタスクは、使用済みのスワップメモリ​​を削減することである

1.6.0_17-B04: - 私が持っている ソリューションの

  1. かかわらずすべてのJavaアプリケーションを停止し、物理メモリが十分に解放されるまで待ちます。 "swapoff -a"コマンドを実行します(しかし、このコマンドに対応するSolarisを見つけるには)...使用されるスワップメモリ​​がゼロになるまで待ちます。その後、私は以下の点に助けを必要とし、 "swaponを-a"
  2. 増加物理メモリ

をコマンドを実行します -

  1. いただきましするswapoffとswaponコマンドのSolarisのと同等?
  2. オプション1は使用済みのスワップをクリアすることはできますか?

Thanks a Million !!!

答えて

7

まず、Javaおよびスワップ混在させないでください。あなたのJavaアプリケーションがスワップしている場合、あなたは単に運命にある。スワップされたJavaプロセスのようなマシンを殺すことはほとんどありません。 GCとスワップはただの悪夢です。

Javaプロセスを使用してマシンをスワップすると、そのマシンは小さすぎます。メモリを増やすか、マシンの負荷を軽減します(できるだけJavaプロセスのヒープを含む)。

マシンに物理メモリ(600Mb)がなく、空きスワップスペース(1hb Gb)がないということは、マシンが過負荷になっているという別の指標です。

リソースが使い尽くされたときに、あらゆる方法でJavaプロセスにフォールトが発生する可能性があります。

Javaプロセスを強制終了すると、プロセスが存在しないため「スワップから取り出します」、スワップすることはできません。他のすべてのプロセスでも同じです。 「スワップメモリ​​」は即座に停止することはありませんが、プロセスが存在しない場合はスワップできません(スワップアウトされた不幸な永続共有メモリバッファの使用は禁止されていますが、Javaでは通常使用しませんそれらを参照してください。)

実際には、特定のプログラムを物理RAMにロックしてページアウトされないようにOSに指示する方法はありません。そして、率直に言って、あなたはしたくない。

RAMをすべて使用している場合は、フットプリントを減らすか、このマシンからJavaプロセスを移動することを真剣に検討する必要があります。あなたは単に厳しい限界まで走っているだけで、この石には血がなくなります。

+0

もう1つの指標は、vmstatの出力から**ページスキャン率**です。システムの高さが高すぎます!! ..... GCはまた、ガベージコレクションの時間が1分にもなります!!! – Vishal

0

あなたが求めていることはあまり明確ではありません。メモリを必要とするアプリケーションを停止すると、メモリが解放され(潜在的にスワップ空間が必要になります)。あなたの説明からは、Javaがすべてのメモリを箱に入れていることははっきりしていません。通常、JVMを実行してそのメモリを物理メモリに割り当てる必要はありません。 JVMの起動方法と割り当てられているメモリ量を確認してください。ここで

は、Solaris上のスワップを管理する方法である:

http://www.aspdeveloper.net/tiki-index.php?page=SolarisSwap

+0

スワップしていない可能性がありますが、実際にスワップしていない可能性があるスワップメモリ​​をクリアすると思います...オペレーティングシステムはスワップデータを物理メモリに入れようとしますGC).........物理メモリが不足しているので... javaプロセスが終了しました...何らかのエラーが発生している可能性があります...そして、Javaプロセスのデータをスワップして永遠に残します! – Vishal