34
Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds Deepal Jayasinghe, Simon Malkowski, Qingyang Wang, Jack Li, Pengcheng Xiong, Calton Pu

Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

  • Upload
    deepalk

  • View
    4.229

  • Download
    3

Embed Size (px)

DESCRIPTION

Applications need to be redesign for Cloud to get the power of novel computing clouds

Citation preview

Page 1: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Variations in Performance and Scalability when Migrating n-Tier Applications to

Different Clouds

Deepal Jayasinghe, Simon Malkowski, Qingyang Wang, Jack Li, Pengcheng Xiong, Calton Pu

Page 2: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Outline Motivation Experiment setup Results on Emulab/ Open Cirrus Results on EC2

Horizontal scalability Vertical Scalability

Issue 1 : Multi-threading overhead Issue 2 : Network driver overhead Conclusion

Page 3: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Motivation Clouds are much popular, but not a mature

technology. More experimental studies are needed to better

understand them. N-Tier applications are complex and migrating

them to clouds is a non-trivial task.

We analyzed the performance and scalability when migrating n-tier

applications from a traditional datacenter to an Infrastructure as a Service (IaaS)

cloud.

Page 4: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Experiment Setup RUBBoS benchmark

Bulletin board system like Slashdot (www.slashdot.org)

Typical 3-tier or 4-tier architecture

Two types of workload Browsing only Read/Write mix

24 web interactions

MySQL Cluster Middleware for database

scale-out Multi-master In-memory

RUBBoS Deployment Topology with MySQL Cluster

Page 5: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Experiment Environment - Emulab• Emulab (http://www.emulab.net)– Relatively modest testbed originally for

network research– Virtual network & physical machines (not VM)

Hardware Specifications

Server type PC3000 in Emulab

Processor Xeon 3GHz 64bit

Memory 2GB

Network 1Gbps

Disk 2 x 146GB 10,000rpm

Page 6: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Experiment Environment – Open Cirrus Open Cirrus (https://opencirrus.org/)

Open cloud-computing research testbed Designed to support research into the design,

provisioning, and management of services at a global, multi-datacenter scale.

Hardware Specifications

Server type X3210

Processor 3.00GHz (Quad Core)

Memory 7.5 GB

Network InfiniBand

Page 7: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Experiment Environment – Amazon EC2 Amazon EC2 – (http://aws.amazon.com/ec2/)

An Elastic Compute Cloud that provides resizable compute capacity in the cloud.

It is designed to make web-scale computing easier for developers.

Node Type CPU Memory Platform Price/Hour

Small 1 EC2 Unit1 1.7 GB 32 bit $ 0.085

Large 4 EC2 Unit 7.5 GB 64 bit $ 0.34

Ex-Large 8 EC2 Unit 15 GB 64 bit $ 0.68

Cluster 33.5 EC2 Unit

23 GB 64 bit $ 1.60

1: EC2 Unit = 1.0-1.2 GHz 2007 Opteron or 2007 Xeon processor

Page 8: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Software Settings

Function Software

Web server Apache 2.0.54

Application server Apache Tomcat 5.5.17

DB clustering middleware MySQL Cluster -5.0.51a

Java Sun jdk1.6.0_14

Operating system FC4 / FC8

System Monitor dstat

Page 9: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Summary of Experiments

Type Emulab Open Cirrus Amazon EC2

Experiments

8124 430 1436

Node 95682 4480 25846

Configurations

342 23 86

Data points 3210.6 M 2.3 M 672 M

Automated experiment management approach (Elba1)

1: http://www.cc.gatech.edu/systems/projects/Elba/

Page 10: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Notation We use the notation #W-#A-#S-#D-p

#W – Number of Web server (all experiments in this paper with one Web server)

#A – Number of Application servers #S – Number of SQL nodes #D – Number of Data nodes p – Platforms (em- for Emulab, oc – for Open

Cirrus, ec2- for EC2) 1-2-2-2-em

Emulab configuration with 1-Apache, 2-Tomcats, 2-SQL nodes and 2-Data nodes

Page 11: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Performance on Emulab

1000 2000 3000 4000 5000 6000 70000

100

200

300

400

500

600

700

800

1-2-2-2-em1-2-2-4-em1-4-16-16-em

# Users

Th

rou

gh

pu

t (R

eq

/Sec)

Improvement

Improvement

Page 12: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Performance on Open Cirrus

4000 5000 6000 7000 8000 9000 10000500

550

600

650

700

750

800

850

900

1-2-2-2-oc1-2-2-4-oc1-2-2-8-oc

# Users

Th

rou

gh

pu

t (R

eq

/Sec)

Improvement

Improvement

Page 13: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Performance on EC2

1000 2000 3000 4000 5000 6000 7000 80000

50

100

150

200

250

300

350

400

1-2-2-2-ec21-2-2-4-ec21-2-2-8-ec2

# Users

Th

rou

gh

pu

t (R

eq

/Sec) Degradation

Degradation

On Large instances

Page 14: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

CPU Utilization (1-2-2-2)

Tomcat MySQL Data Node

EC

2Em

ula

b

Page 15: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Vertical Scalability on EC2

1000 2000 3000 4000 5000 6000 7000 80000

100

200

300

400

500

600

700

1-2-2-2-small1-2-2-2-large1-2-2-2-exlarge1-2-2-2-cluster

# Users

Th

rou

gh

pu

t (R

eq

/Sec) Improvemen

t

Improvement

Improvement

Page 16: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Summary Emulab and Open Cirrus show better

horizontal scalability EC2 show good vertical scalability, but not

better horizontal scalability

Our analysis resulted in two findings: Multi-threading overhead Network driver overhead

Page 17: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Multi-Threading Overhead

Page 18: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

End-to-End Response Time

Web Server End-to-EndClient End-to-End

Page 19: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Differences in Response Time

1000 2000 3000 4000 5000 6000 7000 8000 90000

5

10

15

20

25

Web-ServerRUBBoS Client

# Users

Reesp

on

se T

ime (

s)

Time differences

Page 20: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Context Switching (using LMBench)

10 20 40 60 80 100 150 200 250 300 350 4000

10

20

30

40

50

60

70

EmulabEC2

# Threads

Tim

e p

er

sw

itch

s (

mic

ro s

econ

d)

Page 21: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Number of Context Switches

1000 2000 3000 4000 5000 6000 7000 8000 90000

500

1000

1500

2000

2500

3000

3500

4000

4500

EC2Emulab

# Users

Con

text

Sw

itch

es

Page 22: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

CPU Percentage

1000 2000 3000 4000 5000 6000 7000 8000 90000

2

4

6

8

10

12

14

EmulabEC2

# Users

CP

U P

erc

en

tag

e [

%]

Page 23: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Issues and Solution Overall throughput and number of context

switches are related But, in EC2 we get less switches and similar

overhead as Emulab When the number of threads is higher the

cloud become unstable Solutions:

Rent more instances (Like fixing memory leaks by increasing the heap size )

Re-write the application E.g., reduce the number of threads

Page 24: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

With our Solution

1000 2000 3000 4000 5000 6000 7000 8000 90000

5

10

15

20

25

Web-ServerRUBBoS ClientRUBBoS Client with reduced threads

# Users

Resp

on

se T

ime [

s]

Improvement

Page 25: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Solution - Improvements

1000 2000 3000 4000 5000 6000 7000 8000 90000

50

100

150

200

250

300

350

400

450

Orginal client

# Users

Th

rou

gh

pu

t [R

eq

/Sec]

Improvement

Page 26: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Network Driver Overhead

Page 27: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Data Node Send Queue

1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

1000

2000

3000

4000

5000

6000

7000

1-2-2-4-ec21-2-2-4-em

# Users

Qu

eu

e S

ize (

B)

Page 28: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Ping-Pong Time without a Load

1 9 17 25 33 41 49 57 65 73 81 89 97 105 113 1210

0.05

0.1

0.15

0.2

0.25

0.3

emulabEC2

Duration

Rou

nd

Tri

p t

ime (

ms)

Page 29: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Ping-Pong with a Load

1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 1061131200

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1

emulabEC2

Duration

Rou

nd

Tri

p t

ime (

ms)

Page 30: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Solution Use network friendly database middleware

Reduce the pressure on the network Evaluated C-JDBC, an open source database

middleware Performed well and showed a very good scalability Reduce the network traffic significantly

Page 31: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

C-JDBC vs. MySQL Cluster Performance

1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

200

400

600

800

1000

1200

1400

CJDBCMySQL

# Users

Th

rou

gh

pu

t [R

eq

/Sec]

Page 32: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

C-JDBC vs. MySQL Cluster Network Traffic

1000 2000 3000 4000 5000 6000 7000 8000 9000 100000

5000000

10000000

15000000

20000000

25000000

30000000

35000000

C-JDBCMYSQL

# Users

Data

Tra

nsfe

red

[M

B/s

]

Page 33: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds

Conclusion & Future works Studied the performance and scalability

variations when migrating n-tier applications to clouds.

Our results show, that cloud are new and need more experimental studies to better understand them.

More specifically, application re-design is needed to handle cloud challenges.

Future works Extend our analysis into other clouds (e.g., Wipro) Micro level study to dig deep into observe

phenomena With other database monument systems (e.g.,

Oracle, DB2)

Page 34: Variations in Performance and Scalability when Migrating n-Tier Applications to Different Clouds