Stackify is now BMC. Read theBlog

How to diagnose application slowness

  |  January 4, 2021
How to diagnose application slowness

When a business application slows down, bad things happen. Your customer support gets slammed with service requests. Your boss calls an emergency meeting to talk to the product and developer teams. Everybody’s asking the same question: what happened?

Diagnosing a slow application and finding the cause of the problem is something developers need to do quickly. Performance-related problems are in the top five SaaS user churn, which is a major preventable loss of revenue. 

To avoid losing users and keeping their experience positive, let’s learn how to diagnose application slowness. 

1. Analyze the Type of Slowdown

Knowing the type of application slowness might help to understand the root source of the problem. Application slowness could be:

  • One-time
  • Recurring 

If a one-time slowdown occurs, the application user is likely to reach your customer support team. They might send a live chat, email, or social media message, or call, letting you know about the problem. 

But in case of a recurring slowdown, the user’s behavior might be different. Since the problem persists, they might go directly to the product team. After trying to solve it by themselves – reading knowledge base articles, etc. – and contacting the support team, they’re likely to contact the developers for help. 

Why is knowing this important?

Dan Mahomes, a technology writer at BestWritingAdvisor: “When a user reports an app slowdown, always ask about how long they have been experiencing it. A recurring problem might suggest a much more complex issue, so knowing the timeline will give you a better idea of what team to ask for troubleshooting.” 

2. Check Server Performance

Server troubles are a common reason for application slowness. Most applications today are deployed on a complex, multi-layered infrastructure with a few servers, which introduces a plethora of potential problems. A tool, like Netreo, can help you quickly and easily monitor, report, and alert on your server and back-end systems.

In addition to greater visibility into server performance, health, and utilization, Netreo provides full-stack IT management visibility that measures the state, operational status, and business impact of all the components in your technology stack. By monitoring the whole technology stack in one platform, you get comprehensive global views that allow you to quickly identify the true cause of an outage — and avoid having multiple teams wasting time on troubleshooting in parallel.

In terms of servers alone, an application speed can be affected by:

  • Server performance issues
  • Lack of server RAM
  • Overloaded DNS, AD, or LDAP server.

Many call these “external dependencies,” and that’s exactly what they are. To be ready for server-related issues, you can outline the dependencies visually. 

This method is called Application Dependency Mapping (ADM)

ADM map includes all external dependencies of an application – storage, networks, and servers, of course – and the interactions among them. The interactions show how each component makes the app work. 

Here’s an example of an ADM done for Stackify’s app. It categorizes all dependencies affecting the app performance and shows how they “talk to each other.”  

Stackify app dependency map. Source: Stackify Blog

Having such a map could help developers identify potential issues. If an app’s speed slows down, ADM is a good resource to look to find bottlenecks and understand what resources might be overtaxed. 

Let’s consider an example. 

A SaaS provider experiences issues like cloud slowdowns and poor network performance. As a result, the app’s speed reduces, causing all kinds of problems for the users. If the provider chooses traditional troubleshooting methods, the network team needs tons of time to track down the problem. 

With the ADM, however, the IT staff can pinpoint the problem faster. They can get a clear look at “the big picture,” which means seeing how services and components are interconnected. Ultimately, ADM analysis can take much less time to complete. 

Related: Web Performance Optimization: Top 3 Server and Client-Side Performance Tips

3. Investigate Client-Side Problems

In some cases, app performance deteriorates because of issues occurring on client endpoints. These can be some of the toughest to diagnose, but you need to be ready. 

Here are a few scenarios.

  • Outdated client systems. Many companies using your custom app might operate old hardware, which often means a lack of power to run it effectively. As a result, the root cause of a slowdown might be an outdated local disk storage system, slow CPU, or a lack of memory
  • Application architecture. An application can use abnormal memory volumes or a lot of CPU on the client side solely because of the architecture. In this case, the diagnosis means reviewing the user-side function and capabilities, which is done by getting access from the client
  • Resource competition. In some cases, the reason for a poor speed is an abundance of programs competing for disk I/O & network bandwidth, memory, CPU, and other resources. A thorough review of resource usage patterns typically shows how “competition” might affect the ability to run business apps correctly. 

The best way to resolve problems like these is to have access to client-side systems. If you’re sure that things are working properly on your end, always consider the possibility of them happening on the end user’s systems. One way to diagnose this, is by having a system like Retrace in place to monitor your client side with Real User Monitoring

4. Write a Decent Knowledge Base

Some reasons for application slowness can be simple to resolve. For example, a user’s browser or mobile device can potentially be a source of performance issues. 

That’s why having a self-help resource for customers is important. For SaaS providers, this resource is called a knowledge base.

A knowledge base is a collection of articles giving step-by-step troubleshooting instructions. For your users, it’s a place where they get help with fixing various performance issues. It’s not always possible to contact your support or developer team, so users should get an option to diagnose them themselves. 

Here’s an example of a knowledge base article from Salesforce, a customer relationship management platform. 

A knowledge base article on slow app performance (Salesforce). 

Content like this can be helpful to solve simple performance issues that shouldn’t take any time off your support team’s schedule. 

5. Invest in Application Performance Monitoring (APM) Tool

Looking for a more automated approach to tracking your app’s health? As always, there’s an app for that. And it can make the lives of your developers much easier (in the office, at least). 

Application Performance Monitoring (APM) is a tool that enables continuous application monitoring to diagnose performance problems and ensure consistent response times and availability.  

Essentially, APM is all the previously mentioned approaches, automated for developers to make the monitoring job more efficient. 

Stackify’s APM solution Retrace can help them:

  • Track response time and error rates
  • See most time-consuming transactions to detect the slow ones
  • Do application logging
  • Break down every transaction per average calls, time, and other performance details. 

Try your free, two week Retrace trial today.

So, an APM is a dashboard where to see all application performance metrics and trends. By tracking every transaction that occurs, you’ll know for sure if the app is working perfectly. 

Related: 8 Key Application Performance Metrics & How to Measure Them 

Application Performance Monitoring: Conclusion

When business applications slow down, everyone suffers. Minimizing the effect of this issue is possible through quick diagnosis and troubleshoot, which is something that users expect from SaaS providers. 

Use these tips to improve your application performance monitoring and react to issues as they arise. Your users will be glad you did.

Improve Your Code with Retrace APM

Stackify's APM tools are used by thousands of .NET, Java, PHP, Node.js, Python, & Ruby developers all over the world.
Explore Retrace's product features to learn more.

Learn More

Want to contribute to the Stackify blog?

If you would like to be a guest contributor to the Stackify blog please reach out to [email protected]