Googleは、クラウドサービスのパフォーマンス向上やコスト削減に役立つアプリケーション用プロファイリングツール「Stackdriver Profiler」の一般提供を開始した。本番環境でユーザーのコードがどのように実行されているかが分かるため、パフォーマンスの最適化やサーバ利用コストの削減に役立つ。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Googleは2019年6月27日(米国時間)、「Stackdriver Profiler」の一般提供を開始したと発表した。
Stackdriver Profilerは、「Google Cloud Platform」(GCP)サービスに含まれる「Stackdriver」シリーズのうち、監視やロギングのためのツール。ユーザーがクラウドサービスのパフォーマンスを高め、コストを削減できるように、CPUとメモリのプロファイリングを継続的に行う。
これにより、本番環境でユーザーのコードがどのように実行されているかが分かる。関数がどのように呼び出されているか、どの関数がCPUやメモリを消費しているかを把握できる。その際、ユーザーコードのパフォーマンスには目立った影響を与えない。
Stackdriver Profilerを利用する際、追加料金は必要ない。アプリケーションがどこで実行されているか(「Google Kubernetes Engine」「Google Compute Engine」を含むGCPのようなクラウドプラットフォームや、オンプレミスなど)を問わず、アプリケーションを分析できる。対応する言語はJavaやGo、Node.js、Python。
Stackdriver Profilerは、アプリケーションの全インスタンスにわたって稼働する軽量のサンプリングベースの計測器を介してデータを収集する。その後データを図のようなフレームチャートとして表示する。横軸には各関数の選択した指標(CPU時間や実測時間、メモリ使用量、競合など)を、縦軸には関数呼び出しの階層を示す。
Stackdriver Profilerは、コードのパフォーマンスの最適化やメモリリークの発生源の検出、コスト削減に役立つ。本番環境のパフォーマンスについて、他のツールでは得られない洞察を提供できる。
本番環境でプロファイラを使用した事例もあるという。例えばスロベニアEkipa2の子会社であるOutfit7 Groupでシニアソフトウェアエンジニアを務めるAnje Sodja氏は次のようにコメントした。
「当社のバックエンドチームは、Stackdriver Profilerを使用して、メモリ使用量を分析できた。App Engine Standard環境で動作するJavaのジョブが対象だ。ボトルネックを特定して修正し、1日に数回発生していたOOM(メモリ不足)エラーをほぼゼロに減らすことができた。Stackdriver Profilerによって、問題を迅速に特定できたことになる。また、ローカルのテスト環境を設定することなく、アプリケーションをクラウド内で直接プロファイルできるため、デバッグ時間を大幅に短縮できた」
米SnapのソフトウェアエンジニアであるEvan Yin氏は次のように述べている。
「サービスのスケーラビリティを改善するための取り組みの一環として、Stackdriver Profilerを使用した。このツールを使ったことで、最適化すべき部分がピンポイントで分かり、CPU時間を削減できた。これがスケーラビリティ改善に役立った」
Googleは、Stackdriver Profilerへ機能を継続的に追加している。2019年6月までの数カ月間に追加された機能は次の通り。
Copyright © ITmedia, Inc. All Rights Reserved.