9
7

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 5 years have passed since last update.

AWS LambdaのCPUを見てみる

Last updated at Posted at 2017-12-17

昔は使えなかったんですが、いつの間にかmultiprocessingモジュールがサポートされていますね。

さて、とあるサービスの速度改善でシリアル処理をパラレルにしてみたのですが、殆ど改善が見られませんでした。
プロセス起動周りでオーバーヘッドが増えたりして、改善できたかと言えば微妙な結果、、

FAQには

AWS Lambda のリソースモデルでは、お客様が関数に必要なメモリ量を指定するとそれに比例した CPU パワーとその他のリソースが割り当てられます。たとえば、256 MB のメモリを指定すると約 2 倍の CPU パワーが Lambda 関数に割り当てられます。128 MB のメモリを指定した場合と比較すると CPU パワーは倍となり、512 MB のメモリを指定した場合と比較すると半分になります。メモリは 128 MB から 3 GB まで、64 MB ごとに増加できます。

とあるのですが、ある一定のところまではメモリ増やして改善したのですが、それ以降はどうも改善せず。。
ということで、メモリを128MB、3008MBにして、それぞれ以下のコードをPython3.6ランタイムで実行してみました。

import os
import multiprocessing

def lambda_handler(event, context):
    print(os.cpu_count())
    print(len(os.sched_getaffinity(0)))
    print(multiprocessing.cpu_count())
    return 

結果はこちら。

  • 128MB

Function Logs:
START RequestId: b65302db-e2b9-11e7-b501-371c5856c559 Version: $LATEST
2
2
2
END RequestId: b65302db-e2b9-11e7-b501-371c5856c559
REPORT RequestId: b65302db-e2b9-11e7-b501-371c5856c559 Duration: 0.27 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 23 MB

  • 3008MB

Function Logs:
START RequestId: a9ce5c14-e2b9-11e7-b543-f9c99b5b752f Version: $LATEST
2
2
2
END RequestId: a9ce5c14-e2b9-11e7-b543-f9c99b5b752f
REPORT RequestId: a9ce5c14-e2b9-11e7-b543-f9c99b5b752f Duration: 15.75 ms Billed Duration: 100 ms Memory Size: 3008 MB Max Memory Used: 26 MB

一緒すね(´・ω・`)

今度は以下のソースを実行

import subprocess
    
def lambda_handler(event, context):
    output = subprocess.run(['cat','/proc/cpuinfo'], check=True, stdout=subprocess.PIPE).stdout
    print(output.decode('utf8'))
    return
  • 128MB

Function Logs:
START RequestId: 844d00c4-e2bb-11e7-89f4-eb5f7d799335 Version: $LATEST
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
stepping : 4
microcode : 0x42a
cpu MHz : 2793.168
cache size : 25600 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase smep erms xsaveopt
bugs :
bogomips : 5586.69
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 62
model name : Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
stepping : 4
microcode : 0x42a
cpu MHz : 2793.168
cache size : 25600 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm fsgsbase smep erms xsaveopt
bugs :
bogomips : 5586.69
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

END RequestId: 844d00c4-e2bb-11e7-89f4-eb5f7d799335
REPORT RequestId: 844d00c4-e2bb-11e7-89f4-eb5f7d799335 Duration: 10.90 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 23 MB

  • 3008MB

Function Logs:
START RequestId: af26164d-e2bb-11e7-8023-c7679992e57f Version: $LATEST
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
stepping : 2
microcode : 0x3b
cpu MHz : 2899.936
cache size : 25600 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs :
bogomips : 5800.06
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 63
model name : Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz
stepping : 2
microcode : 0x3b
cpu MHz : 2899.936
cache size : 25600 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 1
apicid : 1
initial apicid : 1
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx pdpe1gb rdtscp lm constant_tsc rep_good nopl xtopology eagerfpu pni pclmulqdq ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand hypervisor lahf_lm abm fsgsbase bmi1 avx2 smep bmi2 erms invpcid xsaveopt
bugs :
bogomips : 5800.06
clflush size : 64
cache_alignment : 64
address sizes : 46 bits physical, 48 bits virtual
power management:

END RequestId: af26164d-e2bb-11e7-8023-c7679992e57f
REPORT RequestId: af26164d-e2bb-11e7-8023-c7679992e57f Duration: 5.96 ms Billed Duration: 100 ms Memory Size: 3008 MB Max Memory Used: 25 MB

残念、、予想通りではありますが、どちらもcpu_coreは1ですね。並列処理にはそりゃ効かないか。
ただCPUパワーはどれほど上がるのか、、と期待しましたけども、model nameでは

Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
Intel(R) Xeon(R) CPU E5-2666 v3 @ 2.90GHz

と、それほど差を感じない結果。

ちなみに上記のCPUモデルが変わるのは1536MBと1600MBが境界みたいです。

多分vCPUは変わってるんでしょうが、コア数が変わらなければ並列処理に速度改善はそれほど望めない、という感じな結果でした。残念!

9
7
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
9
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?