This post is where I’ll be collecting my thoughts about a performance tuning methodology for hardware.
The purpose of the methodology is to improve query response in the most time and cost efficient manner. The steps that need to be followed are:
- Identify the bottleneck: using OS and RDBMS monitoring tools, figure out if query response is limited by I/O, memory, or CPU speed.
- If I/O is the problem, check if there is any way to tune the OS to improve performance. If not, check if installing faster hard-drives or more controllers could help.
- If memory is the bottleneck, first figure out if adding additional memory would improve performance. Then check if tuning OS or RDBMS memory settings would help. I’m working under the assumption that adding RAM is cheap, whereas tuning parameters takes time/money because of all the testing and specialized knowledge required.
- If CPU speed is the bottleneck, check if adding more CPUs is an option. How well does your hardware/OS/RDBMS scale with more CPUs? Can you upgrade to faster CPUs?