-------------------------------------------------------------------------------- SPECjAppServer(R)2004 Result Copyright (C) 2004 Standard Performance Evaluation Corporation -------------------------------------------------------------------------------- Oracle Application Server 10G Release 10.1.3.2 - Java Edition on Rackable Systems C2002 -------------------------------------------------------------------------------- 1,672.64 SPECjAppServer2004 JOPS@Standard -------------------------------------------------------------------------------- Submitter: Oracle Corporation SPEC license # 73 Test date: Aug-2007 -------------------------------------------------------------------------------- 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: Cisco Catalyst 3560G Switch -------------------------------------------------------------------------------- BENCHMARK SETTINGS -------------------------------------------------------------------------------- Dealer Injection Rate: 1,000 Ramp Up Time: 900 sec # of Dealer Agents: 5 Ramp Down Time: 300 sec # of Manufacturing Agents: 5 Steady State Time: 3,600 sec DB Load Injection Rate: 1,000 Trigger Time: 320 sec -------------------------------------------------------------------------------- Detailed Results -------------------------------------------------------------------------------- Dealer Transaction Mix Count Tx. Mix Purchase 902,403 24.97% Manage 903,766 25.01% Browse 1,807,681 50.02% Total # Dealer Transactions 3,613,850 Total # Manufacturing Transactions 2,407,659 Response Times Average Maximum 90th% Reqd Purchase 0.42 6.04 1.20 2.00 Manage 0.29 7.12 0.70 2.00 Browse 0.52 4.75 1.40 2.00 Manufacturing 1.43 6.16 2.25 5.00 Reproducibility Run (SPECjAppServer2004 JOPS) 1,673.15 -------------------------------------------------------------------------------- SOFTWARE PRODUCTS -------------------------------------------------------------------------------- Oracle Application Server 10G Release 10.1.3.2 - Java Edition Vendor: Oracle Corporation Availability Date: Nov-2007 Date Passed CTS: Jan-2006 CTS Version: 1.4 EJB Protocol: ORMI OS Name: Red Hat Enterprise Linux 5 IA32 PAE -------------------------------------------------------------------------------- BEA JRockit(R) 6.0 JDK (R27.3.0-106) (Linux x86 32bit) Vendor: BEA Systems, Inc. Availability Date: Jul-2007 OS Name: Red Hat Enterprise Linux 5 IA32 PAE -------------------------------------------------------------------------------- Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 64-bit Vendor: Sun Microsystems, Inc Availability Date: Jul-2007 OS Name: Red Hat Enterprise Linux 4 Update 4 EM64T -------------------------------------------------------------------------------- Oracle JDBC Driver 10.2.0.2 (Thin) Vendor: Oracle Corporation Availability Date: Feb-2006 OS Name: Red Hat Enterprise Linux 5 IA32 PAE -------------------------------------------------------------------------------- Oracle Database Enterprise Edition Release 10.2.0.2 Vendor: Oracle Corporation Availability Date: Feb-2006 OS Name: Red Hat Enterprise Linux 4 Update 4 EM64T -------------------------------------------------------------------------------- SOFTWARE CONFIGURATIONS -------------------------------------------------------------------------------- J2EE Application Server J2EE Product: Oracle Application Server 10G Release 10.1.3.2 - Java Edition JVM Product: BEA JRockit(R) 6.0 JDK (R27.3.0-106) (Linux x86 32bit) JDBC Product: Oracle JDBC Driver 10.2.0.2 (Thin) Hardware: J2EE Server 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 -showversion -Xms2800m -Xmx2800m -XXaggressive -XXinternalCompactRatio=1 -XXexternalCompactRatio=10 -XXheapParts=128 -XXgcthreads=2 -XXoptthreads=2 -Xverbose:memdbg,opt,gcpause,gcreport -Doracle.dms.sensors=none -Doc4j.jms.implementation=oc4j.j2ee.jms -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 -------------------------------------------------------------------------------- Emulator SW Config JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 64-bit Web Product: Oracle Application Server 10G Release 10.1.3.2 - Java Edition Hardware: Drivers and Emulator HW # of Instances: 1 Notes / Tuning Information -server -Xms14000M -Xmx14000M -XX:+AggressiveOpts -XX:+DisableExplicitGC -verbosegc -XX:+PrintGCTimeStamps -Dnetworkaddress.cache.ttl=1 -Dsun.net.inetaddr.ttl=1 -------------------------------------------------------------------------------- Database SW Config DB Product: Oracle Database Enterprise Edition Release 10.2.0.2 Hardware: Database Server HW # of Instances: 1 Notes / Tuning Information db_name = spec control_files = ?/dbs/cntrlspec compatible = 10.2.0.1.0 cursor_space_for_time = TRUE db_cache_size = 19500M db_8k_cache_size = 3900M db_4k_cache_size = 3000M db_keep_cache_size = 1000M db_file_multiblock_read_count = 128 db_block_size = 2048 db_files = 256 dml_locks = 600 log_buffer = 10485760 log_checkpoint_interval = 0 processes = 600 open_cursors = 2000 shared_pool_size = 1180M sessions = 800 transactions = 800 transactions_per_rollback_segment = 1 parallel_max_servers = 100 undo_management = AUTO undo_retention = 5 undo_tablespace = undo_ts db_writer_processes = 4 log_checkpoints_to_alert= TRUE db_block_checksum = FALSE trace_enabled = FALSE timed_statistics = FALSE statistics_level = BASIC -------------------------------------------------------------------------------- Driver SW Config Primary JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 64-bit Hardware: Drivers and Emulator HW # of Instances: 1 Notes / Tuning Information -server -Xms1400M -Xmx1400M -Xverify:none -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+DisableExplicitGC -XX:+UseParallelGC -Dnetworkaddress.cache.ttl=0 -Dsun.net.inetaddr.ttl=0 -------------------------------------------------------------------------------- Driver SW Config Satellite JVM Product: Java (TM) 2 Platform Standard Edition Development Kit 6.0 Update 2 64-bit Hardware: Drivers and Emulator HW # of Instances: 1 Notes / Tuning Information -server -Xms1400M -Xmx1400M -Xverify:none -Xloggc:gc.log -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+DisableExplicitGC -XX:+UseParallelGC -Dnetworkaddress.cache.ttl=0 -Dsun.net.inetaddr.ttl=0 -------------------------------------------------------------------------------- HARDWARE SYSTEMS -------------------------------------------------------------------------------- J2EE Server HW (SUT hardware) Hardware Vendor: Rackable Systems Model Name: C2002 Processor: Intel(R) Xeon(R) CPU X5355 MHz: 2660 # of CPUs: 8 cores, 2 chips, 4 cores/chip Memory (MB): 16384 L1 Cache: 64KB(I)+64KB(D) L2 Cache: 2x4MB per chip Other Cache: OS Vendor: Red Hat OS Name: Red Hat Enterprise Linux 5 IA32 PAE Disks: 2x147 GB SAS 15K RPM Network Interface: (3) Dual Port 1000 BaseT Ethernet Other Hardware: # of Systems: 1 H/W Available: Jun-2007 O/S Available: Feb-2007 Notes / Tuning Information /etc/sysctl.conf: net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.tcp_syncookies = 1 kernel.msgmnb = 65536 kernel.msgmax = 65536 kernel.shmmax = 4294967295 kernel.shmall = 268435456 vm.hugetlb_shm_group = 500 vm.nr_hugepages = 7200 fs.file-max = 65536 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.eth0.arp_ignore = 1 net.ipv4.conf.eth1.arp_ignore = 1 net.ipv4.conf.eth2.arp_ignore = 1 net.ipv4.conf.eth3.arp_ignore = 1 net.ipv4.conf.eth5.arp_ignore = 1 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.eth0.arp_announce = 2 net.ipv4.conf.eth1.arp_announce = 2 net.ipv4.conf.eth2.arp_announce = 2 net.ipv4.conf.eth3.arp_announce = 2 net.ipv4.conf.eth5.arp_announce = 2 net.ipv4.tcp_fin_timeout = 20 /etc/rc.d/rc.local: echo "500000" > /proc/sys/fs/file-max echo "10000000" > /proc/sys/net/core/optmem_max echo "10000000" > /proc/sys/net/core/rmem_default echo "10000000" > /proc/sys/net/core/rmem_max echo "10000000" > /proc/sys/net/core/wmem_default echo "10000000" > /proc/sys/net/core/wmem_max echo "2000000" > /proc/sys/net/ipv4/tcp_max_tw_buckets echo "30000000 30000000 30000000" > /proc/sys/net/ipv4/tcp_mem echo "30000000 30000000 30000000" > /proc/sys/net/ipv4/tcp_rmem echo "30000000 30000000 30000000" > /proc/sys/net/ipv4/tcp_wmem echo "0" > /proc/sys/net/ipv4/tcp_timestamps echo "12000" > /proc/sys/net/ipv4/tcp_max_syn_backlog echo "10000" > /proc/sys/net/core/somaxconn echo "0" > /proc/sys/net/ipv4/ip_forward echo "400000" > /proc/sys/net/core/netdev_max_backlog /sbin/ifconfig eth0 txqueuelen 60000 /sbin/ifconfig eth1 txqueuelen 60000 /sbin/ifconfig eth2 txqueuelen 60000 /sbin/ifconfig eth3 txqueuelen 60000 /sbin/ifconfig eth5 txqueuelen 60000 /sbin/ethtool -K eth0 tso on /sbin/ethtool -K eth1 tso on /sbin/ethtool -K eth2 tso on /sbin/ethtool -K eth3 tso on /sbin/ethtool -K eth5 tso on /sbin/ethtool -K eth0 gso on /sbin/ethtool -K eth1 gso on /sbin/ethtool -K eth2 gso on /sbin/ethtool -K eth3 gso on /sbin/ethtool -K eth5 gso on /etc/init.d/irqbalance stop echo "02" > /proc/irq/`cat /proc/interrupts | grep eth0 | sed "s/:.*//"`/smp_affinity echo "08" > /proc/irq/`cat /proc/interrupts | grep eth1 | sed "s/:.*//"`/smp_affinity echo "20" > /proc/irq/`cat /proc/interrupts | grep eth2 | sed "s/:.*//"`/smp_affinity echo "80" > /proc/irq/`cat /proc/interrupts | grep eth3 | sed "s/:.*//"`/smp_affinity echo "01" > /proc/irq/`cat /proc/interrupts | grep eth5 | sed "s/:.*//"`/smp_affinity mount -t hugetlbfs nodev /mnt/hugepages chmod 777 /mnt/hugepages -------------------------------------------------------------------------------- Database Server HW (SUT hardware) Hardware Vendor: Rackable Systems Model Name: S3118 Processor: Intel(R) Xeon(R) CPU E5345 MHz: 2330 # of CPUs: 8 cores, 2 chips, 4 cores/chip Memory (MB): 32768 L1 Cache: 64KB(I)+64KB(D) L2 Cache: 2x4MB per chip Other Cache: OS Vendor: Red Hat OS Name: Red Hat Enterprise Linux 4 Update 4 EM64T Disks: 16x73GB SAS 15K RPM, 1x400GB WD SATA 7200 RPM Network Interface: (2) Dual Port 1000 BaseT Ethernet Other Hardware: # of Systems: 1 H/W Available: Jun-2007 O/S Available: Jul-2006 Notes / Tuning Information /etc/sysctl.conf: net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 vm.nr_hugepages = 14336 kernel.shmmax = 30064771072 kernel.shmall = 29360128 kernel.sem = 250 32000 100 128 fs.file-max = 131072 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 1048576 net.core.wmem_default = 1048576 net.core.rmem_max = 1048576 net.core.wmem_max = 1048576 /etc/rc.local: /sbin/ifconfig eth0 txqueuelen 60000 /sbin/ifconfig eth1 txqueuelen 60000 /etc/init.d/xinetd start /etc/init.d/iptables stop chmod a+rwx /dev/raw/raw* echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore Virtual IP was configured on two network interfaces to support subnets for communication between the database and the appserver instances. -------------------------------------------------------------------------------- Drivers and Emulator HW (non-SUT hardware) Hardware Vendor: Rackable Systems Model Name: C4002 Processor: Dual Core AMD Opteron(tm) Processor 880 MHz: 2411 # of CPUs: 8 cores, 4 chips, 2 cores/chip Memory (MB): 65536 L1 Cache: 64KB(I)+64KB(D) L2 Cache: 1MB per core Other Cache: OS Vendor: Red Hat OS Name: Red Hat Enterprise Linux 4 Update 4 EM64T Disks: 1x400GB SATA 7200 RPM Network Interface: (3) Dual Port 1000 BaseT Ethernet Other Hardware: # of Systems: 2 H/W Available: Jun-2007 O/S Available: Jul-2006 Notes / Tuning Information /etc/sysctl.conf: net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 net.ipv4.ip_forward = 0 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 kernel.sysrq = 0 kernel.core_uses_pid = 1 kernel.shmmax = 4294967295 kernel.sem = 250 32000 100 128 fs.file-max = 262144 net.ipv4.ip_local_port_range = 1024 65000 net.core.rmem_default = 10000000 net.core.wmem_default = 10000000 net.core.rmem_max = 10000000 net.core.wmem_max = 10000000 net.core.optmem_max = 10000000 net.ipv4.tcp_max_tw_buckets = 2000000 net.ipv4.tcp_mem = 30000000 30000000 30000000 net.ipv4.tcp_rmem = 30000000 30000000 30000000 net.ipv4.tcp_wmem = 30000000 30000000 30000000 net.ipv4.tcp_timestamps = 0 net.ipv4.tcp_max_syn_backlog = 12000 net.core.somaxconn = 10000 net.core.netdev_max_backlog = 400000 /etc/rc.local: /sbin/ifconfig eth0 txqueuelen 60000 /sbin/ifconfig eth1 txqueuelen 60000 /sbin/ifconfig eth2 txqueuelen 60000 /sbin/ifconfig eth3 txqueuelen 60000 /sbin/ifconfig eth4 txqueuelen 60000 /etc/init.d/xinetd start /etc/init.d/iptables stop /etc/init.d/irqbalance stop echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore On the Satellite Driver and Emulator HW, one virtual IP was configured for traffic from appserver instances to the emulator. -------------------------------------------------------------------------------- BENCHMARK MODIFICATIONS -------------------------------------------------------------------------------- Schema Modifications: Tablespace sizes were increased to support the Injection rate. Table and index initrans were modified. The M_WORKORDER and O_ORDERLINE tables were horizontally partitioned. Scripts to create the DB are included in the FDA. Table locks were disabled during the run using disable_locks.sh script. -------------------------------------------------------------------------------- Load Program Modifications: The load program was not modified. BENCHMARK CONFIGURATION INFORMATION -------------------------------------------------------------------------------- Isolation Requirement Info: The following Beans were deployed in READ_COMMITTED mode as per the benchmark requirement: Mfg - AssemblyEnt, BomEnt, ComponentEnt, LargeOrderEnt, PartEnt Orders - ItemEnt Supplier - SupplierCompEnt, SupplierEnt All other beans were deployed using pessimistic locking mode such that all selects including finders are issued with a FOR UPDATE clause in select statement: Corp - CustomerEnt, CustomerInventoryEnt Mfg - InventoryEnt, WorkOrderEnt Orders - OrderEnt, OrderLineEnt Supplier - POEnt, POLineEnt, SComponentEnt Util - SequenceEnt The ItemEnt bean was cached for 20 minute intervals by setting read-only to true and time-to-live to 1200000 in orders-toplink-ejb-jar.xml. -------------------------------------------------------------------------------- Durability Requirement Info: To ensure database durability, RAID 1 (mirroring) was used for the data files and database Redo logs. The application server was using mirrored disks to provide durability for server logs and JMS persistence filestore. The RAID controller on the database and the application server machines were configured with Write-Back cache policy supported with battery backup unit on the controller. -------------------------------------------------------------------------------- Storage Requirement Info: A 80 min run at Injection Rate of 1000 increased storage by 3 GB. Extrapolating for 24 hrs we need 54 GB. The system is configured with over 975 GB of durable storage. -------------------------------------------------------------------------------- Argument Passing Semantics: Oracle Application Server 10g uses pass-by-value as required by the EJB specification. BILL OF MATERIALS -------------------------------------------------------------------------------- Supplier Description SKU # Qty -------- ------------------------------------------- ---------------- --- Rackable Systems S3118 Storage System S3118-L03-X5345-AS-A 1 Rackable Systems C2002 Server C2002-L03-X5355-AS-A 1 Rackable Systems Platinum Support Coverage for 3 years 50-40-00003 2 Cisco Catalyst 3560G Switch 39-00-00177 1 Red Hat Enterprise Linux Premium Subscription (1 Year) 6 Oracle Oracle Database 10g Release 2 Enterprise Edition, Per Processor Unlimited Users for 3 years 4* Oracle Partitioning, Per Processor, Unlimited Users for 3 years 4* Oracle Oracle Database Server Support Package for 3 years (Incident Server Support) 24x7x4 1 Oracle Oracle Application Server 10g Release 10.1.3.2, Per Processor (v10.1) 4* Oracle Oracle Application Server Support Package for 3 years (Incident Server Support) 24x7x4 1 (* 4 = 0.50 * 8). Explanation: For the purposes of counting the number of processors which require licensing, an Intel multicore chip with "n" cores shall be determined by multiplying "n" cores by a factor of 0.50). -------------------------------------------------------------------------------- OTHER BENCHMARK INFORMATION -------------------------------------------------------------------------------- The xerces implementation version 2.6.2 from xml.apache.org was used as it comes packaged with Oracle Application Server 10g. Requests were directed to the Appserver instances using DNS round robin, with the database node acting as the DNS server. The driver used the following jndi.properties: java.naming.factory.initial=com.evermind.server.rmi.RMIInitialContextFactory java.naming.provider.url=ormi://main.spec.com:23791/SPECjAppServer java.naming.security.principal=oc4jadmin java.naming.security.credentials=welcome oracle.j2ee.rmi.loadBalance=lookup -------------------------------------------------------------------------------- General Notes -------------------------------------------------------------------------------- On the database, incremental checkpointing ensured that no buffer will remain dirty (in the cache) for more than the allowed time. Oracle Application Server 10g Release 10.1.3.2 implements Recoverable Last Resource Commit optimization where one and only one SinglePhaseResource participates in a global transaction with one or more XAResources. This is accomplished by emulating an XAResource to represent the 1PC resource. The transaction manager takes the following steps when it receives a request to commit a global transaction that includes one emulated XAResource: 1. It invokes a prepare call on each of the 2PC resources. 2. If all of the 2PC resources are successfully prepared, then commit (one-phase) is called and the commit record is written to the commit-log, on the emulated XA resource (database) as part of the local transaction. 3. If the 1PC on the emulated XA resource completes successfully, then the transaction manager calls commit on each of the 2PC resources. or: If the 1PC on the emulated XA resource fails, then the transaction manager queries the commit-log for transaction outcome. If the record exists, 2PC resources are committed, otherwise 2PC Resources are aborted. Transaction outcome after a single point of failure is guaranteed by the presence of the commit-record in the commit log, indicating a successful transaction completion; while a missing commit-record signifies abort. The commit record is deleted lazily after the global transaction has committed. The only errors in the driver error logs are the application errors generated by this benchmark. -------------------------------------------------------------------------------- For questions about this result, please contact the submitter: Oracle Corporation For other inquiries, please contact SPEC - Benchmark run on Tue Aug 14 16:47:57 EDT 2007 by SPECjAppServer2004 v1.08 - Result submitted on Wed Aug 15 03:03:00 EDT 2007 - Report generated by SPECjAppServer2004 Reporter v1.03 Copyright (C) 2004 Standard Performance Evaluation Corporation