DataStax Enterpriseの処理がないのにCPU使用率が高い
LinuxプラットフォームでDataStax Enterpriseの処理がないのに、CPU使用率が非常に高い。
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仮想マシンのチューニング」およびブログ投稿を参照してください。