Elasticsearch バージョンアップでのパフォーマンス低下の原因がベトナム語プラグインだった件 - AWS サポート Technical Deep Dive 事例紹介

Amazon Web Services Japan 公式
29 May 202407:49

Summary

TLDR本動画では、AWSサポートエンジニアの深掘りケーススタディを紹介します。東京オフィスのOhashiさんが、顧客の技術課題を解決するために行う「ディープダイブ」プロセスについて話します。Amazon OpenSearch Serviceのアップグレード後に発生したパフォーマンス低下をトラブルシューティングし、ベトナム語プラグインが原因であることを特定しました。JVMヒープ使用量の分析やオープンソースツールの活用を通じて問題を解決し、サービスチームが修正を実装しました。AWSサービスのオープンソースソフトウェアを管理する際のディープダイブの重要性と、サポートエンジニアとしての魅力についても触れています。

Takeaways

  • 🌐 AWSサポートのディープダイブケーススタディを紹介します。
  • 👋 オハシさん、東京オフィスのクラウドサポートエンジニアが話しています。
  • 🛠️ 顧客の技術課題を解決するために技術的な専門知識を提供します。
  • 🔍 問題解決にはディープダイブと呼ばれる詳細な調査と分析が行われます。
  • 🔎 Amazon OpenSearch ServiceはOpenSearchとElasticsearchを管理するサービスです。
  • 📈 エラスティックサーチ6.8から7.9へアップグレード後にマスターノードのパフォーマンスが低下した問題が報告されました。
  • 📊 バージョン間のメトリックスを比較し、マスターノードの負荷が増加したことが確認されました。
  • 🔄 JVM関連のCloudWatchメトリックスをチェックし、大量のガーベッジコレクションが発生していたことが発見されました。
  • 📝 ログを掘り下げると、Elasticsearchの言語プラグインであるベトナムプラグインが原因で判明しました。
  • 🔧 サポートエンジニアとして問題を再現することは非常に重要です。
  • 🔄 rallyを使用して顧客のテストシナリオを再現し、マスターノードの負荷が増加する問題を再現することができました。
  • 🐳 Dockerコンテナ内でElasticsearchを実行し、JVMヒープヒストグラムとヒープダンプを分析しました。
  • 🔑 ベトナムプラグインのWクラスが大きなヒープ使用量を消費していたことが原因と判明しました。
  • 🛑 問題の解決策として、辞書オブジェクトをシングルトンに変換するか、実装方法をレビューすることが提案されました。
  • 🌟 AWSサービスはオープンソースソフトウェアを管理型で運用しており、オープンソースツールを活用してディープダイブが可能です。
  • 💡 Javaに関する知識が豊富な場合、JVMの問題をトラブルシューティングでき、オープンソースプロジェクトに貢献することもできます。
  • 📚 AWSのクラウドサポートエンジニアとして、不足している知識を習得することができます。
  • 🤝 オハシさんからのAWSクラウドサポートエンジニアへの興味を呼びかけるメッセージと、チームのキャリアページへのリンクが提供されています。

Q & A

  • AWSサポートディープダイブケーススタディとはどのようなものですか?

    -AWSサポートディープダイブケーススタディは、クラウドサポートエンジニアが顧客の技術問題や課題を解決するために、詳細な調査、検証、分析、検討を行うプロセスを紹介するセッションです。

  • Amazon OpenSearch Serviceとはどのようなサービスですか?

    -Amazon OpenSearch Serviceは、検索エンジンOpenSearchとElasticsearchを管理するマネージドサービスです。

  • 顧客がElasticsearch 6.8から7.9にアップグレード後に経験した問題とは何でしたか?

    -顧客が経験した問題は、マスターノードでのパフォーマンスの著しい低下でした。

  • マスターノードの負荷が増加した原因として疑われた要因は何でしたか?

    -マスターノードの負荷が増加した原因として疑われた要因は、JVM関連のCloudWatchメトリックスで大量のガーベッジコレクションが発生していたことです。

  • Elasticsearchの言語プラグインとはどのようなものですか?

    -Elasticsearchの言語プラグインは、特定の言語に対するテキスト解析やトークン化を提供する機能です。このケースでは、ベトナム語プラグインが問題の原因となりました。

  • ベトナム語プラグインがマスターノードに与える影響を特定するために行った調査はどのようなものでしたか?

    -ベトナム語プラグインがマスターノードに与える影響を特定するために、ログを掘り下げ、GitHubで見知らぬログメッセージを検索し、プラグインに関連するログが大量に出力されていたことを発見しました。

  • 問題を再現するために使用したツールは何でしたか?

    -問題を再現するために、Elasticsearchのベンチマークツールであるrallyを使用しましたが、その後には顧客のテストシナリオに基づいて定義したカスタムシナリオを使用しました。

  • Dockerコンテナ内で行った調査で何を発見しましたか?

    -Dockerコンテナ内で行った調査で、ベトナム語プラグインのWクラスが大きなヒープ使用量を消費していることを発見しました。

  • この問題の根本原因は何でしたか?

    -問題の根本原因是、インデックスが作成されるたびにロードされる単語辞書(unigram dictionary)でした。辞書は、プラグインが使用されていない場合でもロードされます。

  • この問題に対する解決策として提案されたものは何でしたか?

    -この問題に対する解決策として、辞書オブジェクトをシングルトンに変換するか、実装方法を全体的に見直すことが提案されました。

  • AWSサポートエンジニアとして働くことの魅力は何ですか?

    -AWSサポートエンジニアとして働くことの魅力は、未知の問題を明確にし、オープンソースツールを活用してディープダイブ調査を行うことができることです。また、Javaに関する知識を身につけ、オープンソースプロジェクトに貢献する機会もあります。

Outlines

plate

このセクションは有料ユーザー限定です。 アクセスするには、アップグレードをお願いします。

今すぐアップグレード

Mindmap

plate

このセクションは有料ユーザー限定です。 アクセスするには、アップグレードをお願いします。

今すぐアップグレード

Keywords

plate

このセクションは有料ユーザー限定です。 アクセスするには、アップグレードをお願いします。

今すぐアップグレード

Highlights

plate

このセクションは有料ユーザー限定です。 アクセスするには、アップグレードをお願いします。

今すぐアップグレード

Transcripts

plate

このセクションは有料ユーザー限定です。 アクセスするには、アップグレードをお願いします。

今すぐアップグレード
Rate This

5.0 / 5 (0 votes)

関連タグ
AWSサポートクラウド技術トラブルシューティングケーススタディオープンサーチパフォーマンスメモリ負荷プラグイン問題Java知識サポートエンジニアAWSキャリア