How will I determine if I have the performance I need?
Welcome back. This week we will be looking at question two – How will I determine if I have the performance I need?
To answer this question, you first need to work out what you need (or think you need). You can then run some tests to work out if the hardware you have configured is able to perform to meet your needs.
The approach will be slightly different depending on the services you plan to offer. Here are some of the more common examples:
- Websites (Static or Dynamic – WordPress, Joomla)
- Email Services
- Application Hosting
- Communication Services
- Disaster Recovery / Backup Services
Today I will go into detail for Websites, the most common service offered by our clients.
Work out what your expectations are.
Should your website load in under 1 second? 4 seconds? As fast as possible? How will you balance price / performance? Knowing what performance, you want to achieve will help inform other decisions later on.
If you are like most people, you want the ‘as fast as possible’ solution without breaking the bank. The challenge here is that the solution will change based on these two main factors:
- The type of website you plan to offer
- The number of visitors you expect
If you are starting out with a new website, you won’t have any useful indicators as to how many visitors the site will get. You can make a guess here; pick the highest number of visitors you expect to get at any one time (take into consideration any campaigns you may want to run that can cause large spikes)
If you have an existing website, there are multiple tools available to analyse your visitors and their behaviour (Google Analytics, AWStats). Reviewing this information will give you a number to work with, pick the highest visitor peak to use as your benchmark.
The next step is to generate a workload for your website to analyse performance.
There are many online tools available that can generate load by emulating a certain number of unique visitors. Google for “Website load tool” or “Website load generator”.
These tools will allow you to create load based on your preferences, and will often create a report that shows you the point at which the server starts to perform slowly (usually when a certain number of concurrent unique visitors is hit, the website will fail to load). This report will help you identify if the current server configuration meets your expectations set in step 1.
Keep in mind the online load generation tools only attempt to emulate visitors – they may not accurately represent your actual visitor behaviour.
Identify where the performance bottleneck is.
If, in Step 2 you identified that the performance of your website is not meeting your expectations, there are two common culprits:
- Server resources insufficient for purpose
- Server software / website not optimised
This is where you may need to get a server administrator involved. To check if the server resources are the bottleneck, you can record and monitor performance statistics for:
- CPU Utilisation
- Memory Utilisation
- Disk Performance
- Network Performance
You can view a lot of this information in ‘Resource Monitor’ (Windows Platforms) or ‘top’ (Linux Platforms). If there is a resource bottleneck, you should be able to identify it when testing with a website load generator.
The second, and more common cause of performance issues is bad server / website optimisation. Most servers are configured by default for compatibility and not performance.
Improve the performance of your website.
If you have identified the bottleneck as a resource limitation, resolution is relatively straightforward. Upgrade the affected resource to a higher value. This can be done by getting in touch with your service provider.
If you believe the issue is not related to the server resources, it is likely due to the configuration of the server, or the coding of the website.
The task of optimising your server lies with your server administrator. The most common areas to make improvements to are:
- Database Server settings
- Webserver Settings
- Running Services
- PHP / Caching Configuration
The coding of your website will also affect the performance. The responsibility of fine-tuning this usually lies with your web developer. There are many tools online that will help analyse your website performance (such as Google PageSpeed –https://developers.google.com/speed/pagespeed/?hl=en) and will make suggestions as to how to improve performance.
Next week we will look at how to measure the success of your service.