You support an existing application and its servers. It is experiencing slowness as the users are complaining about its performance. What are some potential root causes of this slowness?
- The slowness is caused by the client. A user's workstation has something wrong with it (e.g., malware, or it is trying to run too many applications at once).
- Network congestion between the client and the server.
- The server's disk IO activity, CPU activity or RAM utilization is too high.
- Overloaded application; there is a spike in application's demand (e.g., a temporal business reason is causing the application to be heavily utilized beyond normal conditions). Scaling horizontally with load balancers could help remedy this.
- There is a DNS configuration issue. DNS cacheing and or new misconfigurations can cause an application to be slow.
- A change to a load balancer (e.g., HAProxy, an F5 load balancer or an AWS application load balancer) introduced a misconfiguration which is potentially causing the slowness.
- There could be a denial of service attack. Malware or hackers could be the culprit.
- If the server was moved, there may be a lack of caching. Some web server accelerators could have been the basis of a highly performant server. A sever being in a new geographic location could put it in a suboptimal region for the users.
- A relevant database tier could have a backup routine, stored procedure or other maintenance job could be running. Was there an email about an outage? Poorly crafted SQL statements can cause problems. For tips on tuning a relational database, see this posting.
- Check the logs of the application and other components. There may be something obvious.