Cassandraの処理が行われていないのにCPU使用率が高い 

CPU使用率が非常に高いのに、LinuxプラットフォームでApache Cassandraの処理が行われていません。

CPU使用率が非常に高いのに、LinuxプラットフォームでApache Cassandra™の処理が行われていません。

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
  • より良いソリューション:次のように入力して、hugepagesのデフラグを無効にします。
    echo never | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
  • 別な方法:-XX:+AlwaysPreTouchjvm.optionsファイルに追加します。この変更は、実稼働環境に導入する前に、慎重にテストする必要があります。詳細については、「Javaリソースの調整」とブログ投稿を参照してください。
Javaリソースの調整
Apache Cassandraバージョン 対応するDataStax Enterpriseバージョン
2.1 4.7, 4.8
3.0 Linux 5.0
3.x Linux  
3.0 Windows  
3.x Windows