K 6による新しいAWSアームCPUのテスト
8132 ワード
最近AWS made the new ARM processors for Lambda functions generally available . その変更Serverless機能は現在、低コストでより良いパフォーマンスを提供すると言われている重力2を使用します.
APIゲートウェイとラムダを使ってAWSにサンプルAPIを作りましたCPU-intensive ( Leibnizの式を使用してPIを計算する)data transfer 終了点(任意のバイト数を返す).私の実験の2つの非常に異なるエンドポイント.
私の実験の1つの厳しい制限は、私の個人的なAWSアカウントが私に50以上の予約されていない並行性を許容するということでした.しかし、洞察力を得るために大きな数字を必要としない.
テスト
私は両方のエンドポイントをx 86 .試験はほとんど同じで,ランプアップ型試験であった.CPUの集中的なもののために、私はLeibniz公式(100万分の正確な)の反復の多数を使用しました.データトランスファーは、100キロバイトを要求しました.
CPU集約テスト:
とデータ転送テスト
結果(データ転送)
データトランスファーエンドポイントのテスト結果は、私が予想していたものです.つのアーキテクチャのほとんど違いは、エンドポイントは本当にCPUをプッシュしないことを見て.
1つの興味深いことは、100 msで安定化する前に、応答時間が250 msで始まることです.これは典型的ですLambda cold start , ラムダコールドスタートは、100〜200 msの範囲内に配置されます.最初にラムダ関数をトリガーするとき、AWSは下のインフラストラクチャをスピンする必要があります.あなたのインスタンスが実行されると、すべてのあなたの以降の要求は、はるかに少ない時間がかかります.
結果( CPU負荷)
CPUの集中的なエンドポイントについては、グラフはまだ前の例と同じように急峻ではありませんが、通常の応答時間が比較において非常に大きいので、冷たいスタートを見ます.しかし、ここで興味深いことは、X 86が新しいチップよりも20 %速いことです.
結果
私がこの経験から学んだことは、AWSが腕が20 %速くて20 %安いと主張している間、私の実験の結果は、それがむしろ20 %よりゆっくりして、20 %安いと言います.これはあなたが使用するチップ命令に基づいて変化するかもしれません、Leibniz公式のこの実装はループ、割当て、追加と他の基本的な数学操作から成ります.しかし、それは他の人が同じような結果を見ていることがわかりますNarakeet .
それは悪いニュースではない.非CPUワークロードは、まだ速度トレードオフで価格から利益を得ます.腕も、より良い力を描きます.
実験はλをカバーするが,これらの知見はec 2に外挿された.
同時実行(ラムダインスタンスが同時に実行される回数)は、APIに対して実行している秒あたりのリクエスト数にほぼ等しくなります.これが時間とともに、そして、より高い荷でどのようにふるまうかについてモニターすることは面白いでしょう.
APIゲートウェイとラムダを使ってAWSにサンプルAPIを作りましたCPU-intensive ( Leibnizの式を使用してPIを計算する)data transfer 終了点(任意のバイト数を返す).私の実験の2つの非常に異なるエンドポイント.
私の実験の1つの厳しい制限は、私の個人的なAWSアカウントが私に50以上の予約されていない並行性を許容するということでした.しかし、洞察力を得るために大きな数字を必要としない.
テスト
私は両方のエンドポイントをx 86 .試験はほとんど同じで,ランプアップ型試験であった.CPUの集中的なもののために、私はLeibniz公式(100万分の正確な)の反復の多数を使用しました.データトランスファーは、100キロバイトを要求しました.
CPU集約テスト:
// Parts omitted
export const options = {
scenarios: {
x86: {
// Parts omitted
env: {
ARCH: 'x86',
ITERATIONS: '500000'
}
},
arm: {
// Parts omitted
env: {
ARCH: 'arm',
ITERATIONS: '500000'
}
}
}
}
export default function () {
// Parts omitted
url.pathname = `/pi/${__ENV.ARCH}`;
url.searchParams.append('iterations', ENV.ITERATIONS);
// Parts omitted
}
とデータ転送テスト
// Parts omitted
export const options = {
scenarios: {
x86: {
// Parts omitted
env: {
ARCH: 'x86',
COUNT: '102400'
}
},
arm: {
// Parts omitted
env: {
ARCH: 'arm',
COUNT: '102400'
}
}
}
}
export default function () {
// Parts omitted
url.pathname = `/zerobytes/${__ENV.ARCH}`;
url.searchParams.append('count', ENV.COUNT);
// Parts omitted
}
結果(データ転送)
データトランスファーエンドポイントのテスト結果は、私が予想していたものです.つのアーキテクチャのほとんど違いは、エンドポイントは本当にCPUをプッシュしないことを見て.
1つの興味深いことは、100 msで安定化する前に、応答時間が250 msで始まることです.これは典型的ですLambda cold start , ラムダコールドスタートは、100〜200 msの範囲内に配置されます.最初にラムダ関数をトリガーするとき、AWSは下のインフラストラクチャをスピンする必要があります.あなたのインスタンスが実行されると、すべてのあなたの以降の要求は、はるかに少ない時間がかかります.
結果( CPU負荷)
CPUの集中的なエンドポイントについては、グラフはまだ前の例と同じように急峻ではありませんが、通常の応答時間が比較において非常に大きいので、冷たいスタートを見ます.しかし、ここで興味深いことは、X 86が新しいチップよりも20 %速いことです.
結果
私がこの経験から学んだことは、AWSが腕が20 %速くて20 %安いと主張している間、私の実験の結果は、それがむしろ20 %よりゆっくりして、20 %安いと言います.これはあなたが使用するチップ命令に基づいて変化するかもしれません、Leibniz公式のこの実装はループ、割当て、追加と他の基本的な数学操作から成ります.しかし、それは他の人が同じような結果を見ていることがわかりますNarakeet .
それは悪いニュースではない.非CPUワークロードは、まだ速度トレードオフで価格から利益を得ます.腕も、より良い力を描きます.
実験はλをカバーするが,これらの知見はec 2に外挿された.
同時実行(ラムダインスタンスが同時に実行される回数)は、APIに対して実行している秒あたりのリクエスト数にほぼ等しくなります.これが時間とともに、そして、より高い荷でどのようにふるまうかについてモニターすることは面白いでしょう.
Reference
この問題について(K 6による新しいAWSアームCPUのテスト), 我々は、より多くの情報をここで見つけました https://dev.to/k6/testing-the-new-aws-arm-cpus-with-k6-1ffbテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol