Sun Java System Web Server 7.0 Update 7 Performance Tuning, Sizing, and Scaling Guide

E-Commerce Web Application Test

The e-commerce application is a more complicated application that utilizes a database to simulate online shopping.

Hardware for E-Commerce Test

The e-commerce studies were conducted using the following hardware.

Web Server system configuration:

Database system configuration:

Driver system configuration:

Network configuration:

The Web Server, database, and the driver machines were connected with a gigabit Ethernet link.

Configuration and Tuning for E-Commerce Test

The e-commerce test was run with the following tuning settings.

JDBC tuning:

<jdbc-resource>
    <jndi-name>jdbc/jwebapp</jndi-name>
    <datasource-class>oracle.jdbc.pool.OracleDataSource</datasource-class>
    <max-connections>200</max-connections>
    <idle-timeout>0</idle-timeout>
    <wait-timeout>5</wait-timeout>
    <connection-validation>auto-commit</connection-validation>
    <property>
      <name>username</name>
      <value>  db_user  </value>
    </property>
    <property>
      <name>password</name>
      <value> db_password    </value>
    </property>
    <property>
      <name>url</name>
      <value>jdbc:oracle:thin:@db_host_name:1521:oracle_sid</value>
    </property>
 <property>
      <name>ImplicitCachingEnabled</name>
      <value>true</value>
    </property>
    <property>
      <name>MaxStatements</name>
      <value>200</value>
    </property>
  </jdbc-resource

JVM tuning:

-server -Xmx1500m -Xms1500m -Xss128k -XX:+DisableExplicitGC

E-commerce Application Description

This test models an e-commerce web site that sells items from a large inventory. It uses the standard web application model-view-controller design pattern for its implementation: the user interface (that is, the view) is handled by 16 different JSP pages which interface with a single master control servlet. The servlet maintains JDBC connections to the database, which serves as the model and handles 27 different queries. The JSP pages make extensive use of JSP tag libraries and comprise almost 2000 lines of logic.

Database Cardinality

The database contains 1000 orderable items (which have two related tables which also have a cardinality of 1000), 72000 customers (with two related tables), and 1.9 million orders (with two related tables). Standard JDBC connections handle database connection using prepared statements and following standard JDBC design principles.

Workload

A randomly-selected user performs the online shopping. The following operations were used in the Matrix mix workload. Operations were carried out with the following precedence: Home, AdminConfirm, AdminRequest, BestSellers, BuyConfirm, BuyRequest, CustomerRegistration, NewProducts, OrderDisplay, OrderInquiry, ProductDetail, SearchRequest, SearchResults, and ShoppingCart.

The Faban driver was used to drive the load. Think time was chosen from a negative exponential distribution. The minimum think time was 7.5 seconds, the maximum was 75 seconds. The maximum number of concurrent users that the system can support was based on the following passing criteria.

Table 6–20 Performance Test Pass Criteria

Transaction 

90th Percentile Response Time (Seconds) 

HomeStart 

AdminConfirm 

20 

AdminRequest 

BestSellers 

BuyConfirm 

BuyRequest 

CustomerRegistration 

Home 

NewProducts 

OrderDisplay 

OrderInquiry 

ProductDetail 

SearchRequest 

SearchResults 

10 

ShoppingCart 

The following table shows the e-commerce web application test results.

Table 6–21 E-Commerce Web Application Scalability

Number of CPUs 

Users 

Throughput (ops/sec) 

7000 

790 

11200 

1350 

The following is a graphical representation of e-commerce web application scalability.

E-commerce Web Application Scalability- Number of CPU's
(Users)

The following is a graphical representation of e-commerce web application scalability.

E-commerce Web Application Scalability - Number of CPU's
(Throughput)