How to find bottlenecks in your application using APM?

August 11, 2017
4 mins
Share this post

To find out how the system is behaving under certain load conditions, we need an APM (Application Performance Management) tool integrated into the application to find out where the bottleneck is lying in the system which is the cause of poor performance. The most common performance issues are:

Poor scalability If software cannot handle the desired number of concurrent users, long load times, error percentage increases, or other unexpected behaviour could happen that affects:

  • Disk usage
  • CPU usage
  • Memory leaks
  • Operating system limitations
  • Poor network configuration

Insufficient hardware resources Performance testing may reveal physical memory constraints or low-performing CPUs.

Software configuration issues Often, certain settings are not set at a sufficient level to handle the workload.

Poorly written code Which could refer to inefficient code, memory leaks, or synchronization issues and deadlock due to ineffectual algorithms. You can tackle this issue by ensuring that your developers are using the optimal coding practices, as well as some automated tools such as profilers and code reviews.

Unoptimized Databases suffer from poor query optimization, when one app function triggers multiple data requests and transfers of data. Or a DB may take too long to return results due to poor indexing.

Third-Party Services make sure the third-party services used by the application may not impact the performance.

New Relic provides a powerful ability to analyse errors. With New Relic agents, you can see the error stack trace, message, and the line of code from which the error was thrown. We can also slice and dice the errors discovered in their applications over time and save hours of manual analysis by using NRAI to instantly identify what's different about their error transactions.

Some Exclusive Features of the New Relic APM:

  • Application Monitoring: Application Monitoring in one place allows you to see your application performance trends at a glance - from page load times, to error rates, slow transactions, and a list of servers running the app.
  • Response Time, Throughput, and Error Rates - Response time is an average of the total time spent across all web transactions occurring within a selected time frame on the server-side. Throughput is requests per minute through the application. Error rates measure the percentage of errors over a set time period for your application.
  • Application Histograms & Percentiles - This shows you the distribution of response times for all of your transactions. It will provide you the kind of actionable data you need to quickly pinpoint and troubleshoot problems.
FrugalTesting blog on how APM helps to find bottlenecks
  • Most Time-Consuming Transactions - This list of the most time-consuming web transactions provides aggregated details around the surfaced slow transactions occurring during a specified time.
FrugalTesting blog on how APM helps to find bottlenecks
  • Performance of External Services - The external services dashboard provides charts with your top five external services by response time and external calls per minute. Such as web services, resources in the cloud, and any other network calls.
  • Thread Profile - Stack traces are collected over a specified duration, aggregated, and displayed in a detailed call tree for fine-grained diagnosis. This makes performance monitoring at its easiest.
FrugalTesting blog on how APM helps to find bottlenecks
  • Cross Application Tracing - Provides you end-to-end visibility and automatically maps each tier of highly distributed and service-oriented apps in our Application Topology Map to easily visualize the relationship between tiers.
FrugalTesting blog on how APM helps to find bottlenecks
  • Transaction Breakdown - Receive performance details for each segment, including % time, average calls per transaction, and average time.
FrugalTesting blog on how APM helps to find bottlenecks
  • Database Monitoring: Database monitoring provides a detailed overview of your database performance - pointing out critical errors that are slowing down your application.
  • Time spent - The database overview provides a stack ranking of the most time consuming database calls along with aggregated metrics around response times and throughput and slow SQL traces.
FrugalTesting blog on how APM helps to find bottlenecks
  • SQL Query Analysis - Track the exact SQL statements that are slowing down your site. Get samples of the worst performing SQL and stack traces to understand exactly where the SQL is used in your code, and how to fix it.
  • Slow SQL Report - Slow SQL samples are examples of the worst performing SQL on your site. Along with the SQL, New Relic collects the context and diagnostic information you need to fix your database performance issues.
  • Database/cache operations - ‘All Operations Table’ that is designed to show every operation for all databases and caches for the app within the selected time window.
FrugalTesting blog on how APM helps to find bottlenecks
  • Availability & Error Monitoring
  • Alert Policies - Alert policies allow you to set thresholds for groups of applications with similar alerting needs.
FrugalTesting blog on how APM helps to find bottlenecks
  • Availability Monitoring - New Relic uses an external pinger to verify your users can reach your application site, by making requests to them regularly, recording errors, and sending downtime alerts when an application is down.
  • Reports: Create and receive customized reports that are just as easy to read as they are to share. Our detailed reports include everything from deployments and availability, to performance and customized dashboards.
FrugalTesting blog on how APM helps to find bottleneckss

With few more features for pro users, which helps to detect the bottlenecks in the application more effectively. Performance testing and APM monitoring go hand in hand to find the root cause of bottlenecks quickly and efficiently.

  • Test your application performance much before it goes live.
  • Test the application under various load scenarios.
  • Test with realistic scenarios by adding think time, pacing, etc.

These are some of the features improved in JMeter 5.0.

Bharti Garg
Author
Our blog

Latest blog posts

Discover the latest in software testing: expert analysis, innovative strategies, and industry forecasts
Software Testing

The Testing Pyramid: A Guide to Effective Software Testing

Rupesh Garg
Rupesh Garg
December 20, 2024
5 min read
Automation Testing

Mastering Automated UI Testing: Overcoming Common Hurdles

Rupesh Garg
Rupesh Garg
December 20, 2024
5 min read
Automation Testing
Software Testing

Page Object Model and Page Factory in Selenium with Python

Rupesh Garg
Rupesh Garg
December 19, 2024
5 min read