The e-commerce application is a more complicated application that utilizes a database to simulate online shopping.
The e-commerce studies were conducted using the following hardware.
Web Server system configuration:
Sun Microsystems Sun Fire 880 ( 900MHz US-III+). Only four CPUs were used for this test.
16384 Megabytes of memory.
Solaris 10 operating system.
Database system configuration:
Sun Microsystems Sun Fire 880 ( 900MHz US-III+)
16384 Megabytes of memory
Solaris 10 operating system
Oracle 10.1.0.2.0
Driver system configuration:
Sun Microsystems Sun Fire 880 ( 900MHz US-III+)
Solaris 10 operating system
Network configuration:
The Web Server, database, and the driver machines were connected with a gigabit Ethernet link.
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
The 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.
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.
A randomly-selected user performs the online shopping. The following operations were used in the Matrix mix workload (operations were carried out with precedence of operations): 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 |
3 |
AdminConfirm |
20 |
AdminRequest |
3 |
BestSellers |
5 |
BuyConfirm |
5 |
BuyRequest |
3 |
CustomerRegistration |
3 |
Home |
3 |
NewProducts |
5 |
OrderDisplay |
3 |
OrderInquiry |
3 |
ProductDetail |
3 |
SearchRequest |
3 |
SearchResults |
10 |
ShoppingCart |
3 |
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) |
---|---|---|
2 |
7000 |
790 |
4 |
11200 |
1350 |
The following is a graphical representation of e-commerce web application scalability.
The following is a graphical representation of e-commerce web application scalability.