System Performance Optimization
To start, there is no single metrics or set of metrics to measure system performance. What’s perceived as optimal performance for reporting system might be unacceptable for transactional system. Great performing application for ten users slows to crawl when thousand users start using the same application.
Interview the stakeholders to understand the vision, consult end-users to understand the matters, learn from technical personnel the obstacles.
Identify the areas of interest with slower than desired performance, where high failure rate is noticed, reports are not produced as expected, or user interfaces misbehave.
Don’t look for templated serve-all solution – systems and challenges tend to be unique and hence action items best selected while open-minded.
Experiment with various action items and directions:
Data caching may offload hits from the back-end system but also may introduce data inconsistencies.
Asynchronous and parallel calls may reduce congestion but also also may introduce troubleshooting and concurrency troubles
Some requests don’t have to be just-in-time and can be replaced with queued processing to increase throughput
- Distributed architecture is de-facto standard, what to distribute and what to keep local on the other hand is open to discussion. Sometimes rearranging component’s and/or data location changes the overall responsiveness.