[pdf]Performance Comparison of Middleware Architectures
아파치
톰캣
PHP
JOnAS EJB Container
Mysql
각각의 조합에 따른 온라인쇼핑몰의 성능테스트에 관한 밀도 있는 보고서입니다.
Performance Comparison of Middleware Architectures
for Generating Dynamic Web Content
Emmanuel Cecchet1, Anupam Chanda2, Sameh Elnikety3,
Julie Marguerite1 and Willy Zwaenepoel3
1 INRIA, Projet Sardes, 655, Avenue de l’Europe, 38330 Montbonnot St Martin, France
{Emmanuel.Cecchet,Julie.Marguerite}@inrialpes.fr 2 Rice University, 6100 Main Street, MS-132, Houston, TX, 77005, USA
anupamc@cs.rice.edu 3 Ecole Polytechnique Fédérale de Lausanne, 1015 Lausanne, Switzerland
{sameh.elnikety,willy.zwaenepoel}@epfl.ch
Abstract. On-line services are making increasing use of dynamically
generated Web content. Serving dynamic content is more complex than serving
static content. Besides a Web server, it typically involves a server-side
application and a database to generate and store the dynamic content. A number
of standard mechanisms have evolved to generate dynamic content. We
evaluate three specific mechanisms in common use: PHP, Java servlets, and
Enterprise Java Beans (EJB). These mechanisms represent three different
architectures for generating dynamic content. PHP scripts are tied to the Web
server and require writing explicit database queries. Java servlets execute in a
different process from the Web server, allowing them to be located on a
separate machine for better load balancing. The database queries are written
explicitly, as in PHP, but in certain circumstances the Java synchronization
primitives can be used to perform locking, reducing database lock contention
and the amount of communication between servlets and the database. Enterprise
Java Beans (EJB) provide several services and facilities. In particular, many of
the database queries can be generated automatically.
We measure the performance of these three architectures using two
application benchmarks: an online bookstore and an auction site. These
benchmarks represent common applications for dynamic content and stress
different parts of a dynamic content Web server. The auction site stresses the
server front-end, while the online bookstore stresses the server back-end. For all
measurements, we use widely available open-source software (the Apache Web
server, Tomcat servlet engine, JOnAS EJB server, and MySQL relational
database). While Java servlets are less efficient than PHP, their ability to
execute on a different machine from the Web server and their ability to perform
synchronization leads to better performance when the front-end is the
bottleneck or when there is database lock contention. EJB facilities and services
come at the cost of lower performance than both PHP and Java servlets.