Your website is slow but you’re not sure why. You do know that it’s impacting your business. Are you losing customers to the competition? Here are five quick tips to achieve scalability
1. Gather Intelligence
With any detective work you need information. That’s where intelligence comes in. If you don’t have the right data already, install monitoring and trending systems such as Cacti and Collectd. That way you can look at where your systems have been and where they’re going.
2. Identify Bottlenecks
Put all that information to use in your investigation. Use stress testing tools to hit areas of the application, and identify which ones are most troublesome. Some pages get hit A LOT, such as the login page, so slowness there is more serious than one small report that gets hit by only a few users. Work on the biggest culprits first to get the best bang for your buck.
3. Smooth Out the Wrinkles
Reconfigure your webservers to make more connections to your database, or spin-up more servers. On the database tier make sure you have fast RAIDed disk, and lots of memory. Tune queries coming from your application, and look at possible upgrades to servers.
4. Be Agile But Plan for the Future
Can your webserver tier scale horizontally? Pretty easy to add more servers under a load balancer. How about your database. Chances are with a little work and some HA magic your database can scale out with more servers too, moving the bulk of select operations to read-only copies of your primary server, while letting it focus on transactions, and data updates. Be ready and tested so you know exactly how to add servers without impacting the customers or application. Don’t know how? Look at the big guys like Facebook, an investigate how they’re doing it.
5. A Going Concern
Most importantly, just like your business, your technology infrastructure is an ongoing work in progress. Stay proactive with monitoring, analysis, trending, and vigilance. Watch application changes, and filter for slow queries. Have new hardware or additional hardware dynamically at-the-ready for when you need it.