15.01.2015 Views

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

4th International Conference on Principles and Practices ... - MADOC

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1. Identifying the primary factors that cause the poor throughput<br />

degradati<strong>on</strong>.<br />

2. Investigating the effects of these factors <strong>on</strong> throughput.<br />

3. Observing how changes of algorithms <strong>and</strong> policies in these<br />

factors affect the throughput degradati<strong>on</strong>.<br />

The remainder of this paper is organized as follows. Secti<strong>on</strong> 2<br />

details our experiments to identify opportunities for improvement.<br />

Secti<strong>on</strong> 3 details our experimentati<strong>on</strong> plan. Secti<strong>on</strong>s 4 <strong>and</strong> 5 report<br />

the results <strong>and</strong> discuss possible improvements. Secti<strong>on</strong> 6 discusses<br />

background informati<strong>on</strong> <strong>and</strong> highlights related work. Secti<strong>on</strong><br />

7 c<strong>on</strong>cludes the paper.<br />

2. MOTIVATION<br />

In 2001, Welsh et al. [23] reported three important trends that<br />

magnify the challenges facing Web-based applicati<strong>on</strong>s. First, services<br />

are becoming more complex with widespread adopti<strong>on</strong> of<br />

dynamic c<strong>on</strong>tents in place of static c<strong>on</strong>tents. Sec<strong>on</strong>d, the service<br />

logics “tend to change rapidly”. Thus, the complexity of development<br />

<strong>and</strong> deployment increases. Third, these services are deployed<br />

<strong>on</strong> general-purpose systems <strong>and</strong> not “carefully engineered<br />

systems for a particular service.” Such trends are now a comm<strong>on</strong><br />

practice. Complex services including entire suites of business applicati<strong>on</strong>s<br />

are now deployed using Web applicati<strong>on</strong> servers running<br />

commodity processors <strong>and</strong> open-source software. With this in<br />

mind, we c<strong>on</strong>duct an experiment to observe the degradati<strong>on</strong> behavior<br />

of Java applicati<strong>on</strong> servers <strong>on</strong> an experimental platform similar<br />

to the current comm<strong>on</strong> practice (i.e. using Linux <strong>on</strong> X86 system<br />

with MySQL database <strong>and</strong> JBoss applicati<strong>on</strong> server). For detailed<br />

informati<strong>on</strong> about the experimental setup, refer to secti<strong>on</strong> 3.2.<br />

Initially, our experiments were c<strong>on</strong>ducted using the smallest amount<br />

of workload allowed by SPECjAppServer2004, a st<strong>and</strong>ardized benchmark<br />

to measure the performance of Java applicati<strong>on</strong> servers. We<br />

set the maximum heap size to be twice as large as the physical<br />

memory—4 GB heap with 2 GB of physical memory in this case.<br />

We m<strong>on</strong>itored the throughput delivered by the system. We then<br />

gradually increased the workload until the system refuses to service<br />

any requests.<br />

For comparis<strong>on</strong>, we also c<strong>on</strong>ducted another experiment to observe<br />

the degradati<strong>on</strong> behavior of the Apache Web server (we used<br />

the same computer system <strong>and</strong> SPECweb2005 to create requested<br />

traffic). Since the two benchmarks report different throughput metrics<br />

— jobs per sec<strong>on</strong>d for jAppServer2004 vs c<strong>on</strong>necti<strong>on</strong>s per sec<strong>on</strong>d<br />

for Web2005 — we normalized the throughput <strong>and</strong> the workload<br />

to percentage. That is we c<strong>on</strong>sidered the maximum throughput<br />

delivered by a system during an executi<strong>on</strong> as 100% (referred<br />

to as t) <strong>and</strong> the maximum workload i.e. the workload that the systems<br />

completely refuse c<strong>on</strong>necti<strong>on</strong> as 100% (referred to as w). The<br />

degradati<strong>on</strong> rate (referred to as d) is d = ∆t . The result of our<br />

∆w<br />

comparis<strong>on</strong> is shown in Figure 1.<br />

The result shows that JBoss is able to deliver high throughput<br />

for about 60% of the given workload. However, when the workload<br />

surpasses 60%, the throughput reduces drastically. This system<br />

begins to refuse c<strong>on</strong>necti<strong>on</strong> at 80% of the maximum workload.<br />

A drastic degradati<strong>on</strong> in throughput (nearly 75%) occurs when the<br />

workload increases by <strong>on</strong>ly 20%. Thus, the degradati<strong>on</strong> rate, d, is<br />

0.75<br />

0.20<br />

= 3.40. Also notice that the value of d for the Apache is 1.69<br />

(see Figure 1). A smaller value of d means that the applicati<strong>on</strong> is<br />

more failure-resistant to increasing workload. We also investigated<br />

the effect of larger memory <strong>on</strong> the throughput. Again, larger memory<br />

improves the maximum throughput (see Figure 2 but has very<br />

little effect <strong>on</strong> the degradati<strong>on</strong> behavior.<br />

According to [12], the degradati<strong>on</strong> behavior experienced in our<br />

experiments is c<strong>on</strong>sidered ungraceful because such behavior can<br />

lead to n<strong>on</strong>-robust systems. Moreover, it gives very little time to<br />

administer recovery procedures. The authors investigated the factors<br />

that affect throughput degradati<strong>on</strong> behavior of Java Servlets by<br />

examining the operating system behaviors. They found that thread<br />

synchr<strong>on</strong>izati<strong>on</strong> is the most prominent factor at the OS level. We<br />

would like to point out that their work did not study the factors<br />

within the Java virtual machine. On the c<strong>on</strong>trary, our investigati<strong>on</strong><br />

c<strong>on</strong>centrated specifically at the Java Virtual Machine level. Since<br />

Java Virtual Machines (JVMs) provide the executi<strong>on</strong> envir<strong>on</strong>ment<br />

for these applicati<strong>on</strong> servers, we c<strong>on</strong>jectured that the major factors<br />

that cause the throughput to degrade ungracefully reside in the Virtual<br />

Machines.<br />

3. EXPERIMENTS<br />

In this study, our main objectives are as follows:<br />

Research Objective 1 (RO1): Identifying the major factors resp<strong>on</strong>sible<br />

for the rapidly declining throughput of Java applicati<strong>on</strong><br />

servers triggered by small workload increase.<br />

Research Objective 2 (RO2): Investigating how these factors affect<br />

the throughput of Java server applicati<strong>on</strong>s.<br />

Research Objective 3 (RO3): Observing how the changes in algorithms<br />

<strong>and</strong> policies c<strong>on</strong>trolling these factors affect the throughput<br />

of Java applicati<strong>on</strong> servers. To achieve this objective, we manipulate<br />

the algorithms <strong>and</strong> policies governing the behaviors of these<br />

factors.<br />

3.1 Benchmarks<br />

There are two major comp<strong>on</strong>ents in our experimental objects, the<br />

applicati<strong>on</strong> servers <strong>and</strong> the workload drivers. The selected applicati<strong>on</strong><br />

servers must meet the following criteria. First, they must be<br />

representative of real-world/widely used applicati<strong>on</strong> servers. Sec<strong>on</strong>d,<br />

we must have accessibility to the source code to c<strong>on</strong>trol <strong>and</strong><br />

manipulate their executi<strong>on</strong> c<strong>on</strong>text. Our effort began with the identificati<strong>on</strong><br />

of server applicati<strong>on</strong>s that fit the two criteria. We have<br />

investigated several possibilities <strong>and</strong> selected two open-source applicati<strong>on</strong>s<br />

described below.<br />

JBoss [13] is by far the most popular open-source Java applicati<strong>on</strong><br />

server (34% of market share <strong>and</strong> over five milli<strong>on</strong> downloads<br />

to date) 6 . It fully supports J2EE 1.4 with advanced optimizati<strong>on</strong><br />

including object cache to reduce the overhead of object creati<strong>on</strong>.<br />

Java Open Applicati<strong>on</strong> Server (JOnAS) 7 is another open-source<br />

applicati<strong>on</strong> server. It is built as part of the ObjectWeb initiative.<br />

Its collaborators include the France Telecom, INRIA, <strong>and</strong> Bull (a<br />

software development company).<br />

In additi<strong>on</strong> to identifying the applicati<strong>on</strong>s, we also need to identify<br />

workload drivers that create a realistic client/server envir<strong>on</strong>ment.<br />

We choose an applicati<strong>on</strong> server benchmark from SPEC,<br />

jAppServer2004 [19], which is the st<strong>and</strong>ard benchmark for testing<br />

the performance of Java applicati<strong>on</strong> servers. It emulates an<br />

automobile manufacturing company <strong>and</strong> its associated dealerships.<br />

Dealers interact with the system using web browsers (simulated by<br />

a driver program) while the actual manufacturing process is accomplished<br />

via RMI (also driven by the driver). This workload stresses<br />

the ability of Web <strong>and</strong> EJB c<strong>on</strong>tainers to h<strong>and</strong>le the complexities of<br />

memory management, c<strong>on</strong>necti<strong>on</strong> pooling, passivati<strong>on</strong>/activati<strong>on</strong>,<br />

caching, etc.<br />

6 from http://www.gridtoday.com/04/0927/103890.html<br />

7 JOnAS: Java Open Applicati<strong>on</strong> Server available from<br />

http://j<strong>on</strong>as.objectweb.org<br />

41

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!