Skip to content

Instantly share code, notes, and snippets.

@10sr
Last active August 31, 2015 15:30
Show Gist options
  • Save 10sr/a422528b1bbc1d87c4e5 to your computer and use it in GitHub Desktop.
Save 10sr/a422528b1bbc1d87c4e5 to your computer and use it in GitHub Desktop.
Hadoop warning
  • /proc/sys/vm/swappiness を 0 に設定することをお勧めします。現在の設定は 60 です。sysctl コマンドを使用して、この設定を実行時に変更します。この設定が再起動後に保存されるよう /etc/sysctl.conf を編集します。インストールは続行できますが、スワッピングが原因でホストの状態に問題が発生したと Cloudera Manager からレポートされる可能性があります。以下のホストが影響を受けています
  • Transparent Huge Page が有効化されており、重大なパフォーマンスの問題が発生する可能性があります。リリース「CentOS release 6.7 (Final)」およびバージョン「2.6.32-504.el6.x86_64」のカーネルが有効化され、「[always] madvise never」に設定されており、デフラグが「[always] madvise never」に設定されています。「echo never > /sys/kernel/mm/redhat_transparent_hugepage/defrag」を実行して、これを無効化します。次に、システ ムの再起動時に設定されるように、/etc/rc.local などの init スクリプトに同じコマンドを追加します。または、RHEL 6.5 以降にアップグレードします。これらのバージョンにはこのバグは存在しません。次のホストが影響を受けます:

Tunings

vm.swappiness

どれだけ優先的に swap を使うか、という設定。 0 から 100 までの整数を値としてとる。 数字が大きいほど、アプリケーションのデータをディスクに swap out する。 数字が小さいと、 swap out する代わりにファイルキャッシュを削除しデータ領域を確保しようとする。 0 にするとぎりぎりになるまで swap out しない。

Hadoop のデーモンがディスクに swap out した場合、ディスクが他の IO を行っている場合など動作がタイムアウトしたり失敗したりする。 それにより、そのホストが以上であるとされてしまう可能性がある。

-> 新しいカーネルでは、 0 にすると swap out を完全に抑制する。 そのため、動作に必要なメモリが足りなくなった場合 OOM Killer が走りプロセスが殺される。 このパッチは RHEL Kernel 2.6.32-303 にバックポートされている。 このようなカーネルでは、値を 10 にする。

Refs

redhat_transparent_hugepage/defrag

  1. Hugepage

TLB の扱うメモリ領域を大きく取ることで、TLB ヒットの率を上げ TLB の使用効率を高める。 大きなメモリで性能を引き出すのに有効

  1. Transparent Hugepage

アプリケーション側の対応なしに Hugepage を利用できるようにする機能 ( hugetlbfs が不要)

http://d.hatena.ne.jp/watashihax125/20110201

  1. defrag

アプリケーションがメモリを allocate するとき、既存の小さなメモリ領域を一つに束ねて大きなページにしようとするもの

https://javaworks.wordpress.com/2013/10/17/3-knobs-you-should-know-in-redhat-transparent-hugepage/

この機能により、 top などで見られる System CPU の割合が高くなることがある。 この割合が 30% を超えている場合、この問題の影響を受けていると考えられる。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment