「Javaアプリケーションのレイテンシー削減」

「美容とファッションのエキスパートが贈る、Javaアプリケーションのレイテンシー削減術」

私がアプリケーション開発のキャリアで取り組んだ難解で曖昧な問題の一つは、分散データ取得アプリケーションのレイテンシを改善することでした。

これは、最大の小売ウェブサイトの1つで製品広告を提供するために使用されるコンテナ化されたJavaアプリケーションでした。アイデアはレイテンシを低減して、特に高度な機械学習モデルを実行して試験することで、より良い広告を顧客に提供するための追加処理の余地を提供することでした。

私が使用したテクニックの一つは、JVMメモリ使用状況周りの活動に対する洞察を得るためのメモリ解析でした。些細なことのように聞こえるかもしれませんが、私は解決に時間がかかる大きな障壁を発見しました。結果として、それぞれの問題を克服し、アプリケーションのp99レイテンシを400msから240msに減少させることができました。

レイテンシの低減は私にとって新しいチャレンジであり、それに対処するための最適なツールが必要でした。オープンソースと有料の両方の多くのツールが利用可能でしたが、私は無料の中でもeclipseメモリ解析ツールMATが最も便利だと感じました。MATのインストールと使用方法については、多くの記事がありますので、ここでは詳細には触れません。

この記事では、大規模なプロダクションアプリケーションのメモリ解析に関連する課題とそれらの克服方法について説明します。

課題

  1. 大規模なアプリケーションのJVMヒープメモリのフットプリントは非常に大きく、私の場合は約100GBでした。このような大きなヒープダンプを解析するには、解析ツールを実行するために多くのメモリが必要であり、通常は通常のノートパソコンでは遅くなります。
  2. 大規模なヒープダンプは同等のディスクスペースを消費します。ディスクに十分なスペースがない場合、ヒープダンプのコマンドは失敗し、最悪の場合はルートパーティションを埋めてホストをクラッシュさせる可能性があります。
  3. ヒープダンプはストップ・ザ・ワールドのイベントです。ヒープダンプを取ると、アプリケーション内のすべてのアクティビティが停止し、サービスのヘルスチェックの失敗や終了につながる可能性があり、ヒープダンプファイルを取得することが困難になります。

解決策

  1. 大規模なヒープダンプの場合は、AWS EC2などの十分なメモリとディスクスペースを持つクラウドベースのリソースを使用することが最適です。
  2. ディスクスペースの問題を解決するには、アプリケーションがいくつかのクラウドリソースで実行されている場合、通常はそれに別のストレージが接続されています。ヒープダンプを取る前に、別のストレージを増やすことができます。
  3. アプリケーションが定期的なヘルスチェックで監視されているかどうかを確認します。たとえば、ロードバランサーの一部である場合は、ヒープダンプコマンドが開始された後に終了されないように、提供フリートから外す必要があります。
  4. 一定の間隔で複数のヒープダンプを取得して、サービスの状態の変化をキャプチャします。

改善策

  1. 最大の原因の一つは、インメモリキャッシュであり、過剰な保持ヒープを引き起こし、レイテンシに影響を与える頻繁なガベージコレクションを引き起こしていました。
  2. メモリ解析によって、データの検索に使用されるデータインデックスの使用方法に関する重要な手がかりが得られました。全体のインデックスがJVMヒープにロードされていて、またtmpfsに保存されており、必要なメモリの2倍を使用していたことがわかりました。これは不要であり、頻繁なガベージコレクションも引き起こしていました。

結論

大規模なプロダクションアプリケーションのメモリ解析は重要です。

アプリケーション内でのデータのキャッシュは有用かもしれませんが、時間の経過に伴う悪化については注意深く監視する必要があります。

ヒープダンプ解析は強力なツールです。正しいマシンとツールを使用すれば痛みが伴うこともあります。

ヒープダンプを取る際は、プロダクションアプリケーションのヘルスチェックルーティンに注意して、同じものを正常に収集する必要があります。

この記事では詳細には触れませんでしたが、より詳しい情報が必要な場合は、お気軽にメッセージを送ってください。

We will continue to update VoAGI; if you have any questions or suggestions, please contact us!

Share:

Was this article helpful?

93 out of 132 found this helpful

Discover more

AI研究

「タンパク質設計の革命:ディープラーニングの改良により成功率が10倍に向上したこのAI研究」

タンパク質はほぼすべての疾患を統治するポリマー構造です。主な問題は、どのタンパク質がそれに対応するタンパク質ポリマー...

AIニュース

エロン・マスクのxAIがOpenAIのChatGPTに挑戦します

ビジョン溢れる億万長者であるイーロン・マスクは、電気自動車、宇宙探査、ソーシャルメディアなどの事業を手掛ける人物で、...

AIテクノロジー

「AIと芸術における可能性と破壊」

「人工知能は、非常にスムーズなトピックとなっています多くの人々は懐疑的でありながら楽観的でもあり、一部の人々はそれを...

AIニュース

「類推的な & ステップバック型プロンプティング:Google DeepMindの最新の進歩に潜入する」

「Google DeepMindの最新研究による2つの新しいプロンプト工学技術を探求し、アナロジカルプロンプティングとステップバック...

機械学習

モジラのコモンボイスでの音声言語認識 — Part I.

「話者の言語を特定することは、後続の音声テキスト変換のために最も困難なAIのタスクの一つですこの問題は、例えば人々が住...

機械学習

「DAE Talking 高忠実度音声駆動の話し相手生成における拡散オートエンコーダー」

今日は、新しい論文と、私が出会った中で最高品質の音声駆動ディープフェイクモデルについて話し合いますマイクロソフトリサ...