180 likes | 339 Views
Mitchel Sellers, CEO IowaComputerGurus Inc. Getting the Best Performance Out of DotNetNuke. About Mitchel. Active in the DotNetNuke eco system for about 3 years Author of Professional DotNetNuke Module Programming
E N D
Mitchel Sellers, CEO IowaComputerGurus Inc. Getting the Best Performance Out of DotNetNuke
About Mitchel • Active in the DotNetNuke eco system for about 3 years • Author of Professional DotNetNuke Module Programming • Provider of support to many clients with varying DotNetNuke installation configurations • Documents Module Team lead • CEO of IowaComputerGurus Inc.
Agenda • What impacts performance • Infrastructure (Hosting Environment) • Configuration (DNN Settings) • Modules/Skin Objects • Skin Design • Traffic • Getting the best performance • Tuning for the hosting environment • Default configuration changes • Next Steps/More Drastic Measures • Questions?
Impacts – Hosting Environment • Why? • Types of hosting • Shared • Cloud (Distributed) • Virtual Server (VPS) • Dedicated Server • Location of SQL Server
Impacts – Hosting Environment (Cont) • Shared • Low cost • Low available RAM/CPU • Moderate Disk IO • Cloud • Moderate cost • Unstable RAM allotment/Moderate CPU • Very fast Disk IO • VPS • Moderate cost • Limited RAM (1-2 Gb)/Moderate CPU • Moderate-Fast Disk IO • Dedicated • High Cost • High amount of RAM/CPU • Moderate-Fast Disk IO
Impacts – Hosting Environment (Cont) • SQL Server Location • Adds layer of complication to the assessment of other hosting aspects • Is locally installed SQL bad? • Best configuration? • Most secure configuration? • Ways to combat issues?
Impacts - DNN Configuration • Baseline DNN Configuration • Host Settings • Performance settings • Timer mode • Schedule configuration • Future Concerns • Event Log • Site Log
Impacts - Modules/Skin Objects • Recurring errors • Improper development practices • Slow rendering/Lack of Cache • SolPart menu • Invalid HTML • Number of installed modules
Impacts – Skin Design • CSS Vs. Tables • Size • Rendering speed • Content placement • Image/CSS size • Skin Objects used • Panes used
Impacts Traffic • Low Traffic • ASP.NET Worker Process Shutdowns • Re-configure IIS • Use service such as MyWebKeepAlive.com • Cloud or other hosting not allocating enough resources • High Traffic • Database contention • Lack of Caching/Compression
What To Do? • Start with core settings changes • Baseline performance testing • DotNetNuke 4.9.0 website • SolPart Menu • Default Configuration/Shared Hosting • Average page load time 3.2 seconds
Core Settings Changes – Part 1 • Performance Settings • Module Caching Method • Cloud/VPS – Disk • Shared/Dedicated – Memory • Performance Setting • Heavy Caching • Compression • GZip (Unless using 3rd party)
Core Settings Changes – Part 2 • Other Settings • Disable Users Online (Yes) • Scheduler Mode (Timer) • Enable Event Log Buffer (Yes) • Auto-Sync File System (No) • Scheduler • Search Indexer • Frequency should be lengthened
Core Settings Changes – Part 3 • Authentication Providers • By default all are enabled • Average default load time 3-6 seconds for login • Disable ALL unused providers at “Host Settings” level • Doing this with default providers (OpenId and LiveId) resulted in login page load of under 1 second • Must be done at the host level, cannot be controlled by template
Post Core Settings Changes • Almost instant change • Unauthenticated requests • Reduced load time to low 2 second mark, a 33% improvement • Improvement can be greater depending on size of content
Next Steps • Evaluation of installed modules, remove un-necessary ones • Consider skin change from SolPart to other menu provider. • Have seen performance improvements of 30-50% when using CSS NavMenu • Consider third-party caching system • Have seen consistent improvements with Snapsis Page Blaster
How Good Can It Get? • DotNetNuke 4.9.4 site • 2000 users • 300 blog posts • 3-4 k forum posts • ~600-1000 visitors a day • Shared hosting 1.9~2.4 seconds avg load • Dedicated hosting 0.7-1.2 seconds avg load
Helpful Resources • My Blog – http://www.mitchelsellers.com • Snapsis – http://www.snapsis.com