Best Practices for Benchmarking and Performance Analysis in the Cloud (ENT305) | AWS re:Invent 2013

Amazon Web Services
Amazon Web ServicesAmazon Web Services
Best Practices for Benchmarking and
Performance Analysis in the Cloud
Robert Barnes, Amazon Web Services
November 15, 2013

© 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
Benchmarks: Measurement Demo
4
How many
ways to
measure?

6
3

At least 20…
4
3
Cloud Benchmarks: Prequel
•
•
•
•
•

The best benchmark
Absolute vs. relative measures
Fixed time or fixed work
What’s different?
Use a good AMI
Average CPU result
CentOS 5.4 ami-…
CentOS 5.4 ami-…
CentOS 5.4 ami-…
AWS CentOS 5.4 ami-…
Ubuntu 12.4 ami-…
0.00 5.00 10.0015.0020.0025.0030.00

Coefficient of Variance
60%
50%
40%
30%
20%

10%
0%
Scenario: CPU-based Instance Selection
•
•
•
•
1.
2.
3.
4.

Application runs on premises
Primary requirement is integer CPU performance
Application is complex to set up, no benchmark tests exist, limited time
What instance would work best?
Choose a synthetic benchmark
Baseline: Build, configure, tune, and run it on premises
Run the same test (or tests) on a set of instance types
Use results from the instance tests to choose the best match
Testing CPU
• Choose a benchmark
– geekbench, UnixBench, sysbench(cpu), and SPEC CPU2006
Integer

• How do you know when you have a good result?
• Tests run on 9 instance types
– 10 instances of each of the 9 types launched
– Tests run a minimum of 4 times on each instance
– Ubuntu 13.04 base AMI
geekbench Overview
• Workloads in 3 categories
– 13 Integer tests
– 10 Floating Point tests
– 4 Memory tests

•
•
•
•

Integer
AES
Twofish
SHA1

SHA2
BZip2 compress
BZip2 decompress
JPEG compress
JPEG decompress
PNG compress

Commercial product (64bit)
No source code
Runs single and multi-cpu
Fast setup, fast runtime

PNG decompress
Sobel
LUA
Dijkstra
Memory

STREAM copy
STREAM scale
STREAM add
STREAM triad

Floating Point
Black-Scholes
Mandelbrot
Sharpen image
Blur image
SGEMM
DGEMM
SFFT

DFFT
N-Body
Ray trace
geekbench Script
SEQNO=$1
GBTXT=gbtest.txt
DL=+
ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`"
TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`”
OUTID=$ID$DL$TYPE$DL
START=$(date +%s.%N)
./geekbench_x86_64 --no-upload >$GBTXT
END=$(date +%s.%N)
DIFF=$(echo "$END - $START" | bc)
OUTNAME=$OUTID$SEQNO$DL$DIFF$DL$GBTXT
mv $GBTXT $OUTNAME
…
grep “Geekbench Score” i-*$GBTXT >gbresults.txt
cat gbresults.txt | sed s/:// | awk ‘/i-/ {print $1”;”$4”;”$5}’>gbresults.csv
geekbench
Geekbench
1CPU ratio C.O.V.
m3.xlarge
m3.2xlarge
m2.xlarge
m2.2xlarge
m2.4xlarge
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

NCPU ratio C.O.V.

0.93
0.93
0.80
0.80
0.76
1.13
1.13
1.13
1.00

2.04
3.80
1.54
2.82
5.11
1.32
2.51
4.88
15.46

1.04%
1.40%
2.84%
1.34%
2.28%
0.93%
0.39%
0.19%
0.71%

2.31%
1.46%
4.06%
1.21%
1.71%
0.71%
1.81%
0.25%
1.93%

RT (min)
2.06
2.08
1.99
2.04
2.01
1.76
1.74
1.70
2.21
geekbench – Run Variance
geekbench 1CPU ratio
m3.xlarge
instance-1
instance-2
instance-3
instance-4
instance-5
instance-6
instance-7
instance-8
instance-9
instance-10

0.93
0.97
0.94
0.94
0.94
0.94
0.93
0.93
0.94
0.94

C.O.V.

0.31%
0.23%
0.17%
0.10%
0.32%
0.10%
0.25%
0.38%
0.11%
0.09%
geekbench – Integer Portion
gb-integer 1CPU ratio

C.O.V.

NCPU ratio

C.O.V.

RT (min)

c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

1.12
1.13
1.12
1.00

0.50%
0.38%
0.38%
0.20%

1.37
2.72
5.35
17.88

0.43%
0.41%
0.51%
3.31%

NA
NA
NA
NA

geekbench
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

1.13
1.13
1.13
1.00

0.93%
0.39%
0.19%
0.71%

1.32
2.51
4.88
15.46

0.71%
1.81%
0.25%
1.93%

1.76
1.74
1.70
2.21
UnixBench Overview
• Default: the BYTE Index
– 12 workloads, run 2 times (roughly 29 minutes each time)
•
•
•
•

Integer computation
Floating point computation
System calls
File system calls

– Geomean Of results to a baseline produces a system benchmarks
index score

• Open source – must be built
– Must be patched for > 16 CPUs
11
UnixBench Script
SEQNO=$1
UBTXT=ubtest.txt
DL=+
ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`"
TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`"
FN=$ID$DL$TYPE$DL$SEQNO$DL$UBTXT
COPIES=`cat /proc/cpuinfo | grep processor | wc –l`
./Run –c 1 –c $COPIES >$FN
…
grep “System Benchmarks Index Score” i-*$UBTXT >ubresults.txt
cat ubresults.txt | sed s/”.txt:System Benchmarks Index Score”// | 
awk ‘/i-/ {print $1”;”$2}’>ubresults.csv
UnixBench
UnixBench 1CPU ratio
m3.xlarge
m3.2xlarge
m2.xlarge
m2.2xlarge
m2.4xlarge
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

1.38
1.42
0.40
0.42
0.48
1.10
1.06
1.10
1.00

C.O.V.
1.90%
1.85%
5.82%
1.71%
3.31%
1.33%
1.48%
0.54%
2.97%

NCPU ratio
2.49
4.21
0.76
1.23
2.02
1.91
2.85
4.50
6.44

C.O.V.
1.36%
1.99%
1.28%
1.75%
1.71%
1.54%
1.26%
1.02%
2.65%

RT (min)
28.25
28.29
28.30
28.32
28.34
28.17
28.21
28.96
30.20
UnixBench – Dhrystone 2
UB-Integer 1CPU ratio
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarg
e
UnixBench
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarg
e

C.O.V.

NCPU ratio

C.O.V.

RT (min)

1.05
1.05
1.05

0.24%
0.27%
0.07%

1.10
2.20
4.34

0.30%
0.28%
0.23%

0.17
0.17
0.17

1.00

0.10%

15.54

0.95%

0.17

1.10
1.06
1.10

1.33%
1.48%
0.54%

1.91
2.85
4.50

1.54%
1.26%
1.02%

28.17
28.21
28.96

1.00

2.97%

6.44

2.65%

30.20
SPEC CPU2006 Overview
•
•
•
•
•
•

Competitive (reviewed)
Commercial (site) license required
Source code provided, must be built
Highly customizable
Full “reportable” run 5+ hours
Published results on www.spec.org
SPEC CPU2006 Overview
Benchmark
400.perlbench
401.bzip2
403.gcc
429.mcf
445.gobmk
456.hmmer
458.sjeng
462.libquantum
464.h264ref
471.omnetpp
473.astar
483.xalancbmk

Category
C
Programming language
C
Compression
C
C compiler
C
Combinatorial optimization
C
Artificial intelligence
C
Search gene sequence
C
Artificial intelligence
C
Physics / quantum computing
C
Video compression
C++ Discrete event simulation
C++ Path-finding algorithms
C++ Xml processing
SPEC CPU2006 Integer Script
CPATH=“/cpu2006/result”
COPIES=`cat /proc/cpuinfo | grep processor | wc –l`
SITXT=estspecint.txt
DL=+
ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`”
TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`”
FN=$ID$DL$TYPE$DL$SEQNO$DL$SITXT
runspec –noreportable –tune=base –size=ref –rate=$COPIES –iterations=1 /
400 403 445 456 458 462 464 471 473 483
grep “_base” $CPATH/CINT*.ref.csv | cut -d, -f1-2 > $FN
grep “total seconds elapsed” $CPATH/CPU*.log | awk '/finished/ {print $9}’ >>$FN
Estimated SPEC CPU2006 Integer
Est.
SPECint
m3.xlarge
m3.2xlarge
m2.xlarge
m2.2xlarge
m2.4xlarge
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

1CPU ratio
1.01
1.01
0.76
0.79
0.78
1.11
1.10
1.08
1.00

C.O.V.
1.06%
1.67%
1.97%
0.94%
0.16%
1.95%
1.96%
0.87%
0.29%

RT (min)
54.39
54.49
70.83
68.85
68.73
50.00
50.29
50.87
54.92

NCPU
ratio
2.24
4.25
1.39
2.76
5.21
1.25
2.39
4.67
14.92

C.O.V.
1.15%
1.63%
2.45%
1.24%
1.26%
1.47%
1.28%
0.25%
0.52%

RT (min)
104.18
109.22
85.37
85.42
89.91
94.22
97.66
100.22
125.74
Sysbench Overview
• Designed as quick system test of MySQL servers
• Test categories
–
–
–
–
–
–

Fileio
Cpu
Memory
Threads
Mutex
oltp

• Source code provided, must be built
• Very simplistic defaults – tuning recommended
Sysbench Script
COPIES=`cat /proc/cpuinfo | grep processor | wc –l`
TDS=$(($COPIES * 2))
STXT=sysbenchcpu.txt
DL=+
ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`”
TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`”
FN=$ID$DL$TYPE$DL$TDS$DL$STXT
sysbench –num-threads=$TDS --max-requests=30000 --test=cpu /
--cpu-max-prime=100000 run > $FN
grep “total time:” i-*$STXT| cut -d, -f1-2 > $FN
Sysbench – CPU
sysbench

m3.xlarge
m3.2xlarge
m2.xlarge
m2.2xlarge
m2.4xlarge
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

Default

3.21
6.41
1.59
3.19
8.83
1.78
3.55
6.55
25.34

C.O.V.

1.44%
1.38%
0.75%
0.64%
0.62%
0.26%
0.53%
8.45%
2.30%

RT (min) tuned ratio

0.06
0.03
0.11
0.06
0.02
0.10
0.05
0.03
0.01

1.69
3.38
0.80
1.60
4.71
0.91
1.83
3.54
13.69

C.O.V.

1.29%
1.41%
0.23%
0.76%
0.20%
0.09%
0.02%
3.31%
1.10%

RT (min)

3.86
1.93
8.16
4.07
1.38
7.13
3.57
1.85
0.48
Summary: CPU Comparison
GB

GB
Int

UB

UB
Int

Est.
SPECInt

sysbench
default

sysbench
tuned

m3.xlarge

2.04

2.01

2.49

1.88

2.24

3.21

1.69

m3.2xlarge

3.80

3.96

4.21

3.77

4.25

6.41

3.38

m2.xlarge

1.54

1.52

0.76

1.59

1.38

1.59

0.80

m2.2xlarge

2.82

3.02

1.23

3.19

2.76

3.19

1.60

m2.4xlarge

5.11

5.54

2.02

6.48

5.21

8.83

4.71

c3.large

1.32

1.37

1.91

1.10

1.25

1.78

0.91

c3.xlarge

2.51

2.72

2.85

2.20

2.39

3.55

1.83

c3.2xlarge

4.88

5.35

4.50

4.34

4.67

6.55

3.54

15.46 17.88

6.44

15.5
4

14.92

25.34

13.69

cc2.8xlarge
Scenario: Memory Instance Selection
• Application runs on premises
• Primary requirement: memory throughput of 20K MB/sec
• What instance would work best?

1.
2.
3.
4.

Choose a synthetic benchmark
Baseline: Build, configure, tune, and run it on premises
Run the same test (or tests) on a set of instance types
Use results from the instance tests to choose the best match
Testing Memory
• Choose a benchmark:
– stream, geekbench, sysbench(memory)

• How do you know when you have a good result?
• Tests run on 9 instance types
– Minimum of 10 instances launched
– Tests run a minimum of 3 times on each instance
– Ubuntu 13.04 base AMI
Stream* Overview
• Synthetic measure sustainable memory bandwidth
–
–
–
–

Published results at www.cs.virginia.edu/stream/top20/Bandwidth.html
Must be built
By default, runs 1 thread per cpu
Use stream-scaling to automate array size and thread scaling
• https://github.com/gregs1104/stream-scaling

name kernel
COPY: a(i) = b(i)
SCALE: a(i) = q*b(i)
SUM: a(i) = b(i) + c(i)
TRIAD: a(i) = b(i) + q*c(i)

bytes FLOPS
iter
iter
16
0
16
1
24
1
24
2

* McCalpin, John D.: "STREAM: Sustainable Memory Bandwidth in High Performance Computers",
Memory Scripts
TDS=`cat /proc/cpuinfo | grep processor | wc –l`
export OMP_NUM_THREADS= $TDS
MTXT=stream.txt
DL=+
ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`”
TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`”
FN=$ID$DL$TYPE$DL$TDS$DL$MTXT
./stream | egrep 
"Number of Threads requested|Function|Triad|Failed|Expected|Observed" > $FN
MTXT=sysbench-mem.txt
FN=$ID$DL$TYPE$DL$TDS$DL$MTXT
./sysbench --num-threads=$TDS --test=memory run >$FN
Memory Comparison
StreamTriad
m3.xlarge
m3.2xlarge
m2.xlarge
m2.2xlarge
m2.4xlarge
c3.large
c3.xlarge
c3.2xlarge
cc2.8xlarge

23640.56
26046.17
18766.58
22421.91
19634.50
11434.83
21141.30
30235.78
55200.86

Geekbench
sysbench
Memory-Triad (default)
15375.64
14999.27
17365.76
17600.00
14405.82
9967.96
13972.65
20657.49
37067.32

302.95
603.40
528.16
1019.08
1576.30
2116.84
2643.33
2944.91
1195.90

sysbench memory defaults
--memory-block-size [1K]
--memory-total-size [100G]
--memory-scope {global,local} [global]
--memory-hugetlb [off]
--memory-oper {read, write, none} [write]
--memory-access-mode {seq,rnd} [seq]
Testing Disk I/O
• Storage options:
–
–
–
–

Amazon EBS
Amazon EBS PIOPs
Ephemeral
hi1.4xlarge local storage

• Test parameters:
–
–
–
–
–

Read %
Write %
Sequential
Random
Queue depth

• Storage configuration
– Volume(s)
– RAID
– LVM

• I/O metrics
– IOPs
– Throughput
– Latency
Benchmarking PIOPs
1200

Launch an Amazon EBS-optimized
instance

•

Create provisioned IOPS volumes

•

Attach the volumes to Amazon
EBS-optimized instance

•

Pre-warm volumes

•

Tune queue depth and latency
against IOPs

PIOPs 2K Queue Depth

1D PIOPS 2K
QD2
2D PIOPS 2K
2D PIOPS 2K
QD2

1000

Latency (usec)

•

1D PIOPS 2K

800

600

400

200

0
Seq.
Read

Seq.
Write

Mixed
Seq
Read

Mixed
Seq
Write

Rand
Read

Rand
Write

Mixed
Rand
Read

Mixed
Rand
Write
Testing Disk I/O Examples
• disk copy
• cp file1 /disk1/file1
• dd
• dd if=/dev/zero of=/data1/testile1 
bs=1048 count=1024000
• fio – flexible io tester
• fio simple.cfg

•
•
•
•
•
•
•

[global]
clocksource=cpu
randrepeat=0
ioengine=libaio
direct=1
group_reporting
size=1G

•
•
•
•
•
•
•
•

[xvdd-fill]
filename=/data1/testfile1
refill_buffers
scramble_buffers=1
iodepth=4
rw=write
bs=2m
stonewall

•
•
•
•
•
•
•
•
•
•

[xvdd-1disk-write-1k-1]
time_based
ioscheduler=deadline
iodepth=1
rate_iops=4080
ramp_time=10
filename=/data1/testfile1
runtime=30
bs=1k
rw=write
Summary Disk I/O
Seconds MB/sec

cp f1 f2

17.248

59.37

rm –rf f2; cp f1 f2

.853 1200.47

cp f1 f3

.880 1164.96

dd if=/dev/zero bs=1048 count=1024000 of=d1

.722 1419.01

dd if=/dev/urandom bs=1048 count=1024000 of=d2

fio simple.cfg

79.710

12.84

NA

61.55
Beyond Simple Disk I/O

Random PIOPs 16disk
1M I/O MBps
read

1006.73

write

904.03

r70w30

1005.91
Summary
If benchmarking your application is not practical, synthetic
benchmarks can be used if you are careful.

•
•
•
•
•

Choose the best benchmark that represents your application
Analysis – what does “best” mean?
Run enough tests to quantify variability
Baseline – what is a “good result” ?
Samples – keep all of your results – more is better!
Please give us your feedback on this
presentation

ENT305
As a thank you, we will select prize
winners daily for completed surveys!
1 of 34

Recommended

Pythonはどうやってlen関数で長さを手にいれているの? by
Pythonはどうやってlen関数で長さを手にいれているの?Pythonはどうやってlen関数で長さを手にいれているの?
Pythonはどうやってlen関数で長さを手にいれているの?Takayuki Shimizukawa
38.1K views56 slides
MAYAで作ったアニメーションをUnityに取り込んで動かしてみるの巻 by
MAYAで作ったアニメーションをUnityに取り込んで動かしてみるの巻MAYAで作ったアニメーションをUnityに取り込んで動かしてみるの巻
MAYAで作ったアニメーションをUnityに取り込んで動かしてみるの巻poko ponmaru
3.9K views55 slides
Unityで音を制す by
Unityで音を制すUnityで音を制す
Unityで音を制すCRI Middleware
2.8K views56 slides
SharePoint Online 外部共有を考える by
SharePoint Online 外部共有を考えるSharePoint Online 外部共有を考える
SharePoint Online 外部共有を考えるTeruchika Yamada
3.3K views43 slides
Power BIで使ってみよう!Power Query by
Power BIで使ってみよう!Power QueryPower BIで使ってみよう!Power Query
Power BIで使ってみよう!Power Query陽子 小室
2.8K views40 slides
Janken Circuit by
Janken CircuitJanken Circuit
Janken Circuitaksechack0001
1.8K views12 slides

More Related Content

What's hot

LTspiceにインポートできるCSVデータについて by
LTspiceにインポートできるCSVデータについてLTspiceにインポートできるCSVデータについて
LTspiceにインポートできるCSVデータについてTsuyoshi Horigome
1.1K views4 slides
TDD のこころ by
TDD のこころTDD のこころ
TDD のこころTakuto Wada
12.8K views52 slides
[CEDEC2017] LINEゲームのセキュリティ診断手法 by
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法LINE Corporation
12.3K views69 slides
C++20 モジュールの概要 / Introduction to C++ modules (part 1) by
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)TetsuroMatsumura
3.3K views30 slides
GPU最適化入門 by
GPU最適化入門GPU最適化入門
GPU最適化入門Takahiro KOGUCHI
19.3K views55 slides
Fjord Trends 2022 by
Fjord Trends 2022Fjord Trends 2022
Fjord Trends 2022Accenture Japan
22.1K views43 slides

What's hot(20)

LTspiceにインポートできるCSVデータについて by Tsuyoshi Horigome
LTspiceにインポートできるCSVデータについてLTspiceにインポートできるCSVデータについて
LTspiceにインポートできるCSVデータについて
Tsuyoshi Horigome1.1K views
TDD のこころ by Takuto Wada
TDD のこころTDD のこころ
TDD のこころ
Takuto Wada12.8K views
[CEDEC2017] LINEゲームのセキュリティ診断手法 by LINE Corporation
[CEDEC2017] LINEゲームのセキュリティ診断手法[CEDEC2017] LINEゲームのセキュリティ診断手法
[CEDEC2017] LINEゲームのセキュリティ診断手法
LINE Corporation12.3K views
C++20 モジュールの概要 / Introduction to C++ modules (part 1) by TetsuroMatsumura
C++20 モジュールの概要 / Introduction to C++ modules (part 1)C++20 モジュールの概要 / Introduction to C++ modules (part 1)
C++20 モジュールの概要 / Introduction to C++ modules (part 1)
TetsuroMatsumura3.3K views
テスト文字列に「うんこ」と入れるな by Kentaro Matsui
テスト文字列に「うんこ」と入れるなテスト文字列に「うんこ」と入れるな
テスト文字列に「うんこ」と入れるな
Kentaro Matsui178.6K views
うちのRedmineの使い方(2) by Tomohisa Kusukawa
うちのRedmineの使い方(2)うちのRedmineの使い方(2)
うちのRedmineの使い方(2)
Tomohisa Kusukawa4.3K views
Unityではじめるオープンワールド制作 エンジニア編 by Unity Technologies Japan K.K.
Unityではじめるオープンワールド制作 エンジニア編Unityではじめるオープンワールド制作 エンジニア編
Unityではじめるオープンワールド制作 エンジニア編
Eclipse xtext 紹介 by Akira Tanaka
Eclipse xtext 紹介Eclipse xtext 紹介
Eclipse xtext 紹介
Akira Tanaka4.8K views
【Unity道場スペシャル 2018京都】今日からはじめる。ユニティちゃんトゥーンシェーダー2.0〜Unity道場カラー黒帯スペシャル〜 by Unity Technologies Japan K.K.
【Unity道場スペシャル 2018京都】今日からはじめる。ユニティちゃんトゥーンシェーダー2.0〜Unity道場カラー黒帯スペシャル〜【Unity道場スペシャル 2018京都】今日からはじめる。ユニティちゃんトゥーンシェーダー2.0〜Unity道場カラー黒帯スペシャル〜
【Unity道場スペシャル 2018京都】今日からはじめる。ユニティちゃんトゥーンシェーダー2.0〜Unity道場カラー黒帯スペシャル〜
Power Apps? なにそれ? おいしいの? by Junichi Kodama
Power Apps? なにそれ? おいしいの?Power Apps? なにそれ? おいしいの?
Power Apps? なにそれ? おいしいの?
Junichi Kodama1.3K views
Gitの便利ワザ by ktateish
Gitの便利ワザGitの便利ワザ
Gitの便利ワザ
ktateish3.8K views
日本語テストメソッドについて by kumake
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
kumake 20.3K views
フロー効率性とリソース効率性、再入門 #devlove #devkan by Itsuki Kuroda
フロー効率性とリソース効率性、再入門 #devlove #devkanフロー効率性とリソース効率性、再入門 #devlove #devkan
フロー効率性とリソース効率性、再入門 #devlove #devkan
Itsuki Kuroda48.2K views
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!? by kyu buns
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
Adobe XDを使うと、こんなに効率よくゲームUIが作れちゃうの!?
kyu buns6.1K views

Viewers also liked

AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is Different by
AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is DifferentAWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is Different
AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is DifferentAmazon Web Services
1.7K views31 slides
AWS Summit Milan - Media Apps by
AWS Summit Milan - Media AppsAWS Summit Milan - Media Apps
AWS Summit Milan - Media AppsAmazon Web Services
2.6K views114 slides
AWS Cloud Kata | Manila - Getting to Profitability on AWS by
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWSAmazon Web Services
1.2K views70 slides
AWS Summit Milan - Capire la Sicurezza Keynote by
AWS Summit Milan - Capire la Sicurezza KeynoteAWS Summit Milan - Capire la Sicurezza Keynote
AWS Summit Milan - Capire la Sicurezza KeynoteAmazon Web Services
1.6K views30 slides
AWS Summit Auckland 2014 | Running your First Application on AWS by
AWS Summit Auckland 2014 | Running your First Application on AWSAWS Summit Auckland 2014 | Running your First Application on AWS
AWS Summit Auckland 2014 | Running your First Application on AWSAmazon Web Services
1.1K views46 slides
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ... by
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...Amazon Web Services
2.8K views42 slides

Viewers also liked(20)

AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is Different by Amazon Web Services
AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is DifferentAWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is Different
AWS Summit Sydney 2014 | Why Scale Matters and How the Cloud Really is Different
Amazon Web Services1.7K views
AWS Cloud Kata | Manila - Getting to Profitability on AWS by Amazon Web Services
AWS Cloud Kata | Manila - Getting to Profitability on AWSAWS Cloud Kata | Manila - Getting to Profitability on AWS
AWS Cloud Kata | Manila - Getting to Profitability on AWS
Amazon Web Services1.2K views
AWS Summit Milan - Capire la Sicurezza Keynote by Amazon Web Services
AWS Summit Milan - Capire la Sicurezza KeynoteAWS Summit Milan - Capire la Sicurezza Keynote
AWS Summit Milan - Capire la Sicurezza Keynote
Amazon Web Services1.6K views
AWS Summit Auckland 2014 | Running your First Application on AWS by Amazon Web Services
AWS Summit Auckland 2014 | Running your First Application on AWSAWS Summit Auckland 2014 | Running your First Application on AWS
AWS Summit Auckland 2014 | Running your First Application on AWS
Amazon Web Services1.1K views
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ... by Amazon Web Services
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
AWS Partner Webcast - Analyze Big Data for Consumer Applications with Looker ...
Amazon Web Services2.8K views
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21... by Amazon Web Services
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Getting Cloudy with Remote Graphics and GPU Compute Using G2 instances (CPN21...
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013 by Amazon Web Services
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013
Advanced EBS Snapshot Management (STG402) | AWS re:Invent 2013
Amazon Web Services3.2K views
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013 by Amazon Web Services
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Accelerate Your Java Development on AWS (TLS301) | AWS re:Invent 2013
Amazon Web Services4.8K views
AWS Summit London 2014 | Options for Hybrid Environments (200) by Amazon Web Services
AWS Summit London 2014 | Options for Hybrid Environments (200)AWS Summit London 2014 | Options for Hybrid Environments (200)
AWS Summit London 2014 | Options for Hybrid Environments (200)
Amazon Web Services1.9K views
Maximizing EC2 and Elastic Block Store Disk Performance (STG302) | AWS re:Inv... by Amazon Web Services
Maximizing EC2 and Elastic Block Store Disk Performance (STG302) | AWS re:Inv...Maximizing EC2 and Elastic Block Store Disk Performance (STG302) | AWS re:Inv...
Maximizing EC2 and Elastic Block Store Disk Performance (STG302) | AWS re:Inv...
Amazon Web Services18.1K views
AWS Enterprise Summit London | Transforming Your IT with AWS by Amazon Web Services
AWS Enterprise Summit London | Transforming Your IT with AWSAWS Enterprise Summit London | Transforming Your IT with AWS
AWS Enterprise Summit London | Transforming Your IT with AWS
Amazon Web Services2.4K views
AWS Summit London 2014 | Improving Availability and Lowering Costs (300) by Amazon Web Services
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
AWS Summit London 2014 | Improving Availability and Lowering Costs (300)
Amazon Web Services1.7K views
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS... by Amazon Web Services
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Massive Message Processing with Amazon SQS and Amazon DynamoDB (ARC301) | AWS...
Amazon Web Services25.4K views
AWS Summit London 2014 | Dynamic Content Acceleration (300) by Amazon Web Services
AWS Summit London 2014 | Dynamic Content Acceleration (300)AWS Summit London 2014 | Dynamic Content Acceleration (300)
AWS Summit London 2014 | Dynamic Content Acceleration (300)
Amazon Web Services50.6K views
Best Practices for Architecting in the Cloud - Jeff Barr by Amazon Web Services
Best Practices for Architecting in the Cloud - Jeff BarrBest Practices for Architecting in the Cloud - Jeff Barr
Best Practices for Architecting in the Cloud - Jeff Barr
Amazon Web Services80.6K views

Similar to Best Practices for Benchmarking and Performance Analysis in the Cloud (ENT305) | AWS re:Invent 2013

(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014 by
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014Amazon Web Services
3.6K views49 slides
Deep Dive on Amazon EC2 by
Deep Dive on Amazon EC2Deep Dive on Amazon EC2
Deep Dive on Amazon EC2Amazon Web Services
2.4K views56 slides
YOW2020 Linux Systems Performance by
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems PerformanceBrendan Gregg
1.9K views64 slides
LISA2019 Linux Systems Performance by
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems PerformanceBrendan Gregg
375.2K views64 slides
test by
testtest
testWentingLiu4
34 views64 slides
Profiling ruby by
Profiling rubyProfiling ruby
Profiling rubynasirj
961 views44 slides

Similar to Best Practices for Benchmarking and Performance Analysis in the Cloud (ENT305) | AWS re:Invent 2013(20)

(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014 by Amazon Web Services
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
(PFC302) Performance Benchmarking on AWS | AWS re:Invent 2014
Amazon Web Services3.6K views
YOW2020 Linux Systems Performance by Brendan Gregg
YOW2020 Linux Systems PerformanceYOW2020 Linux Systems Performance
YOW2020 Linux Systems Performance
Brendan Gregg1.9K views
LISA2019 Linux Systems Performance by Brendan Gregg
LISA2019 Linux Systems PerformanceLISA2019 Linux Systems Performance
LISA2019 Linux Systems Performance
Brendan Gregg375.2K views
Profiling ruby by nasirj
Profiling rubyProfiling ruby
Profiling ruby
nasirj961 views
Performance Optimization of Rails Applications by Serge Smetana
Performance Optimization of Rails ApplicationsPerformance Optimization of Rails Applications
Performance Optimization of Rails Applications
Serge Smetana8.8K views
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ... by Amazon Web Services
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ... by Amazon Web Services
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
AWS re:Invent 2016: Deep Dive on Amazon EC2 Instances, Featuring Performance ...
Amazon Web Services9.8K views
PostgreSQL Portland Performance Practice Project - Database Test 2 Tuning by Mark Wong
PostgreSQL Portland Performance Practice Project - Database Test 2 TuningPostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
PostgreSQL Portland Performance Practice Project - Database Test 2 Tuning
Mark Wong1.3K views
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ... by Amazon Web Services
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
Profiling your Applications using the Linux Perf Tools by emBO_Conference
Profiling your Applications using the Linux Perf ToolsProfiling your Applications using the Linux Perf Tools
Profiling your Applications using the Linux Perf Tools
emBO_Conference9.7K views
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ... by Amazon Web Services
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
AWS re:Invent 2016: [JK REPEAT] Deep Dive on Amazon EC2 Instances, Featuring ...
Amazon Web Services2.2K views
Go Profiling - John Graham-Cumming by Cloudflare
Go Profiling - John Graham-Cumming Go Profiling - John Graham-Cumming
Go Profiling - John Graham-Cumming
Cloudflare22.3K views
Java/Spring과 Node.js의공존 by 동수 장
Java/Spring과 Node.js의공존Java/Spring과 Node.js의공존
Java/Spring과 Node.js의공존
동수 장28.9K views
Pharo Optimising JIT Internals by ESUG
Pharo Optimising JIT InternalsPharo Optimising JIT Internals
Pharo Optimising JIT Internals
ESUG925 views
Cassandra Performance Benchmark by Bigstep
Cassandra Performance BenchmarkCassandra Performance Benchmark
Cassandra Performance Benchmark
Bigstep2.9K views

More from Amazon Web Services

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn... by
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Amazon Web Services
26.5K views46 slides
Big Data per le Startup: come creare applicazioni Big Data in modalità Server... by
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Amazon Web Services
5.6K views44 slides
Esegui pod serverless con Amazon EKS e AWS Fargate by
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS FargateAmazon Web Services
4.1K views62 slides
Costruire Applicazioni Moderne con AWS by
Costruire Applicazioni Moderne con AWSCostruire Applicazioni Moderne con AWS
Costruire Applicazioni Moderne con AWSAmazon Web Services
2.8K views61 slides
Come spendere fino al 90% in meno con i container e le istanze spot by
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot Amazon Web Services
1.8K views21 slides
Open banking as a service by
Open banking as a serviceOpen banking as a service
Open banking as a serviceAmazon Web Services
7.1K views14 slides

More from Amazon Web Services(20)

Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn... by Amazon Web Services
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Come costruire servizi di Forecasting sfruttando algoritmi di ML e deep learn...
Amazon Web Services26.5K views
Big Data per le Startup: come creare applicazioni Big Data in modalità Server... by Amazon Web Services
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Big Data per le Startup: come creare applicazioni Big Data in modalità Server...
Amazon Web Services5.6K views
Esegui pod serverless con Amazon EKS e AWS Fargate by Amazon Web Services
Esegui pod serverless con Amazon EKS e AWS FargateEsegui pod serverless con Amazon EKS e AWS Fargate
Esegui pod serverless con Amazon EKS e AWS Fargate
Amazon Web Services4.1K views
Come spendere fino al 90% in meno con i container e le istanze spot by Amazon Web Services
Come spendere fino al 90% in meno con i container e le istanze spot Come spendere fino al 90% in meno con i container e le istanze spot
Come spendere fino al 90% in meno con i container e le istanze spot
Amazon Web Services1.8K views
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea... by Amazon Web Services
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Rendi unica l’offerta della tua startup sul mercato con i servizi Machine Lea...
Amazon Web Services3.3K views
OpsWorks Configuration Management: automatizza la gestione e i deployment del... by Amazon Web Services
OpsWorks Configuration Management: automatizza la gestione e i deployment del...OpsWorks Configuration Management: automatizza la gestione e i deployment del...
OpsWorks Configuration Management: automatizza la gestione e i deployment del...
Amazon Web Services2.6K views
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads by Amazon Web Services
Microsoft Active Directory su AWS per supportare i tuoi Windows WorkloadsMicrosoft Active Directory su AWS per supportare i tuoi Windows Workloads
Microsoft Active Directory su AWS per supportare i tuoi Windows Workloads
Amazon Web Services1.7K views
Database Oracle e VMware Cloud on AWS i miti da sfatare by Amazon Web Services
Database Oracle e VMware Cloud on AWS i miti da sfatareDatabase Oracle e VMware Cloud on AWS i miti da sfatare
Database Oracle e VMware Cloud on AWS i miti da sfatare
Amazon Web Services1.3K views
Crea la tua prima serverless ledger-based app con QLDB e NodeJS by Amazon Web Services
Crea la tua prima serverless ledger-based app con QLDB e NodeJSCrea la tua prima serverless ledger-based app con QLDB e NodeJS
Crea la tua prima serverless ledger-based app con QLDB e NodeJS
Amazon Web Services1.9K views
API moderne real-time per applicazioni mobili e web by Amazon Web Services
API moderne real-time per applicazioni mobili e webAPI moderne real-time per applicazioni mobili e web
API moderne real-time per applicazioni mobili e web
Amazon Web Services1.5K views
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare by Amazon Web Services
Database Oracle e VMware Cloud™ on AWS: i miti da sfatareDatabase Oracle e VMware Cloud™ on AWS: i miti da sfatare
Database Oracle e VMware Cloud™ on AWS: i miti da sfatare
Amazon Web Services1.5K views
AWS_HK_StartupDay_Building Interactive websites while automating for efficien... by Amazon Web Services
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
AWS_HK_StartupDay_Building Interactive websites while automating for efficien...
Introduzione a Amazon Elastic Container Service by Amazon Web Services
Introduzione a Amazon Elastic Container ServiceIntroduzione a Amazon Elastic Container Service
Introduzione a Amazon Elastic Container Service
Amazon Web Services2.7K views

Recently uploaded

Netmera Presentation.pdf by
Netmera Presentation.pdfNetmera Presentation.pdf
Netmera Presentation.pdfMustafa Kuğu
22 views50 slides
Inawisdom IDP by
Inawisdom IDPInawisdom IDP
Inawisdom IDPPhilipBasford
15 views48 slides
CryptoBotsAI by
CryptoBotsAICryptoBotsAI
CryptoBotsAIchandureddyvadala199
42 views5 slides
Cencora Executive Symposium by
Cencora Executive SymposiumCencora Executive Symposium
Cencora Executive Symposiummarketingcommunicati21
160 views14 slides
KubeConNA23 Recap.pdf by
KubeConNA23 Recap.pdfKubeConNA23 Recap.pdf
KubeConNA23 Recap.pdfMichaelOLeary82
24 views27 slides
AIM102-S_Cognizant_CognizantCognitive by
AIM102-S_Cognizant_CognizantCognitiveAIM102-S_Cognizant_CognizantCognitive
AIM102-S_Cognizant_CognizantCognitivePhilipBasford
21 views36 slides

Recently uploaded(20)

AIM102-S_Cognizant_CognizantCognitive by PhilipBasford
AIM102-S_Cognizant_CognizantCognitiveAIM102-S_Cognizant_CognizantCognitive
AIM102-S_Cognizant_CognizantCognitive
PhilipBasford21 views
The Power of Heat Decarbonisation Plans in the Built Environment by IES VE
The Power of Heat Decarbonisation Plans in the Built EnvironmentThe Power of Heat Decarbonisation Plans in the Built Environment
The Power of Heat Decarbonisation Plans in the Built Environment
IES VE84 views
GDSC GLAU Info Session.pptx by gauriverrma4
GDSC GLAU Info Session.pptxGDSC GLAU Info Session.pptx
GDSC GLAU Info Session.pptx
gauriverrma415 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10146 views
Optimizing Communication to Optimize Human Behavior - LCBM by Yaman Kumar
Optimizing Communication to Optimize Human Behavior - LCBMOptimizing Communication to Optimize Human Behavior - LCBM
Optimizing Communication to Optimize Human Behavior - LCBM
Yaman Kumar38 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty65 views
Deep Tech and the Amplified Organisation: Core Concepts by Holonomics
Deep Tech and the Amplified Organisation: Core ConceptsDeep Tech and the Amplified Organisation: Core Concepts
Deep Tech and the Amplified Organisation: Core Concepts
Holonomics17 views
AI + Memoori = AIM by Memoori
AI + Memoori = AIMAI + Memoori = AIM
AI + Memoori = AIM
Memoori14 views
Innovation & Entrepreneurship strategies in Dairy Industry by PervaizDar1
Innovation & Entrepreneurship strategies in Dairy IndustryInnovation & Entrepreneurship strategies in Dairy Industry
Innovation & Entrepreneurship strategies in Dairy Industry
PervaizDar135 views
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf by ThomasBronack
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdfBronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
Bronack Skills - Risk Management and SRE v1.0 12-3-2023.pdf
ThomasBronack31 views
The Role of Patterns in the Era of Large Language Models by Yunyao Li
The Role of Patterns in the Era of Large Language ModelsThe Role of Patterns in the Era of Large Language Models
The Role of Patterns in the Era of Large Language Models
Yunyao Li91 views
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」 by PC Cluster Consortium
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」
PCCC23:日本AMD株式会社 テーマ1「AMD Instinct™ アクセラレーターの概要」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」 by PC Cluster Consortium
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
PCCC23:日本AMD株式会社 テーマ2「AMD EPYC™ プロセッサーを用いたAIソリューション」
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De... by Moses Kemibaro
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Don’t Make A Human Do A Robot’s Job! : 6 Reasons Why AI Will Save Us & Not De...
Moses Kemibaro35 views
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading... by The Digital Insurer
Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...Webinar : Desperately Seeking Transformation - Part 2:  Insights from leading...
Webinar : Desperately Seeking Transformation - Part 2: Insights from leading...

Best Practices for Benchmarking and Performance Analysis in the Cloud (ENT305) | AWS re:Invent 2013

  • 1. Best Practices for Benchmarking and Performance Analysis in the Cloud Robert Barnes, Amazon Web Services November 15, 2013 © 2013 Amazon.com, Inc. and its affiliates. All rights reserved. May not be copied, modified, or distributed in whole or in part without the express consent of Amazon.com, Inc.
  • 2. Benchmarks: Measurement Demo 4 How many ways to measure? 6 3 At least 20… 4 3
  • 3. Cloud Benchmarks: Prequel • • • • • The best benchmark Absolute vs. relative measures Fixed time or fixed work What’s different? Use a good AMI Average CPU result CentOS 5.4 ami-… CentOS 5.4 ami-… CentOS 5.4 ami-… AWS CentOS 5.4 ami-… Ubuntu 12.4 ami-… 0.00 5.00 10.0015.0020.0025.0030.00 Coefficient of Variance 60% 50% 40% 30% 20% 10% 0%
  • 4. Scenario: CPU-based Instance Selection • • • • 1. 2. 3. 4. Application runs on premises Primary requirement is integer CPU performance Application is complex to set up, no benchmark tests exist, limited time What instance would work best? Choose a synthetic benchmark Baseline: Build, configure, tune, and run it on premises Run the same test (or tests) on a set of instance types Use results from the instance tests to choose the best match
  • 5. Testing CPU • Choose a benchmark – geekbench, UnixBench, sysbench(cpu), and SPEC CPU2006 Integer • How do you know when you have a good result? • Tests run on 9 instance types – 10 instances of each of the 9 types launched – Tests run a minimum of 4 times on each instance – Ubuntu 13.04 base AMI
  • 6. geekbench Overview • Workloads in 3 categories – 13 Integer tests – 10 Floating Point tests – 4 Memory tests • • • • Integer AES Twofish SHA1 SHA2 BZip2 compress BZip2 decompress JPEG compress JPEG decompress PNG compress Commercial product (64bit) No source code Runs single and multi-cpu Fast setup, fast runtime PNG decompress Sobel LUA Dijkstra Memory STREAM copy STREAM scale STREAM add STREAM triad Floating Point Black-Scholes Mandelbrot Sharpen image Blur image SGEMM DGEMM SFFT DFFT N-Body Ray trace
  • 7. geekbench Script SEQNO=$1 GBTXT=gbtest.txt DL=+ ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`" TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`” OUTID=$ID$DL$TYPE$DL START=$(date +%s.%N) ./geekbench_x86_64 --no-upload >$GBTXT END=$(date +%s.%N) DIFF=$(echo "$END - $START" | bc) OUTNAME=$OUTID$SEQNO$DL$DIFF$DL$GBTXT mv $GBTXT $OUTNAME … grep “Geekbench Score” i-*$GBTXT >gbresults.txt cat gbresults.txt | sed s/:// | awk ‘/i-/ {print $1”;”$4”;”$5}’>gbresults.csv
  • 8. geekbench Geekbench 1CPU ratio C.O.V. m3.xlarge m3.2xlarge m2.xlarge m2.2xlarge m2.4xlarge c3.large c3.xlarge c3.2xlarge cc2.8xlarge NCPU ratio C.O.V. 0.93 0.93 0.80 0.80 0.76 1.13 1.13 1.13 1.00 2.04 3.80 1.54 2.82 5.11 1.32 2.51 4.88 15.46 1.04% 1.40% 2.84% 1.34% 2.28% 0.93% 0.39% 0.19% 0.71% 2.31% 1.46% 4.06% 1.21% 1.71% 0.71% 1.81% 0.25% 1.93% RT (min) 2.06 2.08 1.99 2.04 2.01 1.76 1.74 1.70 2.21
  • 9. geekbench – Run Variance geekbench 1CPU ratio m3.xlarge instance-1 instance-2 instance-3 instance-4 instance-5 instance-6 instance-7 instance-8 instance-9 instance-10 0.93 0.97 0.94 0.94 0.94 0.94 0.93 0.93 0.94 0.94 C.O.V. 0.31% 0.23% 0.17% 0.10% 0.32% 0.10% 0.25% 0.38% 0.11% 0.09%
  • 10. geekbench – Integer Portion gb-integer 1CPU ratio C.O.V. NCPU ratio C.O.V. RT (min) c3.large c3.xlarge c3.2xlarge cc2.8xlarge 1.12 1.13 1.12 1.00 0.50% 0.38% 0.38% 0.20% 1.37 2.72 5.35 17.88 0.43% 0.41% 0.51% 3.31% NA NA NA NA geekbench c3.large c3.xlarge c3.2xlarge cc2.8xlarge 1.13 1.13 1.13 1.00 0.93% 0.39% 0.19% 0.71% 1.32 2.51 4.88 15.46 0.71% 1.81% 0.25% 1.93% 1.76 1.74 1.70 2.21
  • 11. UnixBench Overview • Default: the BYTE Index – 12 workloads, run 2 times (roughly 29 minutes each time) • • • • Integer computation Floating point computation System calls File system calls – Geomean Of results to a baseline produces a system benchmarks index score • Open source – must be built – Must be patched for > 16 CPUs 11
  • 12. UnixBench Script SEQNO=$1 UBTXT=ubtest.txt DL=+ ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`" TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`" FN=$ID$DL$TYPE$DL$SEQNO$DL$UBTXT COPIES=`cat /proc/cpuinfo | grep processor | wc –l` ./Run –c 1 –c $COPIES >$FN … grep “System Benchmarks Index Score” i-*$UBTXT >ubresults.txt cat ubresults.txt | sed s/”.txt:System Benchmarks Index Score”// | awk ‘/i-/ {print $1”;”$2}’>ubresults.csv
  • 13. UnixBench UnixBench 1CPU ratio m3.xlarge m3.2xlarge m2.xlarge m2.2xlarge m2.4xlarge c3.large c3.xlarge c3.2xlarge cc2.8xlarge 1.38 1.42 0.40 0.42 0.48 1.10 1.06 1.10 1.00 C.O.V. 1.90% 1.85% 5.82% 1.71% 3.31% 1.33% 1.48% 0.54% 2.97% NCPU ratio 2.49 4.21 0.76 1.23 2.02 1.91 2.85 4.50 6.44 C.O.V. 1.36% 1.99% 1.28% 1.75% 1.71% 1.54% 1.26% 1.02% 2.65% RT (min) 28.25 28.29 28.30 28.32 28.34 28.17 28.21 28.96 30.20
  • 14. UnixBench – Dhrystone 2 UB-Integer 1CPU ratio c3.large c3.xlarge c3.2xlarge cc2.8xlarg e UnixBench c3.large c3.xlarge c3.2xlarge cc2.8xlarg e C.O.V. NCPU ratio C.O.V. RT (min) 1.05 1.05 1.05 0.24% 0.27% 0.07% 1.10 2.20 4.34 0.30% 0.28% 0.23% 0.17 0.17 0.17 1.00 0.10% 15.54 0.95% 0.17 1.10 1.06 1.10 1.33% 1.48% 0.54% 1.91 2.85 4.50 1.54% 1.26% 1.02% 28.17 28.21 28.96 1.00 2.97% 6.44 2.65% 30.20
  • 15. SPEC CPU2006 Overview • • • • • • Competitive (reviewed) Commercial (site) license required Source code provided, must be built Highly customizable Full “reportable” run 5+ hours Published results on www.spec.org
  • 16. SPEC CPU2006 Overview Benchmark 400.perlbench 401.bzip2 403.gcc 429.mcf 445.gobmk 456.hmmer 458.sjeng 462.libquantum 464.h264ref 471.omnetpp 473.astar 483.xalancbmk Category C Programming language C Compression C C compiler C Combinatorial optimization C Artificial intelligence C Search gene sequence C Artificial intelligence C Physics / quantum computing C Video compression C++ Discrete event simulation C++ Path-finding algorithms C++ Xml processing
  • 17. SPEC CPU2006 Integer Script CPATH=“/cpu2006/result” COPIES=`cat /proc/cpuinfo | grep processor | wc –l` SITXT=estspecint.txt DL=+ ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`” TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`” FN=$ID$DL$TYPE$DL$SEQNO$DL$SITXT runspec –noreportable –tune=base –size=ref –rate=$COPIES –iterations=1 / 400 403 445 456 458 462 464 471 473 483 grep “_base” $CPATH/CINT*.ref.csv | cut -d, -f1-2 > $FN grep “total seconds elapsed” $CPATH/CPU*.log | awk '/finished/ {print $9}’ >>$FN
  • 18. Estimated SPEC CPU2006 Integer Est. SPECint m3.xlarge m3.2xlarge m2.xlarge m2.2xlarge m2.4xlarge c3.large c3.xlarge c3.2xlarge cc2.8xlarge 1CPU ratio 1.01 1.01 0.76 0.79 0.78 1.11 1.10 1.08 1.00 C.O.V. 1.06% 1.67% 1.97% 0.94% 0.16% 1.95% 1.96% 0.87% 0.29% RT (min) 54.39 54.49 70.83 68.85 68.73 50.00 50.29 50.87 54.92 NCPU ratio 2.24 4.25 1.39 2.76 5.21 1.25 2.39 4.67 14.92 C.O.V. 1.15% 1.63% 2.45% 1.24% 1.26% 1.47% 1.28% 0.25% 0.52% RT (min) 104.18 109.22 85.37 85.42 89.91 94.22 97.66 100.22 125.74
  • 19. Sysbench Overview • Designed as quick system test of MySQL servers • Test categories – – – – – – Fileio Cpu Memory Threads Mutex oltp • Source code provided, must be built • Very simplistic defaults – tuning recommended
  • 20. Sysbench Script COPIES=`cat /proc/cpuinfo | grep processor | wc –l` TDS=$(($COPIES * 2)) STXT=sysbenchcpu.txt DL=+ ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`” TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`” FN=$ID$DL$TYPE$DL$TDS$DL$STXT sysbench –num-threads=$TDS --max-requests=30000 --test=cpu / --cpu-max-prime=100000 run > $FN grep “total time:” i-*$STXT| cut -d, -f1-2 > $FN
  • 21. Sysbench – CPU sysbench m3.xlarge m3.2xlarge m2.xlarge m2.2xlarge m2.4xlarge c3.large c3.xlarge c3.2xlarge cc2.8xlarge Default 3.21 6.41 1.59 3.19 8.83 1.78 3.55 6.55 25.34 C.O.V. 1.44% 1.38% 0.75% 0.64% 0.62% 0.26% 0.53% 8.45% 2.30% RT (min) tuned ratio 0.06 0.03 0.11 0.06 0.02 0.10 0.05 0.03 0.01 1.69 3.38 0.80 1.60 4.71 0.91 1.83 3.54 13.69 C.O.V. 1.29% 1.41% 0.23% 0.76% 0.20% 0.09% 0.02% 3.31% 1.10% RT (min) 3.86 1.93 8.16 4.07 1.38 7.13 3.57 1.85 0.48
  • 23. Scenario: Memory Instance Selection • Application runs on premises • Primary requirement: memory throughput of 20K MB/sec • What instance would work best? 1. 2. 3. 4. Choose a synthetic benchmark Baseline: Build, configure, tune, and run it on premises Run the same test (or tests) on a set of instance types Use results from the instance tests to choose the best match
  • 24. Testing Memory • Choose a benchmark: – stream, geekbench, sysbench(memory) • How do you know when you have a good result? • Tests run on 9 instance types – Minimum of 10 instances launched – Tests run a minimum of 3 times on each instance – Ubuntu 13.04 base AMI
  • 25. Stream* Overview • Synthetic measure sustainable memory bandwidth – – – – Published results at www.cs.virginia.edu/stream/top20/Bandwidth.html Must be built By default, runs 1 thread per cpu Use stream-scaling to automate array size and thread scaling • https://github.com/gregs1104/stream-scaling name kernel COPY: a(i) = b(i) SCALE: a(i) = q*b(i) SUM: a(i) = b(i) + c(i) TRIAD: a(i) = b(i) + q*c(i) bytes FLOPS iter iter 16 0 16 1 24 1 24 2 * McCalpin, John D.: "STREAM: Sustainable Memory Bandwidth in High Performance Computers",
  • 26. Memory Scripts TDS=`cat /proc/cpuinfo | grep processor | wc –l` export OMP_NUM_THREADS= $TDS MTXT=stream.txt DL=+ ID="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-id`” TYPE="`wget -q -O - http://169.254.169.254/latest/meta-data/instance-type`” FN=$ID$DL$TYPE$DL$TDS$DL$MTXT ./stream | egrep "Number of Threads requested|Function|Triad|Failed|Expected|Observed" > $FN MTXT=sysbench-mem.txt FN=$ID$DL$TYPE$DL$TDS$DL$MTXT ./sysbench --num-threads=$TDS --test=memory run >$FN
  • 28. Testing Disk I/O • Storage options: – – – – Amazon EBS Amazon EBS PIOPs Ephemeral hi1.4xlarge local storage • Test parameters: – – – – – Read % Write % Sequential Random Queue depth • Storage configuration – Volume(s) – RAID – LVM • I/O metrics – IOPs – Throughput – Latency
  • 29. Benchmarking PIOPs 1200 Launch an Amazon EBS-optimized instance • Create provisioned IOPS volumes • Attach the volumes to Amazon EBS-optimized instance • Pre-warm volumes • Tune queue depth and latency against IOPs PIOPs 2K Queue Depth 1D PIOPS 2K QD2 2D PIOPS 2K 2D PIOPS 2K QD2 1000 Latency (usec) • 1D PIOPS 2K 800 600 400 200 0 Seq. Read Seq. Write Mixed Seq Read Mixed Seq Write Rand Read Rand Write Mixed Rand Read Mixed Rand Write
  • 30. Testing Disk I/O Examples • disk copy • cp file1 /disk1/file1 • dd • dd if=/dev/zero of=/data1/testile1 bs=1048 count=1024000 • fio – flexible io tester • fio simple.cfg • • • • • • • [global] clocksource=cpu randrepeat=0 ioengine=libaio direct=1 group_reporting size=1G • • • • • • • • [xvdd-fill] filename=/data1/testfile1 refill_buffers scramble_buffers=1 iodepth=4 rw=write bs=2m stonewall • • • • • • • • • • [xvdd-1disk-write-1k-1] time_based ioscheduler=deadline iodepth=1 rate_iops=4080 ramp_time=10 filename=/data1/testfile1 runtime=30 bs=1k rw=write
  • 31. Summary Disk I/O Seconds MB/sec cp f1 f2 17.248 59.37 rm –rf f2; cp f1 f2 .853 1200.47 cp f1 f3 .880 1164.96 dd if=/dev/zero bs=1048 count=1024000 of=d1 .722 1419.01 dd if=/dev/urandom bs=1048 count=1024000 of=d2 fio simple.cfg 79.710 12.84 NA 61.55
  • 32. Beyond Simple Disk I/O Random PIOPs 16disk 1M I/O MBps read 1006.73 write 904.03 r70w30 1005.91
  • 33. Summary If benchmarking your application is not practical, synthetic benchmarks can be used if you are careful. • • • • • Choose the best benchmark that represents your application Analysis – what does “best” mean? Run enough tests to quantify variability Baseline – what is a “good result” ? Samples – keep all of your results – more is better!
  • 34. Please give us your feedback on this presentation ENT305 As a thank you, we will select prize winners daily for completed surveys!