Translated message

A translation of this page exists in English.

RHEL 6 でアプリケーションがメモリーを大量に使用する

Solution Verified - Updated -

Issue

  • RHEL 6.3 と 6.4 でアプリケーションがメモリーを大量に使用します。5.6 では問題ありません。メモリー (RSS および VSZ) が非常に大きくなる問題が発生しています。 この問題は、おそらく sourceware.org および IBM developerworks に記載されている glibc 2.10 以降に含まれる新しいメモリー領域アロケーターが原因となっています。

    • THP (Transparent HugePage) サポートがデフォルトで有効になっており、アプリケーションのメモリーの RSS が、同じソフトウェアがビルドされている RHEL 5 と比較して大きくなっています
    • カーネルのコマンドラインオプションを設定する (transparent_hugepage=never を追加) か、echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled を動的に設定してから THP (Transparent HugePage) サポートを無効にすると、メモリーが元に戻ります。
    • THP [Anon Huge ページ] を無効にしても、同じソフトウェアがビルドされている RHEL 5 と比較して仮想メモリは大きくなります。
    • THP (Transparent Huge Page)を有効にし、領域を設定すると、仮想メモリーが大きくなっているようです。
    • 起動する際の MALLOC_ARENA_MAX 環境変数を 4 に設定し、先行試験を行いましたが、仮想メモリーの成長が速くなっているようです。5% または 10% 増加した場合は特に問題ありませんが、10 倍になるとサイズが 250G になります。
    • 仮想メモリー (VM) の範囲は、仮想メモリー (VM) のカーネル管理に関する問題が発生します。
  • jdk 7u5_x64 を使用して RHEL 6 の Java アプリケーションをテストすると、VM の使用量が大きく増加します。これについて調査を行い、HADOOP-7154 に従って MALLOC_ARENA_MAX=4 を設定しました。これにより、VM の使用量は期待するレベルにまで戻りました。
    Why do multithreaded applications use significantly more virtual memory on a more recent version of Red Hat Enterprise Linux を参考にしましたが、領域がどのように機能するかについて情報を探しています。値は 4 でテストを行ったところ、期待した効果を得られたようですが、その理由が分かりません。google のアーティクルでは 1 を使用しないようにとありますが、その理由が分かりません。

  • JBoss インスタンスのプロセスサイズが大きくなっている (設定したものよりも多くの物理ヒープを使用している) のを確認しています。ただし、これは RHEL サーバーでのみ発生しているようです。この問題が発生している原因と、このような問題を解析するのに最適な方法を教えてください。

Environment

  • Red Hat Enterprise Linux (RHEL) 6
    • RHEL 5.6 から RHEL 6.4 にアップグレードしたシステム
    • RHEL 6 にアップグレードしたシステム
    • RHEL 6 で実行している java アプリケーション

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content