210 likes | 330 Views
Using Tools To Plan Server Capacity. cfObjective (ANZ)– November 17-18, 2011 Mike Brunt – CFWhisperer. Load Testing. Mike has been using CF since 1996, version 1.54 (dbml) and is still actively troubleshooting CF. day in and day out.
E N D
Using Tools To Plan Server Capacity cfObjective(ANZ)– November 17-18, 2011 Mike Brunt – CFWhisperer
Load Testing • Mike has been using CF since 1996, version 1.54 (dbml) and is still actively troubleshooting CF. day in and day out. • He worked for Allaire-Macromedia as a ColdFusion-Spectra consultant. • This session will hopefully be very practical with few slides and more action.
Load Testing • Tools used in this demo… • VisualVMhttp://visualvm.java.net/ • Paessler Web Server Stress Tool • http://www.paessler.com/webstress • SeeFusion • http://www.seefusion.com
Load Testing • In my 11 years of working on planning infrastructure, tuning and troubleshooting no more than 3% of my clients used any formal load testing; why ? • Too costly • Too complex • Too time consuming • Slows down application evolution.
Load Testing • WHY? • Too costly • Too complex • Too time consuming • Slows down application evolution • Not load testing is too costly, consuming of time and will slow down application evolution to a crawl!
Load Testing • Why Load Test – Business View? • Many websites today have a serious business mission—to make money. And whether that’s through providing custom content and proprietary services, through advertising opportunities or by selling retail products, these high-traffic websites and applications need to be up and running at all times. Because if performance slows even a little, many web users are likely to jump quickly to a competitor’s site.
Load Testing • Why Load Test – Technical View? • Is your CF web server prepared for the traffic you are expecting? • Is your CF web server prepared for increasing visitors over the months and years to come? • How many seconds does it take for a visitor to your website to receive a page after clicking on a link? Under normal conditions? Under heavy conditions? • Can your CF web server survive a massive spike in user traffic (e.g., if your website is mentioned on national TV or your company emails a newsletter to all customers and prospects)?
Load Testing • Major Steps in Effective Load Testing • 1/ Build a testing infrastructure that is close to production, at least in scaled comparison. • 2/ Create a realistic load-test scripts to achieve your goals; realistic load or destruction. • 3/ Start testing in the same subnet as the CF web servers. • 4/ Move out a subnet at a time until you are where the users will be (not the other way around). • 5/ Document all load tests with usable-understandable reports.
Load Testing Prepare ColdFusion before testing by adding enhanced logging capabilities. Garbage collection (GC) logging – jvm.config - -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:cfwhispererGC.log Metrics logging (threads and memory). Full details are here… http://cfwhisperer.net/post.cfm/10-steps-to-a-stable-and-performant-web-application-step-2
Load Testing Prepare ColdFusion before testing by adding VisualVM. VisualVM is a visual tool integrating several commandline JDK tools and lightweight profiling capabilities. Designed for both production and development time use, it further enhances the capability of monitoring and performance analysis for the Java SE platform.
Load Testing Prepare ColdFusion before testing by adding VisualVM. Add this argument in jvm.config… -Dcom.sun.management.jmxremote.port=2345 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
JVM for 64-Bit • This is BORING…
Load Testing This next section of our presentation will demonstrate the creation and running of a basic load test script, using… ColdFusion 9.01 Multi-Instance mySQL 5 Paessler Web Server Stress Tool 7 ColdFusion Petmarket Application
Load Testing Q & A Time Mike Brunt – go2riamb@gmail.com http://www.cfwhisperer.com (+1)888.511.2821(USA Only) +1.310.933.6384 (Intl.)