SPEC Seal of Reviewal SPECjAppServer®2004 Result
Copyright © 2004 Standard Performance Evaluation Corporation
Sun Java (TM) System Application Server 9.1 with Postgres 8.2
813.73 SPECjAppServer2004 JOPS@Standard
Submitter:
Sun Microsystems Inc.
SPEC license # 6 Test date:
Jul-2007
Software Products
Sun Java (TM) System Application Server 9.1
Jakarta Tomcat 5.5.16
Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
PostgreSQL JDBC TYPE IV 8.2
PostgreSQL 8.2.4
Software Configurations
J2EE Application Servers
Emulator SW Config
Database SW Config
Driver SW Config
Hardware Systems
J2EE AppServer HW
Database Server HW
Load Driver HW Primary (Emulator)
Load Satellite HW

System Configuration Diagram

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

SUT Configuration
J2EE Server Nodes: 2   DB Server Nodes: 1
J2EE Server CPUs: 8 cores, 4 chips (2 cores/chip)   DB Server CPUs: 8 cores, 1 chips (8 cores/chip)
J2EE Instances: 2   DB Instances: 1
Other SUT Components:
    None

Benchmark Settings
Dealer Injection Rate: 487   Ramp Up Time: 600 seconds
# of Dealer Agents: 4   Ramp Down Time: 300 seconds
# of Manufacturing Agents: 8   Steady State Time: 3,600 seconds
DB Load Injection Rate: 500   Trigger Time: 180 seconds

Detailed Results
Dealer Transaction Mix Count Tx. Mix
Purchase 440,855 25.03%
Manage 439,611 24.96%
Browse 880,874 50.01%
Total # Dealer Transactions 1,761,340
Total # Manufacturing Transactions 1,168,101
Response Times Average Maximum 90th% Reqd
Purchase 0.26 11.98 0.60 2.00
Manage 0.28 10.70 0.60 2.00
Browse 0.29 9.59 0.60 2.00
Manufacturing 1.94 9.80 2.75 5.00
Reproducibility Run (SPECjAppServer2004 JOPS) 815.44

Sun Java (TM) System Application Server 9.1
Vendor: Sun Microsystems, Inc. Availability: Sep-2007
CTS Version: CTS EE 5 Date Passed CTS: Sep-2007
OS Name: Solaris 10 11/06 (64-bit)
EJB Protocol: RMI/IIOP

Jakarta Tomcat 5.5.16
Vendor: Apache Software Foundation Availability: Mar-2006

Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
Vendor: Sun Microsystems, Inc. Availability: Jul-2007
OS Name: Solaris 10 11/06 (64-bit)

PostgreSQL JDBC TYPE IV 8.2
Vendor: PostgreSQL Global Development Group Availability: Aug-2007
OS Name: Solaris 10 11/06 (64-bit)

PostgreSQL 8.2.4
Vendor: PostgreSQL Global Development Group Availability: Apr-2007
OS Name: Solaris 10 11/06 (64-bit)

J2EE Application Servers
J2EE Product: Sun Java (TM) System Application Server 9.1
JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
JDBC Product: PostgreSQL JDBC TYPE IV 8.2
Hardware: J2EE AppServer HW
# of Instances: 2
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: -server -XX:+AggressiveHeap -Xms2560m -Xms2560m -Xmn1560m
-Xss128k -XX:+DisableExplicitGC -XX:ParallelGCThreads=4
-XX:LargePageSizeInBytes=2m -XX:+UseParallelOldGC
-DAllowManagedFieldsInDefaultFetchGroup=true -XX:-UseBiasedLocking
-XX:CompileThreshold=500 -Dcom.sun.enterprise.server.ss.ASQuickStartup=false
-DAllowMediatedWriteInDefaultFetchGroup=true
-XX:+AggressiveOpts -Dcom.sun.ejb.containers.readonly.relative.refresh.mode=true


JDBC Pool: max-pool-size=250 steady-pool-size=90 statement_cache=true
           prepareThreshold=1 ssl=false
HTTP: thread-count=26 acceptor-threads=2
Transaction Service: logging to jdbc/SPECDB
MDB Container: max-pool-size=32, steady-pool-size=0
ORB (thread-pool-1):   max-thread-pool-size=45

Emulator SW Config
JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
Web Product: Jakarta Tomcat 5.5.16
Hardware: Load Driver HW Primary (Emulator)
# of Instances: 1
Notes / Tuning Information
JVM Options: -server -XX:LargePageSizeInBytes=2m -XX:+AggressiveOpts -Xmx2048m -Xms2048m
Emulator Software Configuration.
server.xml: maxThreads=3000

Database SW Config
DB Product: PostgreSQL 8.2.4
Hardware: Database Server HW
# of Instances: 1
Notes / Tuning Information
Postgres tuning in postgresql.conf
listen_addresses  = *
max_connections = 1000
shared_buffers=3500MB
temp_buffers = 1000
max_prepared_transactions = 450
work_mem=100MB
maintenance_work_mem = 512MB
max_fsm_pages = 208000
max_fsm_relations = 10000
vacuum_cost_delay = 50
bgwriter_delay = 200ms
bgwriter_lru_percent=20.0
bgwriter_lru_maxpages=100
bgwriter_all_percent=3
bgwriter_all_maxpages=600
fsync = on
wal_sync_method = fdatasync
full_page_writes = off
wal_buffers = 2300
commit_delay = 10
checkpoint_segments = 256
checkpoint_timeout = 300
checkpoint_warning = 99
enable_seqscan = off
random_page_cost = 1.5
cpu_tuple_cost = 0.001
cpu_index_tuple_cost = 0.0005
cpu_operator_cost = 0.00025
effective_cache_size = 40GB
stats_start_collector = off
default_transaction_isolation = read committed
deadlock_timeout = 1000

Postgres compile flags used Sun Studio 12 :-
 -xO3 -xarch=v8 -xspace -W0,-Lt -W2,-Rcond_elim -Xa
 -xildoff -xc99=none -xCC

Increase Shared Ram for Postgres  :-
#projadd -U postgres user.postgres
#projmod -a -K "project.max-sem-ids=(priv,4k,deny)" user.postgres
#projmod -a -K "project.max-shm-memory=(priv,4G,deny)" user.postgres

Postgres was started using libumem :-
LD_PRELOAD=/usr/lib/libumem.so; export LD_PRELOAD
$POSTGRES_HOME/bin/pg_ctl -o -i -D $PGDATA -l /tmp/logfile start

Postgres available from www.postgres.org

Driver SW Config
JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 32-bit
Hardware: Load Driver HW Primary (Emulator)
# of Instances: 2
Notes / Tuning Information
JVM Options: -server-XX:LargePageSizeInBytes=2m -XX:+AggressiveOpts
-XX:+DisableExplicitGC -Xmx2048m -Xss128k
-Dnetworkaddress.cache.ttl=0 Dsun.net.inetaddr.ttl=0
-Djava.naming.provider.url=iiop://papps:3700
-Djava.naming.provider.url.pkgs=com.sun.enterprise.naming
-Dcom.sun.appserv.iiop.endpoints=papps1:3700,papps2:3700
-Dorg.omg.CORBA.ORBInitialHost=papps -Dorg.omg.CORBA.ORBInitialPort=3700

J2EE AppServer HW (SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire X4200 M2 OS Name: Solaris 10 11/06 (64-bit)
Processor: AMD Opteron 2220 SE Filesystem: UFS
MHz: 2800 Disks: 2x73Gb 10K RPM
# of CPUs: 4 cores, 2 chips, 2 cores/chip Network Interface: (4) 1000BaseT Ethernet
Memory (MB): 8192 Other Hardware:
L1 Cache: 64KB(I)+16KB(D) per core # of Systems: 2
L2 Cache: 1MB per core H/W Available: Sep-2006
Other Cache: OS Available: Nov-2006
Notes / Tuning Information

   

Database Server HW (SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire T2000 Server OS Name: Solaris 10 11/06 (64-bit)
Processor: UltraSPARC T1 Filesystem: UFS
MHz: 1200 Disks: 2x73Gb 10K RPM Ultra320 SCSI
# of CPUs: 8 cores, 1 chip, 8 cores/chip (4 threads/core) Network Interface: (4) Onboard 1000BaseT Ethernet
Memory (MB): 16376 Other Hardware: 1 SUN-StorageTEK 2540 (12x146GB 15000 RPM, 2 x raid controller)
L1 Cache: 16KB(I)+8KB(D) per core # of Systems: 1
L2 Cache: 3MB per chip H/W Available: Jan-2007
Other Cache: OS Available: Nov-2006
Notes / Tuning Information
UFS options for /disk1 and /disk2 :  noatime,forcedirectio,nologging
UFS Options for /log: noatime,forcedirectio,nologging

System Tuning in /etc/system :
set pcie:pcie_aer_ce_mask=0x1
set autoup=900
set tune_t_fsflushr=1
set rlim_fd_max=260000
set rlim_fd_cur=260000
set maxphys=1048576
set ip:ip_squeue_fanout= 1
set ip:ip_squeue_bind = 0
set disable_ism_large_pages = 0x34

Network tuning in /etc/rc3.d/S99network
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

Load Driver HW Primary (Emulator) (non-SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire V40z OS Name: Solaris 10 1/06 (64-bit)
Processor: AMD Opteron 850 Filesystem: UFS
MHz: 2400 Disks: 2 x 36GB
# of CPUs: 4 cores, 4 chips, 1 core/chip Network Interface: (2) Onboard 1000BaseT Ethernet
Memory (MB): 8192 Other Hardware: null
L1 Cache: 64KB(I)+64KB(D) # of Systems: 2
L2 Cache: 1MB H/W Available: Jul-2004
Other Cache: OS Available: Jan-2006
Notes / Tuning Information


Load Satellite HW (non-SUT hardware)
Hardware Vendor: Sun Microsystems, Inc. OS Vendor: Sun Microsystems, Inc.
Model Name: Sun Fire V40z OS Name: Solaris 10 1/06 (64-bit)
Processor: AMD Opteron 850 Filesystem: UFS
MHz: 2400 Disks: 2 x 36GB
# of CPUs: 4 cores, 4 chips, 1 core/chip Network Interface: (2) Onboard 1000BaseT Ethernet
Memory (MB): 8192 Other Hardware: null
L1 Cache: 64KB(I)+64KB(D) # of Systems: 2
L2 Cache: 1MB H/W Available: Jul-2004
Other Cache: OS Available: Jan-2006
Notes / Tuning Information


Benchmark Modifications
Schema Modifications:
  Scripts to create the DB are included in the FDA.
  fill factor was modified on tables.
  
  Added TABLE TXN_LOG_TABLE to support JMS transaction logging to database
  Added primary keys to tables
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)
  were used for the database files and logs maintained
  on the Sun StorageTek 2540 Array.
  The caches in the array are battery backed (72 hours)
  
  Each application server has a pair of mirrored disks
  (using Sun Fire integrated raid controller utility) to provide
  durability for the JMS messages. Disk caches on all internal disks are set to write through.
Storage Requirement Info:
  The 75 minute run for this submission required less than 5GB of database storage.
  This extrapolates to less than 97GB for a 24 hour period.
  The Sun StorageTek 2540 Array drive capacity is 876GB of available storage when configured for RAID 1.
Argument Passing Semantics:
  Sun Java System Application Server 9.1 uses pass-by-value semantics by default.

Bill of Materials

Supplier  Description                                Product #            Qty
--------  ----------------------------------------   ------------------   ---
Sun	  Sun Fire X4200 M2 (2x2220 SE ,2X73GB)	     A87-KPZ22H8GCBA       2
Sun	  Solaris 10 RTU			         		   2
Sun  	  SunSpectrum Upgrade: 3YGOLD, 24x7	     W9D-A65-24-3G	   2

Sun	  Sun Fire T2000, 1x1.2 GHz, 16 GB mem	     T20Z108B-16GA2G       1
Sun       4 Gb Dual FC PCI-X Host Bus Adapter        SG-XPCI2FC-QF4        1
Sun 	  SunSpectrum Upgrade: 3YGOLD, 24x7	     W9D-T2000-8-24-3G 	   1

Sun       StorageTek 2540, 12 x 146GB, 12*RAID       XTA2540R01A2E1752     1
Sun       SunSpectum Upgrade: 3Y GOLD, 24x7	     W9D-ST2540-24-3G	   1
Sun       17" Entry Color Monitor                    X7204A                1
Sun       USB Keyboard                               320-1271              1
Sun       USB Mouse                                  320-2632              1

Sun       Sun Java System Application Server 9.1	          

Sun       Sun Java System Application Server 9.1     SJSAS-PE9F-1PR	   12
	    Premium Support per CPU for 1 year

PostgreSQL   PostgreSQL 8.2 Database                 
EnterpriseDB PostgreSQL support (premium)                                  3




Other Benchmark Information
  The submission used round-robin DNS for load-balance of
  all HTTP network requests. The DNS server was hosted
  on one of the application servers.
  
  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 Java System Application Server 9.1
  The emulator used xerces implementation 2.7.1 provided with the Jakarta
  Tomcat 5.5.16
  

General Notes
The only errors in the driver log files were those that are normally generated by this benchmark .
The Postgres JDBC driver is a Type 4 JDBC driver

Recoverable 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 transaction log record are
written to the database in a single transaction.

Database checkpoints during the Measurement Interval were done
 every 300 secs as per checkpoint_timeout=300 in the postgresql.conf


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 18-Jul-2007