パフォーマンスプロファイリング機能を使用して、1つのインスタンスのパフォーマンス上限、具体的には1秒あたりの最大クエリ数 (QPS) を検出できます。 パフォーマンスプロファイリング中に、ストレステストが実行されてパフォーマンスプロファイルが生成されます。これに基づいて、エンドツーエンドのレイテンシ要件を満たす最適なインスタンス仕様と同時実行設定を取得できます。 このトピックでは、Function Computeコンソールでパフォーマンスプロファイリングを実行し、プロファイリング結果を表示する方法について説明します。
制限事項
ストレステストは、一度に1つのインスタンスに対してのみ実行できます。
ストレステストはGPU関数ではサポートされていません。
課金
パフォーマンスプロファイリング機能は課金されません。 ただし、通常の関数呼び出し要求と同じ方法で、ストレステスト中に生成された関数呼び出し要求に対して課金されます。 ストレステストタスクを作成するたびに、推定料金がページに表示されます。 リクエストの課金については、「課金の概要」をご参照ください。
前提条件
テストする関数が作成されます。 詳細については、「関数の作成」をご参照ください。
Alibaba Cloudパフォーマンステスト (PTS) が有効化され、サービスにリンクされたロールAliyunServiceRoleForPtsが作成されます。 詳細については、「パフォーマンステスト」をご参照ください。.
手順
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
On theパフォーマンスプロファイリング機能の詳細ページのタブをクリックし、ストレステストの作成タスク.
単一インスタンスのストレステストステップでストレステストを実行するをクリックする前に、ストレステストAPIに関する必要な情報を入力します。
重要[ストレステストの実行] をクリックする前に、[テストAPI] をクリックして、関数が期待どおりに実行できるかどうかをテストします。 関数の実行テストが失敗した場合、ストレステストは期待どおりに実行できません。 したがって、ストレステストを開始する前に、関数コードが正しく、ストレステストAPIのHTTPリクエストパラメーターが正しく設定されていることを確認してください。
下表に、各パラメーターを説明します。
パラメーター
説明
ストレステスト機能
ストレステストを実行する関数。 デフォルトでは、現在の関数が選択されています。 このパラメーターの値は変更できません。
テストドメイン
ストレステストの実行に使用されるテストドメイン名。 関数のHTTPトリガーが作成されていることを確認します。 それ以外の場合は、APIをテストできません。
関数のどのバージョンに対してもHTTPトリガーが作成されていない場合は、[HTTPトリガーの作成] をクリックします。 [HTTPトリガーの作成] パネルで、パラメーターのデフォルト値を保持し、[OK] をクリックします。
関数仕様
関数の仕様。 ストレステストの期間は、指定した仕様の数に応じて増加します。 カスタムvCPUとメモリの仕様を指定できます。
推定コスト
ストレステスト中に生成された関数呼び出しの推定料金。 料金はシステムによって自動的に計算されます。
説明この推定料金には、関数呼び出しの料金のみが含まれます。 機能がデータベースなどの他のサービスを使用する場合、追加料金が発生する可能性があります。
ストレステスト方法
関数をトリガーするメソッド。The method to trigger the function. オプション: GET、POST、PUT、およびDELETE。
ストレステスト経路
HTTPリクエストのパス。
最大許容エンドツーエンド遅延
最大許容可能なエンドツーエンドのレイテンシ。 テスト後、Function Computeは、Maximum Tolerable End-to-end LatencyとExpected QPSの値に基づいて、最適なインスタンス仕様と同時実行設定を推奨します。 最適な同時実行設定は、カスタムランタイムで実行される関数にのみ推奨されます。
Maximum Tolerable End-to-End LatencyおよびExpected QPSパラメーターの少なくとも1つを指定する必要があります。
予想されるQPS
関数のシングルインスタンスのスループット。 テスト後、Function Computeは、Maximum Tolerable End-to-end LatencyとExpected QPSの値に基づいて、最適なインスタンス仕様と同時実行設定を推奨します。 最適な同時実行設定は、カスタムランタイムで実行される関数にのみ推奨されます。
Maximum Tolerable End-to-End LatencyおよびExpected QPSパラメーターの少なくとも1つを指定する必要があります。
単一インスタンスストレステストの結果分析ステップで、ストレステストの結果を表示します。
ストレステスト中に、ストレステストの推定完了時間が表示されます。 ストレステストの期間とコストは、指定した仕様の数に応じて増加します。
ストレステストが完了すると、開始時刻、終了時刻、期間、ステータス、エンドツーエンドのレイテンシ、およびシングルインスタンスのスループットなどの情報が表示されます。
ストレステストの結果には、推奨されるインスタンス仕様と同時実行設定が含まれます。 最適な同時実行設定は、カスタムランタイムで実行される関数にのみ推奨されます。 ストレステストの結果の下のグラフで分析プロセスを表示することもできます。 次の図は、さまざまなインスタンス仕様でのQPSと応答時間 (RT) の変動と、推奨されるインスタンス仕様に基づいて同時実行性を高めることによって発生するシフトを示しています。
説明Function Computeでは、一度に1つのインスタンスに対してのみストレステストを実行できます。 複数のインスタンスでストレステストを実行する場合は、[単一インスタンスのストレステストの結果分析] ページの右側にある [マルチインスタンスのストレステスト] をクリックして、PTSコンソールに移動します。
[シングルインスタンスのストレステストの詳細の表示] をクリックして [シングルインスタンスのストレステストの詳細データ] ステップに移動し、各仕様のストレステストの詳細を表示します。 各仕様のストレステストの詳細では、並行性の増加に伴うレイテンシと最大QPSの変化を確認できます。
説明非カスタムランタイムで実行される関数の場合、同時実行値を調整できないため、詳細はグラフではなくテキストで表示されます。
よくある質問
ストレステストの結果で推奨される最適な仕様と並行性は絶対に正確ですか?
各ストレステストの推奨される同時実行性と仕様値は、異なる仕様の関数のパフォーマンスを評価するための基準として役立ちます。 しかしながら、これらの値は絶対に正確ではない。 ビジネス要件に基づいて、最適な仕様と同時実行設定を選択できます。
より高い精度の結果を取得したい場合は、複数のストレステストタスクを送信し、平均推奨値を使用できます。
ストレステストが失敗したり、リクエストエラーが頻繁に発生した場合はどうすればよいですか?
ストレステストが失敗したことを示すエラーメッセージが返された場合は、エラーの原因に基づいてストレステストAPIの設定を確認します。