DataStax Enterpriseの処理がないのにCPU使用率が高い

LinuxプラットフォームでDataStax Enterpriseの処理がないのに、CPU使用率が非常に高い。

DataStax Enterpriseヘルプ・センターでは、トラブルシューティング情報も提供しています。

LinuxプラットフォームでDataStax Enterpriseの処理がないのに、CPU使用率が非常に高い。

khugepagedプロセスのCPU使用率を確認してください。最大100%になり、他のプロセスを阻害することがあります。

原因:

最新のLinuxディストリビューションの多くは、デフォルトでTransparent Hugepagesが有効になっています。LinuxでTransparent Hugepagesを使用する場合、カーネルは4Kではなく大きなチャンク(通常2 MB)でメモリーを割り当てようとします。これにより、CPUが追跡するページ数が低減されて、パフォーマンスが向上します。ただし、一部のアプリケーションは、引き続き4Kページに基づいてメモリーを割り当てます。その結果、Linuxが2 MBのページをデフラグしようとするときに顕著なパフォーマンス問題を引き起こす可能性があります。詳細については、「Cassandra Java Huge Pages」とこちらのRedHatバグ・レポートを参照してください。

可能な解決策:
  • 一時的な修正:次のように入力してキャッシュを削除します。
    sync && echo 3 > /proc/sys/vm/drop_caches
  • 推奨される解決策:次のように入力して、巨大ページのデフラグを無効にします。
    echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
  • 別の方法として、jvm.optionsファイルに-XX:+AlwaysPreTouchを追加します。この変更は、実稼働環境に投入する前に慎重にテストする必要があります。詳しくは、「Java仮想マシンのチューニング」およびブログ投稿を参照してください。