10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AWS Lambdaのコア数を確認

Posted at

2020年12月01日以降、
Lambdaで以下のアップデートが行われたことが発表されました。
・メモリ上限を10240MB(10GB)に拡大(従来は3008MB)
・vCPU数を上限6に拡大
・コンテナイメージのサポート

AWS Lambda now supports up to 10 GB of memory and 6 vCPU cores for Lambda Functions
AWS Lambda の新機能 – コンテナイメージのサポート

上記アップデートのうち、Lambdaで取り扱われるvCPUについて
Lambda内でCPU情報を取得し、どのようになっているか確認しました。

確認方法

コードはたったの5行です。
egrepで/proc/cpuinfo 内を検索してます。

import subprocess

def lambda_handler(event, context):
    output = subprocess.run(['egrep','"|model name|processor|cpu family|model|physical id|core id|cpu cores|^$"','/proc/cpuinfo'], check=True, stdout=subprocess.PIPE).stdout
stdout=subprocess.PIPE).stdout
    res = output.decode('utf8')
    print(res)

【解説】
model name : CPUの名称
processor : プロセッサ番号
cup family : CPUファミリー番号
model : CPUのモデル番号
physical id : 物理番号(CPUソケットの数)
core id : CPUコアの番号
cpu cores : CPUコア数の合計

##CPU取得の取得結果
CPU情報を取得した結果の一部を掲載。
※色分けは単に見やすくするため

赤枠で囲った部分(Lambdaのメモリが0.5GB)に注目 ####

image.png

  • processorとcore idが同一になっている

  • physical id が0だから、ソケット数は1コ

  • 以上で1コアに対して1プロセス、つまり1コア1スレッド(1C1T)と判定可能
    ※core id が2行とも0だった場合は、1コアに対して2プロセス、つまり1コア2スレッド(1C2T) になる

  • さらにcpu coresが2であるため、メモリ0.5GB時のCPUは2C2Tと判断できる。

  • メモリ3GB(背景緑色部分)では、3C3Tになっていることがわかる。

上記の内容を、メモリ10GBまで確認しました。

Xeonのうち、どのCPUか?

赤枠部分では、CPUの型番などがわかる。
Lambdaでは、下記CPUが動作している模様。※10GBまで同じ結果でした
image.png

・ブランドはXeon
・ベースクロックは2.50GHz
・モデル番号(model)は63
・CPU族(cpu family)は6

ちなみに、下記サイトでcpu family 6 と model 63 で 検索したところ、
XeonのE、EPシリーズがヒット。
WikiChip

さらにググったところ、これっぽいことが判明。
Intel® Xeon® Processor E5-2680 v3
Haswell世代なので、Coreシリーズ(i3,i5,i7)の4000番台。2014年とかそのあたり。
AWSが使っているサーバをAMDのEPYCに更新して、余ったサーバが割り当てられているのかな???

##結論
最低2C2Tから始まり、最高で6C6Tになっていることがわかった。
確かにvCPU数が6まで拡大している。
image.png

##所感
確かにvCPUは6まで増加しているが、Lambdaはコンテナ内で動いているため、
実際の物理CPUがどう割り当てられているかは不明です。
仮にハイパースレッディングが有効であるなら
物理1コア = 2スレッドのため、次のようになります

2C2T = 物理CPU1コア
6C6T = 物理CPU3コア

AVX2もサポートされたとはいえ、以下の2点
・MAXでも物理3コア
・ベースクロックが2.5GHz(MAX 3.3GHz)と小さい
を考慮すると、
そこまでCPUパワーに依存しない処理に使うことが適切と思われます。

##参考
以下の記事を参考にさせていただきました。
試験運用中なLinux備忘録・旧記事
AWS LambdaのCPUを見てみる

10
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?