先日、Amazon EC2のm1.smallは時分割によるCPUの配分が行われていることを確認したのですが、それでは、より小さなインスタンスであるt1.microでは、どのようにCPUを割り当てられているのでしょうか。
前提知識
EC2のインスタンスタイプの解説では、m1.smallはCPUの性能が1ECU、t1.microは2ECUだけど短時間しか維持できないという風に説明されています。t1.microは、m1.smallの4分の1程度の値段設定なので、最大2ECUとはいえ、かなりおおきな制約(短時間?)が課されていると推定できます。どのような制約が課されているのかを確認し、t1.microの性能特性を調査します。
公式情報
m1.small 1 EC2 Compute Unit (1 virtual core with 1 EC2 Compute Unit)
t1.micro Up to 2 EC2 Compute Units (for short periodic bursts)
検証に使ったプログラム(前回と同一)
ループの処理速度を測定するだけのシンプルなプログラムで性能測定しました。どちらもIntelのCPUを使った仮想環境なので、傾向はつかめるはずです。
実行結果(短時間)
1秒未満の処理に関しては、t1.microの方が速いという結果がでました。縦軸が経過時間、横軸が処理回数です。m1.smallの方がグラフが増えに伸びており、処理に時間がかかっていることが分かります。前回の調査と同様に、定期的にCPUの割当が外されていることが分かります。
性能特性(2分程度)
20秒程度までは一気に処理が進むが、その後の80秒はほとんど停止状態に陥った。100秒以降は元の性能に回復した。
まとめ
t1.microは高い負荷が連続すると、一定時間経過後、極端に性能が低下する。負荷が高い時に性能が落ちるのは、システムとして最悪である。実は本ブログもt1.microで運用していた時期があるのだが、アクセスが集中するとサーバが固まってしまうという自体に何度か遭遇した。t1.microに負荷を掛けすぎると処理を受け付けてもらえなくようになる場合があると漠然と思っていたのだが、今回の調査を通して、非常に重くなった状態でも最低限の動作は続いていることが判明した。負荷が上がり切る前に、スケールアウトするように設定しておけば安心なのだが、Wordpressを使っている都合上、スケールアウトは難しい。費用はかかるがm1.smallで運用していこうと思う。
おまけ
当てになるのか怪しいけど、/proc/cpuinfoを掲載しておく。
m1.smallインスタンスのcpuinfo
クロックダウンして運用しているようだ。今回の調査でt1.microよりも性能が低かったのはクロックダウンの影響が大きそうだ。EC2のサービス運用開始時に定めた性能値(1ECUは1.0-1.2 GHz 2007 Opteron または 2007 Xeon プロセッサの CPU能力に等しい能力)に合わせて性能を調整しているのだと思う。
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Xeon(R) CPU E5645 @ 2.40GHz
stepping : 2
cpu MHz : 2000.070
cache size : 12288 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 11
wp : yes
flags : fpu de tsc msr pae cx8 sep cmov pat clflush mmx fxsr sse sse2 ss ht nx constant_tsc up nonstop_tsc pni pclmulqdq ssse3 sse4_1 sse4_2 popcnt aes hypervisor
bogomips : 4000.14
clflush size : 64
cache_alignment : 64
address sizes : 40 bits physical, 48 bits virtual
power management:
t1.microインスタンスのcpuinfo
t1.microは、ほぼ仕様通りの2.66GHzで動作している。
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5430 @ 2.66GHz
stepping : 10
cpu MHz : 2659.994
cache size : 6144 KB
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe nx lm constant_tsc up arch_perfmon pebs bts aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm tpr_shadow vnmi flexpriority
bogomips : 5319.98
clflush size : 64
cache_alignment : 64
address sizes : 38 bits physical, 48 bits virtual
power management:


[...] « EC2 t1.microインスタンスの性能特性 AmazonEC2(Tokyo) ハードウェア調査結果 Categories: Uncategorized Tuesday, February 7th, 2012 by admin [...]