DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports Events Over 2 million developers have joined DZone. Join Today! Thanks for visiting DZone today,
Edit Profile Manage Email Subscriptions Moderation Admin Console How to Post to DZone Article Submission Guidelines
View Profile
Sign Out
Refcards
Trend Reports
Events
Zones
Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Most Frequent Performance Bottlenecks

Ivo Magi, Product Manager at Plumbr, shares data gathered while detecting the root causes for some poorly performing applications.

Ivo Magi user avatar by
Ivo Magi
·
Nov. 26, 16 · Analysis
Like (7)
Save
Tweet
Share
6.83K Views

Join the DZone community and get the full member experience.

Join For Free

We have recently passed the “half a billion root causes for poor user experience discovered” milestone. To celebrate this, we decided it is time to share the data we have gathered while detecting the root causes for the poorly performing applications.

To understand the data set exposed, you should have some understanding of what we do. Plumbr is keeping an eye on all end user interactions with Java applications. Whenever such an interaction is either too slow or fails altogether, Plumbr exposes the exact root cause in source code responsible for the problem. Examples of such root causes include slow database queries, synchronization issues or blocking file system accesses.

The dataset we analyzed was extracted from the root causes detected in 1,020 different environments Plumbr was monitoring during May to August 2016.

The first exposure of the dataset lists the number of times a particular root cause was the reason why end user either faced performance or availability issues:

most frequent performance bottlenecks

From the above it is, for example, visible that:

  • Web service access over HTTP calls was the source for poor performance in 26.5% of the root causes analyzed.
  • Synchronization issues resulting in long locks were the second most popular culprit, responsible for ~15% of the root causes.
  • Slow JDBC operations ranked third, just barely behind the locking issues.

As this representation of the data is biased towards larger deployments where Plumbr was monitoring clustered applications, let’s look at a different representation of the data. The chart below answers the question “In how many unique accounts was this particular root cause impacting end user experience at least once”

what impacts your java application performance the most

From the above, we can see for example that:

  • Too long GC pauses were impacting end users in more than 65% of the accounts.
  • Locking issues in poorly designed synchronization blocks were detected in around 60% of the accounts.
  • Streaming operations using file system were detected as root causes in 11% of the accounts.
  • Lucene indexes were either infrequently used or rather well built, being the source for performance issues in under 2% of the accounts.

I hope this gives you exposure to a rather interesting view of the different ways the Java-based applications are failing to meet the performance or availability requirements. For those who want to understand the data exposed above in more details, check out all the root causes Plumbr detects, to understand what the different columns in the charts above are all about.

End user File system

Published at DZone with permission of Ivo Magi, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • API Design Patterns Review
  • Microservices Discovery With Eureka
  • What Is a Kubernetes CI/CD Pipeline?
  • Differences Between Site Reliability Engineer vs. Software Engineer vs. Cloud Engineer vs. DevOps Engineer

Comments

Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends: