Upload
coldfusionconference
View
311
Download
1
Tags:
Embed Size (px)
DESCRIPTION
ColdFusion is Racecar Fast (Or, ColdFusion Performance Best Practices)
Citation preview
ColdFusion is Racecar Fast!
(Or, ColdFusion Performance Best Practices)
The Adobe ColdFusion Summit 2014 - Las Vegas
We are Webapper
● Co-founded in 2001 by two former members of Allaire Consulting Services
● Speakers today:o Mike Brunt: Co-Founder, Director of Performance
Engineering Serviceso Rex Aglibot: Senior Performance Engineero Patrick Quinn: Co-Founder, CTO
3 Things
One more thing...
+ =
Webapper on the Web
www.webapper.comwww.seefusion.comwww.coldfusionsupport.net
Oh, that...
SeeFusion 5!
‘Splain the session title, please?
● Indy 500o World’s largest auto raceo We’ve been tuning it in traditional hosting
environment for 5 years● New hosting infrastructure and site migration
in 1 week! (~8 individual domains)● Adobe case study: http://adobe.ly/1r9hULg ● And, well, ColdFusion is fast!
Results
● 50 r/s X 8 servers (max)● AWS Auto-scaling ● Zero bottlenecks (literally)● Zero slowdowns● Active/passive data tier (SQL Server)
The Webapper Way
● How to tune/troubleshoot a ColdFusion servero Empiricalo ~ 5 different data sets (logs, memory/thread
profiling, monitoring tools)● PASS● How to prioritize “TNT” problems
Today
● Good general settings for ColdFusiono Memory and thread settingso The ColdFusion connector!
● Live load● Q&A
The Performance and Stability Stack
PASS Priorities
“The Engine Room”
The Java Virtual Machine = the real meaning behind the phrase “ColdFusion is Java.”
Great Default JVM Settings - 64 bit
-server -Xms6144m -Xmx6144m -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:webapperGC219.log -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:+UseCompressedOops -Xss256k -XX:+CMSClassUnloadingEnabled - -XX:+UseParNewGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+CMSScavengeBeforeRemark -XX:CMSInitiatingOccupancyFraction=68 -XX:CMSFullGCsBeforeCompaction=1 Dsun.io.useCanonCaches=false -XX:MaxPermSize=640m -XX:PermSize=640m -XX:+UseConcMarkSweepGC
Wait, what? JVM Settings Explained
-server
-Xms6144m -Xmx6144m
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:webapperGC219.log
JVM Settings Explained
-XX:NewRatio=4 -XX:SurvivorRatio=8
-XX:+UseCompressedOops
-Xss256k
-XX:+CMSClassUnloadingEnabled
-XX:+UseParNewGC
JVM Settings Explained
-XX:+DisableExplicitGC
-XX:+UseCMSInitiatingOccupancyOnly
-XX:+CMSScavengeBeforeRemark
-XX:CMSInitiatingOccupancyFraction=68
JVM Settings Explained
-XX:CMSFullGCsBeforeCompaction=1
-XX:MaxPermSize=640m -XX:PermSize=640m
-XX:+UseConcMarkSweepGC
Threads and all the rest...
● “TNT checklist” (~55-point inspection)
Threads and all the rest...
● Important thread pools:o ColdFusiono Tomcato Web server connector
Threads and all the rest...
http://weblogs.asp.net/owscott/windows-8-iis-8-concurrent-requests-limit
Recommended Thread Settings
● runtime/conf/server.xml:<Connector port="8012" protocol="AJP/1.3" redirectPort="8445" tomcatAuthentication="false" maxThreads="525" connectionTimeout="60000" /><Connector executor="tomcatThreadPool"... />
(Note: connectionTimeout is in milliseconds)
Recommended Thread Settings
● workers.properties:worker.{instance}.max_reuse_connections=500worker.{instance}.connection_pool_size=500worker.{instance}.connection_pool_timeout=60(Notes: connection_pool_timeout is in seconds;must be the same as server.xml's connectionTimeout)Reference: http://blogs.coldfusion.com/post.cfm/tuning-coldfusion-10-iis-connector-configuration
Recommended Thread Settings
● ColdFusion Administrator:
The Web Server Connector
The Web Server Connector
Start your engines!
● Live load tests● 2 c3.2xlarge EC2 servers (ColdFusion 10)● 1 c3.2xlarge EC2 server (MySQL)● PetMarket application● JMeter for load
Summary
● Tune memory● Tune threads● Monitor!● Know thy metrics (logs, monitors, etc.)
Q&A
● Questions?● Comments?● Commentary?
Contact Us
● via Twitter: @IamSigmund (Patrick), @cfwhisperer (Mike), @superex2000 (Rex)
● via Email: [email protected] ● Amazon Web Services:
[email protected]● www.coldfusionsupport.net
www.webapper.com www.seefusion.com