0

Windows 7で正常に動作するJavaで書かれたサーバーがあります。しかし、Ubuntuに同じサーバーをインストールすると、メモリ不足エラーが表示され、サーバーには8 GBのRAMがあり、サーバーはRAMの70%しか使用していません。メモリエラーの。また、CPU 使用率はメモリ不足時にピークに達します。

  1. RAM の残りの 30% をアプリケーションに割り当てるにはどうすればよいですか?
  2. Ubuntu でアプリケーションに割り当てられるメモリの制限を増やすにはどうすればよいですか?

メモリ不足エラーは、Windows では発生せず、Ubuntu のみ発生します。Windows のタスク マネージャーでは、100% の CPU 使用率と完全な RAM 使用率が表示されます。このパフォーマンスをUbuntuに実装したいと考えています。

4

2 に答える 2

2

Java がOutOfMemoryErrorをスローするという意味であれば、まずその理由を理解する必要があります。おそらく、 VisualVM (無料) やYourKit (無料ではない) などのプロファイラーを使用して、メモリ内で何が起こっているかを確認することをお勧めします。その後、アプリのメモリ効率を高めるか、JVM 設定を変更して適切なメモリ割り当てを増やすなど、適切なアクションを決定できます。

開始するには、ヒープ スペースが不足している場合 (古い世代)、JVM フラグを使用して使用可能な最大ヒープを調整できます-Xmx。たとえば、-Xmx1024mor-Xmx1gは最大を 1GB に設定します。永久世代 (PermGen) の場合は-XX:MaxPermSize-XX:MaxPermSize=256m. パーマネント ジェネレーションのサイズを大きくすると、それに応じて他のヒープ セグメントで使用できるメモリの量が減少することに注意してください。

これらおよびその他の JVM メモリ設定の詳細については、Java アプリケーション ランチャー ページHotSpot VM オプション ページ(HotSpot VM を使用していると仮定) を参照してください。

于 2012-12-30T06:12:22.213 に答える
0

ulimitを使用して、目的のプロセスの RAM 使用を制限できます。

さらに、Javaアプリケーションの場合、-Xms(最小)、-Xmx(最大) などの引数をjavaプロセスに渡すことができます (MB の場合は M、GB の場合は G)。

于 2012-12-30T06:12:13.283 に答える