System Configuration Diagram
Benchmark
Modifications
Configuration
Bill of Materials
Other Info
General Notes
Full Disclosure Archive
Tunings in domain.xml: JVM Options: -server -XX:NewRatio=2 -XX:+AggressiveHeap -Xms2560m -Xms2560m -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 JDBC Pool : max-pool-size=250 steady-pool-size=90 statement_cache=true prepareThreshold=1 ssl=false HTTP: request-processing threads=12 JMS: ConnectionPool: max-pool-size=250 MDB Container: max-pool-size=32, steady-pool-size=0 Tunings in default-web.xml: development=false, genStrAsCharArray=true ORB: (thread-pool-1) max-thread-pool-size=25
JVM Options: -server -Xmx2048m -Xms2048m -XX:+DisableExplicitGC -Dsun.net.inetaddr.ttl=0 -Dnetworkaddress.cache.ttl=0 Emulator Software Configuration.
Postgres tuning in postgresql.conf listen_addresses = * max_connections = 1000 shared_buffers=3GB 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 GCC for SPARC compilers :- -fast -O4 -xtarget=ultraT1 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 Sun GCC for SPARC systems available at http://cooltools.sunsource.net
JVM Options: -server -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,papps3:3700 -Dorg.omg.CORBA.ORBInitialHost=papps -Dorg.omg.CORBA.ORBInitialPort=3700
UFS options for /disk1: 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
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
The load program was not modified
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.
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.
The 85 minute run for this submission required less than 4GB of database storage. This extrapolates to less than 70GB for a 24 hour period. The Sun StorageTek 2540 Array drive capacity is 876GB of available storage when configured for RAID 1.
Sun Java Systems Application Server 9.0 Platform Edition uses pass-by-value semantics by default.
Supplier Description Product # Qty -------- ---------------------------------------- ------------------ --- Sun Sun Fire X4200 M2 (2x2220 SE ,2X73GB) A87-KPZ22H8GCBA 3 Sun Solaris 10 RTU 3 Sun SunSpectrum Upgrade: 3YGOLD, 24x7 W9D-A65-24-3G 3 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 Platform Edition 9.0 Sun Sun Java System Application Server SJSAS-PE9F-1PR 18 Platform Edition 9.0 Premium Support per CPU for 1 year PostgreSQL PostgreSQL 8.2 Database EnterpriseDB PostgreSQL support (premium) 3
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.0 Platform Edition. The emulator used xerces implementation 2.7.1 provided with the Jakarta Tomcat 5.5.16
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 records are written to the database in a single transaction. Database checkpoints during the Measurement Interval were done every 300 secs as per checkpoint=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 07-Jul-2007