One of the most important components of your application is the web server it is hosted on. No matter how much you optimize your application, if your web server is not optimized too, you are not going to get the full performance that you may be looking for.
In this chapter, we are going to learn how to create an "application profile" for our web service and use that profile to ensure our web servers are correctly configured.
We will look at how to overcome some common problems that result in a reduction in performance, by eliminating unnecessary file operations.
There may also come a time where the performance levels you require exceed the
performance or throughput that a single web server can deliver, so you may need to scale up by dividing your application across multiple servers. We will examine some of the requirements of an application that enable it to grow so it can run on a farm of Apache web servers operating as a cluster.
We will also examine some of the methods you can use to partition your application
to achieve higher performance levels.
Monitoring is also an important requirement for a professionally hosted application; we will look at some of the systems available that you can install to make sure you are always aware of the status of your system.
Finally we will look at some infrastructure choices and services you can use to speed delivery of your content, and help you understand what some of the common pitfalls are, and how to overcome them.