SPEC Seal of Reviewal SPECjAppServer®2004 Result
Copyright © 2004 Standard Performance Evaluation Corporation
Sun GlassFish Enterprise Server v2.1 on Sun Fire X2270 with MySQL 5.1 on OpenSolaris 2008.11
2,925.18 SPECjAppServer2004 JOPS@Standard
Submitter:
Sun Microsystems Inc.
SPEC license # 6 Test date:
Mar-2009
Software Products
Sun GlassFish Enterprise Server v2.1
Jakarta Tomcat 5.5.23
Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_14 Performance Release
Java HotSpot(TM) 32-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Connector/J 5.1.5
MySQL 5.1.30 64-bit
Software Configurations
J2EE Application Server
Emulator SW Config
Database SW Config
Driver SW Config - Primary & Satellites
Hardware Systems
J2EE AppServer HW
Database Server HW
Load Driver & Satellite
Emulator

System Configuration Diagram

Benchmark
Modifications
Configuration
Bill of Materials
Other Info
General Notes
Full Disclosure Archive

SUT Configuration
J2EE Server Nodes: 1   DB Server Nodes: 1
J2EE Server CPUs: 8 cores, 2 chips   DB Server CPUs: 8 cores, 2 chips
J2EE Instances: 4   DB Instances: 1
Other SUT Components:
   

Benchmark Settings
Dealer Injection Rate: 1,750   Ramp Up Time: 600 seconds
# of Dealer Agents: 20   Ramp Down Time: 300 seconds
# of Manufacturing Agents: 8   Steady State Time: 3,600 seconds
DB Load Injection Rate: 2,000   Trigger Time: 1,200 seconds

Detailed Results
Dealer Transaction Mix Count Tx. Mix
Purchase 1,583,695 25.00%
Manage 1,582,369 24.98%
Browse 3,167,530 50.01%
Total # Dealer Transactions 6,333,594
Total # Manufacturing Transactions 4,197,054
Response Times Average Maximum 90th% Reqd
Purchase 0.28 9.54 0.70 2.00
Manage 0.20 11.01 0.50 2.00
Browse 0.33 9.18 0.70 2.00
Manufacturing 1.59 14.49 2.50 5.00
Reproducibility Run (SPECjAppServer2004 JOPS) 2,926.40

Sun GlassFish Enterprise Server v2.1
Vendor: Sun Microsystems, Inc. Availability: Mar-2009
CTS Version: CTS EE 5 Date Passed CTS: Feb-2007
OS Name: OpenSolaris 2008.11 64-bit
EJB Protocol: RMI/IIOP

Jakarta Tomcat 5.5.23
Vendor: Apache Software Foundation Availability: Aug-2007

Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_14 Performance Release
Vendor: Sun Microsystems, Inc. Availability: Jun-2009
OS Name: OpenSolaris 2008.11 64-bit

Java HotSpot(TM) 32-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Vendor: Sun Microsystems, Inc. Availability: Jul-2008
OS Name: Solaris 10 10/08 64-bit

Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Vendor: Sun Microsystems, Inc. Availability: Jul-2008
OS Name: Solaris 10 10/08 64-bit

Connector/J 5.1.5
Vendor: Sun Microsystems, Inc Availability: Oct-2007
OS Name: OpenSolaris 2008.11 64-bit

MySQL 5.1.30 64-bit
Vendor: Sun Microsystems, Inc. Availability: Dec-2008
OS Name: OpenSolaris 2008.11 64-bit

J2EE Application Server
J2EE Product: Sun GlassFish Enterprise Server v2.1
JVM Product: Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_14 Performance Release
JDBC Product: Connector/J 5.1.5
Hardware: J2EE AppServer HW
# of Instances: 4
Interfaces:
Web Interface for the Dealer Domain
Web Interface for the Supplier Domain
EJB Interface for the Dealer Domain
EJB Interface for the Manufacturing Domain
EJB Interface for the Supplier Domain
Notes / Tuning Information
Tunings in domain.xml:
JVM Options: -d64 -server -XX:MaxPermSize=192 -XX:+AggressiveHeap -XX:+AggressiveOpts
 -Xms3g -Xms3g -Xmn1536m -Xss256k -XX:+UseCompressedOops
 -XX:+DisableExplicitGC -XX:ParallelGCThreads=8
 -XX:LargePageSizeInBytes=2m -XX:+UseParallelOldGC
 -XX:-UseBiasedLocking -XX:+PerfDataSaveToFile
 -XX:CompileThreshold=500

JDBC Pool (for EJBs): max-pool-size=150 steady-pool-size=150
cachePrepStmts=true prepStmtCacheSize=512 alwaysSendSetIsolation=false
useLocalSessionState=true useServerPreparedStmts=false useReadAheadInput=false
elideSetAutoCommits=true useUsageAdvisor=false useReadAheadInput=false
useUnbufferedInput=false cacheServerConfiguration=true
General Tunings:
All Glassfish instances run in the FX class via the priocntl command

Emulator SW Config
JVM Product: Java HotSpot(TM) 64-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Web Product: Jakarta Tomcat 5.5.23
Hardware: Emulator
# of Instances: 1
Notes / Tuning Information
JVM Options: -d64 -server -Xms20g -Xmx20g -Xmn2g -Xss256k
 -XX:+UseConcMarkSweepGC -XX:LargePageSizeInBytes=4m -verbose:gc
 -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:-TraceClassUnloading
 -XX:PermSize=96m -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0
server.xml: maxThreads=1000

Database SW Config
DB Product: MySQL 5.1.30 64-bit
Hardware: Database Server HW
# of Instances: 1
Notes / Tuning Information
MySQL 5.1 Tuning in /etc/my.cnf (included in FDA)
[mysqld]
sql-mode = IGNORE_SPACE
transaction-isolation = READ-COMMITTED
max_allowed_packet = 2M
max_connections=1000
max_connect_errors=100
table_cache = 6000
read_rnd_buffer_size = 2M
sort_buffer_size = 32k
thread_cache = 16
query_cache_size = 0M
thread_concurrency = 32
max_heap_table_size=200M
innodb_data_home_dir = /Data/mysql/var
innodb_data_file_path = ibdata1:10000M:autoextend
innodb_file_per_table
innodb_log_group_home_dir = /Logs/mysql/var/
innodb_checksums = 0
innodb_doublewrite = 0
innodb_buffer_pool_size = 5000m
innodb_additional_mem_pool_size = 20M
innodb_log_file_size = 1600M
innodb_log_buffer_size = 16M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 300
innodb_thread_concurrency = 0
innodb_sync_spin_loops = 40
innodb_locks_unsafe_for_binlog = 1
innodb_max_dirty_pages_pct=15
innodb_support_xa=0

MySQL 5.1 run in the FX class via the priocntl command

Driver SW Config - Primary & Satellites
JVM Product: Java HotSpot(TM) 32-Bit Server VM on Solaris, version 1.6.0_06 Performance Release
Hardware: Load Driver & Satellite
# of Instances: 2
Notes / Tuning Information
JVM Options: -server -XX:LargePageSizeInBytes=2m -XX:+AggressiveOpt -XX:+DisableExplicitGC
             -Xmx2048m -Xss128k
-Dnetworkaddress.cache.ttl=0 Dsun.net.inetaddr.ttl=0
-Djava.naming.provider.url=iiop://apps:3700
-Djava.naming.provider.url.pkgs=com.sun.enterprise.naming
-Dcom.sun.appserv.iiop.endpoints=appzone1:${IIOP_PORT},appzone2:${IIOP_PORT},appzone3:${IIOP_PORT},appzone4:${IIOP_PORT}
-Dorg.omg.CORBA.ORBInitialHost=apps -Dorg.omg.CORBA.ORBInitialPort=3700
-Djava.util.logging.config.file=${JAS_HOME}/logging.properties

J2EE AppServer HW (SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire X2270 OS Name: OpenSolaris 2008.11 64-bit
Processor: Intel Xeon X5570 (Intel Turbo Boost Technology up to 3.20 GHz) Filesystem: ZFS
MHz: 2930 Disks: 4x 500GB SATA disks
# of CPUs: 8 cores, 2 chips, 4 cores/chip, 2 threads/core Network Interface: 2x onboard 1 Gbit NICs, 1x dual port 10Gbit NIC
Memory (MB): 24576 Other Hardware:
L1 Cache: 32KB(I)+32KB(D) on chip per core # of Systems: 1
L2 Cache: 256 KB I+D on chip per core H/W Available: Apr-2009
Other Cache: 8 MB I+D L3 on chip per chip OS Available: Nov-2008
Notes / Tuning Information
System Tuning in /etc/system:
set ddi_msix_alloc_limit=8
set pcplusmp:apic_multi_msi_max=8
set pcplusmp:apic_msix_max=8
set pcplusmp:apic_intr_policy=1
Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 524288
ndd -set /dev/tcp tcp_recv_hiwat 524288
ndd -set /dev/tcp tcp_naglim_def 1
Configuration notes:
2x disks for OS and Solaris Containers.
2x disks appserver logs and JMS persistence filestore.
Four application server instances were hosted in 4 separate Solaris Containers.
Two Containers were bound to a processor set consisting of 4 cores
(1 chip) using the psrset command.
The other 2 containers used the default processor set.
Each Container on the system was connected to 2 subnets.
The first subnet in each container was used for driver access and
connected to the 10 Gbit switch.
Two containers shared one 10Gbit NIC for this subnet
The second subnet in each container was used for database access
where 2 containers shared a 1GBit NIC for this subnet.

Database Server HW (SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire X4170 OS Name: OpenSolaris 2008.11 64-bit
Processor: Intel Xeon X5570 (Intel Turbo Boost Technology up to 3.20 GHz) Filesystem: ZFS
MHz: 2930 Disks: 1x146Gb 10K RPM SAS, 1x Sun StorageTek 2540
# of CPUs: 8 cores, 2 chips, 4 cores/chip, 2 threads/core Network Interface: 2x onboard 1 Gbit NICs, 1x dual port 10Gbit NIC
Memory (MB): 49152 Other Hardware: 1x 4Gb Dual Port PCI-E Fiber Channel card
L1 Cache: 32KB(I)+32KB(D) on chip per core # of Systems: 1
L2 Cache: 256 KB I+D on chip per core H/W Available: Apr-2009
Other Cache: 8 MB I+D L3 on chip per chip OS Available: Nov-2008
Notes / Tuning Information
System Tuning in /etc/system:
set ddi_msix_alloc_limit=8
set pcplusmp:apic_multi_msi_max=8
set pcplusmp:apic_msix_max=8
set pcplusmp:apic_intr_policy=1
Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1
One processor set configured with 4 HW threads executing netork interrupt threads.

Load Driver & Satellite (non-SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun SPARC Enterprise M5000 OS Name: Solaris 10 10/08 64-bit
Processor: SPARC64 VI Filesystem: UFS
MHz: 2150 Disks: 2 x 73GB Ultra320 SCSI disks
# of CPUs: 16 cores, 8 chips, 2 cores/chip, 2 threads/core Network Interface: 2x Dual Port 10 GbE card
Memory (MB): 121072 Other Hardware:
L1 Cache: 128KB(I)+128KB(D) per core # of Systems: 2
L2 Cache: 5MB per chip H/W Available: Apr-2007
Other Cache: OS Available: Oct-2008
Notes / Tuning Information
System Tuning in /etc/system:
set ip:ip_soft_rings_cnt = 8
Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1

Emulator (non-SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun SPARC Enterprise M4000 OS Name: Solaris 10 10/08 64-bit
Processor: SPARC64 VI Filesystem: UFS
MHz: 2150 Disks: 2 x 73GB Ultra320 SCSI disks
# of CPUs: 8 cores, 4 chips, 2 cores/chip Network Interface: 1x Dual Port 10Gbit NIC
Memory (MB): 65536 Other Hardware:
L1 Cache: 128KB(I)+128KB(D) per core # of Systems: 1
L2 Cache: 5MB per chip H/W Available: Apr-2007
Other Cache: OS Available: Oct-2008
Notes / Tuning Information
System Tuning in /etc/system:
set ip:ip_soft_rings_cnt = 8
Network Tuning:
ndd -set /dev/tcp tcp_conn_req_max_q 16384
ndd -set /dev/tcp tcp_conn_req_max_q0 16384
ndd -set /dev/tcp tcp_xmit_hiwat 131072
ndd -set /dev/tcp tcp_recv_hiwat 131072
ndd -set /dev/tcp tcp_naglim_def 1

Benchmark Modifications
Schema Modifications:
  Scripts to create the DB are included in the FDA.
  Extra indexes were created
  CREATE UNIQUE INDEX M_lo_idx ON M_largeorder  (lo_id)
  CREATE UNIQUE INDEX M_OL_O_idx ON M_largeorder (lo_o_id, lo_ol_id)
  CREATE INDEX C_custci_idx ON C_customerinventory(ci_customerid);
  CREATE INDEX O_status_idx ON O_orders (o_status);
  CREATE INDEX O_oc_os_idx ON O_orders (o_c_id, o_status);
  Added TABLE TXN_LOG_TABLE to support JMS transaction logging to database
  Created the primary indexes via the MySQL primary key syntax
Load Program Modifications:
  The load program was not modified

Benchmark Configuration Information
Isolation Requirement Info:
  BEAN				SPEC_REQUIREMENT	Deployment
  Corp.CustomerEnt		Repeatable Read		Sel-4-Upd
  Corp.CustomerInventoryEnt	Repeatable Read		Sel-4-Upd
  Mfg.InventoryEnt		Repeatable Read		Sel-4-Upd
  Mfg.WorkOrderEnt		Repeatable Read		Sel-4-Upd
  Orders.OrderEnt		Repeatable Read		Sel-4-Upd
  Orders.OrderLineEnt		Repeatable Read		Sel-4-Upd
  Supplier.POEnt		Repeatable Read		Sel-4-Upd
  Supplier.POLineEnt		Repeatable Read		Sel-4-Upd
  Supplier.SComponentEnt	Repeatable Read		Sel-4-Upd
  Util.SequenceEnt		Repeatable Read		Sel-4-Upd
  Mfg.AssemblyEnt		Read Committed		RC
  Mfg.BomEnt			Read Committed		RC
  Mfg.ComponentEnt		Read Committed		RC
  Mfg.LargeOrderEnt		Read Committed		RC
  Mfg.PartEnt			Read Committed		RC
  Orders.ItemEnt		Read Committed		RC
  Supplier.SupplierCompEnt	Read Committed		RC
  Supplier.SupplierEnt		Read Committed		RC
  
  The ItemEnt bean was cached for 20 minute intervals by setting
  is-read-only-bean=true and refresh-period-in-seconds=1200 in the
  sun-orders.xml deployment descriptor.
  Only the data inside the bean was cached.
Durability Requirement Info:
  To ensure database durability, RAID 1 (mirror disks) was used
  for the database files and logs on the Storage Tek 2540 array.
  
  Each application server has a pair of disks
  to create a ZFS mirrored filesystem for the JMS
  logs to ensure durability for the JMS messages.
Storage Requirement Info:
  A 75 minute run at an injection rate of 1750 increased storage by 6374  MB
  This extrapolates to 122 GB storage for a 24 hour run.
  The database was configured with 1752 GB of storage.
  
Argument Passing Semantics:
  Sun GlassFish Enterprise Server v2.1 uses pass-by-value semantics by default.

Bill of Materials

Supplier  Description                                  Product No.          Qty
--------  ------------------------------------------   ------------------   ---
Sun       Sun Fire X2270 Base 			       X2270-H1-AA	     1
Sun	  Intel Xeon Quad-Core X5570 - 2.93 GHz        X8334A                2
Sun	  4GB DDR3 Memory Kit - 1333 MHz	       X8338A                6
Sun	  500GB 3.5-inch SATA Drive                    XRA-ST1CR-500G7K      3
Sun	  Sun Dual 10GbE XFP SR PCI-Express card       X1107A-Z		     1
Sun	  ILOM Server Processor Module		       X8340A 		     1
Sun       In-Warranty Upgrade: 3YGOLD, 24x7            IWU-X2270-24-3G       1

Sun       Sun Fire X4170 Base 			       X4170-S1-AA	     1
Sun	  Intel Xeon Quad-Core X5570 - 2.93 GHz        X5861A                2
Sun	  CPU Heatsink for Sun Fire X4170 Server       5898A		     2
Sun	  4GB DDR3 Memory Kit - 1066 MHz	       5867A                12
Sun	  146GB/15K 2.5-inch SAS Drive                 RA-SS2CF-146G15K      1
Sun	  Sun Dual 10GbE XFP SR PCI-Express card       X1107A-Z		     1
Sun	  4 Gb PCI-E Dual Port FC/AL card	       SG-XPCIE2FC-EM4	     1
Sun	  750W power supply			       6333A		     1
Sun       In-Warranty Upgrade: 3YGOLD, 24x7            IWU-X4170-24-3G       1

Sun	  Sun StorageTek 2540, 12 x 146GB, 2 RAID      XTA2540R01D2E1752     1
Sun	  SunSpectum Upgrade: 3Y GOLD, 24x7	       IWU-ST2540NW-24-3G    1

Sun       17" Entry Color Monitor                      X7204A                1
Sun       XVR-300 Graphics Accelerator                 X3000A                1
Sun       USB Keyboard & Mouse                         320-1366              1

Sun       Sun GlassFish Enterprise Server V2.1				     1
Sun       MySQL Connector/J 5.1.5                                            1

Sun       Sun GlassFish Enterprise Server V2.1
          Inc Premium Support per CPU for 1 year    ASE29-00P-B929	     3
	   	  
Sun	  MySQL Database 5.1			                             1
Sun	  MySQL Enterprise Gold Support				   	     3
	     for 1 year
                                        


Other Benchmark Information
  The submission used round-robin DNS for load-balance of
  all HTTP network requests. The DNS server was hosted
  on the database server.
  The submission used multiple endpoints to establish connections
  to the EJB tier using RMI/IIOP.
  
  This submission used the xerces implementation 2.6.2 provided
  with the Sun GlassFish Enterprise Server v2.1

General Notes
The only errors in the driver log files were those that are normally
generated by this benchmark.
The MySQL Connector/J JDBC Driver is a type 4 driver.

XA 2-phase transactions were used to coordinate the interaction between
the database server and JMS server using Sun's Last Agent Logging
Optimization; the 1PC database transactions and XA logs are
written to the database in a single transaction.

Database checkpoints during the Measurement Interval were done by
using continuous (fuzzy) checkpoints, where MySQL database engine InnoDB
flushes modified database pages from the buffer pool in batches.

10 GbE Switch Details:
1x Foundry EdgeIron 8-port 10GbE Switch - Product No. EIF8X10G
8x 10GbE XFP Transceivers - Product No. 10G-XFP-SR


For questions about this result, please contact the submitter: Sun Microsystems Inc.
For other inquiries, please contact webmaster@spec.org

Copyright © 2004 Standard Performance Evaluation Corporation

First published at SPEC.org on 20-Apr-2009