はじめに
いままでLambdaのエフェメラルストレージ(以下/tmp)は512MBまでだったが、2022年3月24日から10GBまで拡張できるようになった。
そこで512MBと10GBでディスクの読み書きスペックに違いがあるかを確認してみた。
結論から
/tmpサイズ増減によるディスク読書速度は変化は見られない。
Lambdaメモリを増やすとディスク読書速度は大幅に向上する。
ファイル読み書きサイズが大きい処理ならばLambdaメモリは大きくする。
計測方式
ddコマンドによる簡易的な計測
Amazon linux2からddコマンドコピーおよびzipファイルにしてLambda Layerに登録。
tmp領域のサイズによって書き込みサイズを変化させる。
512MBの場合 448MB書き込み = bs=64K count=7k
10240MBの場合 9600MB書き込み = bs=64K count=150k
lambda_handler.py
import subprocess
def lambda_handler(event, context):
out = subprocess.run(["df", "-h"])
print(out)
print("書き込み速度")
out = subprocess.run(['dd', "if=/dev/zero","of=/tmp/benchmark", "bs=64K", "count=150k", "conv=fdatasync"])
print(out)
print("読み込み速度")
out = subprocess.run(['dd', "if=/tmp/benchmark","of=/dev/null"])
print(out)
計測結果
多少ばらつきはあるが概ねエフェラメルストレージサイズによる変化はないように見える。
10GBメモリだとSSD並に速度が出ている。
エフェメラルストレージ(MB) | Lambdaメモリ(MB) | 読み込み速度 | 書き込み速度 |
---|---|---|---|
512 | 128 | 21.3 MB/s | 74.1 MB/s |
256 | 96.3 MB/s | 150 MB/s | |
512 | 263 MB/s | 226 MB/s | |
1024 | 491 MB/s | 435 MB/s | |
10240 | 921 MB/s | 520 MB/s |
エフェメラルストレージ(MB) | Lambdaメモリ(MB) | 読み込み速度 | 書き込み速度 |
---|---|---|---|
10240 | 128 | 31.5 MB/s | 33.9 MB/s |
256 | 31.6 MB/s | 40.0 MB/s | |
512 | 32.9 MB/s | 50.3 MB/s | |
1024 | 53.2 MB/s | 69.1 MB/s | |
10240 | 376 MB/s | 615 MB/s |