IBM did a world leadership publish on SPECjEnt benchmark that was accepted by the SPEC organization. The result are available here: http://www.spec.org/jEnterprise2010/results/res2012q2/.
If you are a WAS customer that needs to squeeze the last bit of performance out of WAS on a performance mission critical application then you should study and emulate in DETAIL all the custom parameters and tuning done by IBM on the application server to get this world class performance of 524 enterprise job transactions per second. See the entire publish here
This benchmark heavily stresses the JPA, web container and web services containers in WAS. After going through the results I discuss the relevant server side tuning below -
Application Server & JVM Tuning: (*Your mileage may vary)
-Xms2048m
-Xmx2048m
-Xmo470m
-Xmn1578m
-Xss128k
-Xgcpolicy:gencon
-Xgcthreads3
-Xnoloa -Xshareclasses:none
-Xaggressive
-Xtrace:none
-Xlp -Xdisableexplicitgc
-Dcom.ibm.CORBA.FragmentSize=10000
-Djavax.xml.transform.TransformerFactory=org.apache.xalan.processor.TransformerFactoryImpl -Djavax.xml.parsers.SAXParserFactory=org.apache.xerces.jaxp.SAXParserFactoryImpl -Djavax.xml.parsers.DocumentBuilderFactory=org.apache.xerces.jaxp.DocumentBuilderFactoryImpl -Djava.net.preferIPv4Stack=true
-Dsun.net.inetaddr.ttl=0
-DdisableWSAddressCaching=true -Dcom.ibm.websphere.webservices.http.connectionKeepAlive=true
-Dcom.ibm.websphere.webservices.http.maxConnection=50 -Dcom.ibm.websphere.webservices.http.connectionIdleTimeout=6000
-Dcom.ibm.websphere.webservices.http.connectionPoolCleanUpTime=6000 -Dcom.ibm.websphere.webservices.http.connectionTimeout=0
APAR Fixes
PM61650
PM61561
PM61599
Hardware Tuning for maximum Application Server performance (*Your mileage may vary)
fs.file-max = 1048576 kernel.sem = 250 32000 100 128 kernel.shmall = 4294967296 kernel.shmmax = 68719476736 net.core.netdev_max_backlog = 250000 net.core.optmem_max = 30000000 net.core.rmem_default = 30000000 net.core.wmem_default = 30000000 net.core.rmem_max = 32554432 net.core.wmem_max = 32554432 net.core.somaxconn = 32767 net.ipv4.conf.all.arp_announce = 2 net.ipv4.conf.all.arp_ignore = 1 net.ipv4.conf.default.rp_filter = 1 net.ipv4.conf.default.accept_source_route = 0 net.ipv4.ip_forward = 0 net.ipv4.ip_local_port_range = 1024 65000 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_max_syn_backlog = 30000 net.ipv4.tcp_max_tw_buckets = 2000000 net.ipv4.tcp_mem = 30000000 30000000 30000000 net.ipv4.tcp_rmem = 20480 174760 32554432 net.ipv4.tcp_wmem = 20480 174760 32554432 net.ipv4.tcp_timestamps = 1 net.ipv4.tcp_sack = 1 vm.nr_hugepages = 8192 ulimit -n 1048576 Network Tuning: set txqueuelen 60000 Stop irqbalance. Network interrupts bound to cores corresponding to the server instances. Server instances were started using taskset, 2 instances per chip.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.