Performance - Design for use
Special performance related designs must be made when an infrastructure is to support special performance critical applications. Here are some tips:
- In general it must be known what the system is to be used for. A large data warehouse needs a different infrastructure design than an on-line transaction processing system or a web application. Interactive systems have other performance characteristics and need different infrastructure solutions than interactive systems or systems that must support high peak demands.
- In some cases special products must be used for certain systems. Real time operating systems, in- memory databases, or even specially designed file systems can be a solution for extremely performance sensitive systems.
- Most vendors of databases, web servers, operating systems, and storage or network solutions provide architects with standard implementation plans that are proven in practice. In general, try to follow the vendor's recommended implementation. It is also always a good idea to have the vendors check the design you created. Not only can they approve your design, they can also suggest improvements that you might not have considered. I have good experiences with having vendors check my designs!
- When possible, try to spread the load of the system in time. Maybe it is not such a great idea to have a complex batch job running at 09:00 AM when all people get to work and start their PCs. Making certain that a backup job is not scheduled when some critical report is compiled is also an example. Sophisticated scheduling applications exist to help you manage complex dependencies.
- Implement some form of Quality of Service (QoS) for important jobs. For instance on the network layer QoS can provide fast response times for interactive systems, while for instance sending email can be done at a lower priority (especially when the email contains large attachments). Most operating systems can be configured to handle certain processes with more priority than other processes.
- For availability reasons many systems have off-line copies of data available (for more information on this subject see the chapter on availability). If possible I/O intensive operations like running complex reports or aggregating data in data warehouses could be set to run on the off-line systems instead of on the production systems.
- To increase performance sometimes it is possible to move rarely used data from the main systems to other systems. Large databases tend to be slower than small ones. Moving old data to a large historical database can speed-up the production database that is now smaller in size.
This entry was posted on Tuesday 31 May 2011