• Forums
    • Public Forums
      • Community Connect
      • Dynatrace
        • Dynatrace Open Q&A
      • Application Monitoring & UEM
        • AppMon & UEM Open Q&A
      • Network Application Monitoring
        • NAM Open Q&A
  • Home /
  • Public Forums /
  • Application Monitoring & UEM /
  • AppMon & UEM Open Q&A /
avatar image
Question by Iskren N. · Feb 28, 2012 at 08:43 PM ·

Difference in reported Synchronization % with and without Collections sensor pack

Hello,

                I am using dynaTrace 4.0. I found that the synchronization time in version 4 is automatically monitored and displayed. I am monitoring a single java server.

With the sensors I have initially defined/”Collections” sensor pack not placed/ I am getting 200ms. Average Transaction Response Time from my server. “Response Time Hotspots” dashlet shows 5.5% in Synchronization(on average).

                Once I place the “Collections” sensor pack and execute the same tests I get 2000ms Average Response Time,  “Response Time Hotspots” dashlet shows 58.7% in Synchronization. “Method Breakdown by Synchronization Time” points to java.util.ArrayList, java.util.HashSet, java.util.HashMap <init> methods as the biggest contributors.

                My questions here are:

                                What causes this huge difference in all figures?

                                Are the results that I’m getting with the “Collections” sensor pack placed distorted and how?

                                Is there a synchronization problem present?

Thanks in advance.

Regards,

Iskren

Comment
Chad T.

People who like this

1 Show 0
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

5 Replies

  • Sort: 
  • Most voted
  • Newest
  • Oldest
avatar image

Answer by Christian S. · Feb 29, 2012 at 11:58 PM

hi Iskren,

first of all: you should _only_ turn on the memory sensors, if you're really searching for a _memory-related_ problem! otherwise they will impact your runtime performance (as you figured by yourself).

concerning your questions: if there's no instrumented sensor on a method and it's also not caught by auto-sensors then you won't see it of course. in this case the times of the method are added to its parent. however, auto-sensors were built to figure out the parts of your application that are slow, so if you have a performance problem with specific methods then chances are high that they are caught by auto-sensors.

if you want to figure if collections are a runtime performance problem in your environment then you can either rely on auto-sensors or instrument them manually with Method Sensor Rules.

in general, synchronization times are handled as other times (CPU, exec, ...). you'll see them in the PurePaths as well as in aggregated views as the Response Times Hotspots and Method Hotspots dashlets.

if you just want to find performance hotspots in your application, i'd suggest you rely on auto-sensors & work with Response Times Hotspots and Method Hotspots dashlets to find your hotspots.

best,

Christian

Comment
Chad T.

People who like this

1 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image

Answer by Iskren N. · Feb 29, 2012 at 07:42 PM

Hi Christian,

                Some details on the use case:

                First the described case happened in reverse. Fist I got some results with Collections(during my first steps with the tool, obviously not right), then I found that removing the sensor pack reduces the overhead a lot. What I am trying to find out now is could I use the results from my first tests in any way or should I totally discard them. If the results can be used somehow and they are showing a problematic place emphasized by the huge overhead, then I need a way to measure the real impact of this. This was the reason for my questions above:

             “So if we have no sensor on a method and it has not received an auto-sensor, how is its time measured? Do we get the distinction between CPU, Suspension, Wait, I/O for it? If not, where is its time calculated – CPU or Suspension of the Caller method?

             Is there a way to measure the time spent(an average or %CPU, sync, etc.) in this classes/methods without placing sensors on them and introducing that much overhead?”

I am also interested in that in general – how are such situations handled, traced and reported. Could you please share some details there. I was not able to find much on “synchronization” in the documentation.

In general the Collections were not a point of interest unless they actually impact the performance. In the described case above I really want to know - Are they and how much?

Best Regards,

Iskren

Comment
Chad T.

People who like this

1 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image

Answer by Christian S. · Feb 29, 2012 at 06:56 PM

hi Iskren,

turning on the Collections Sensor Pack will place Memory Sensor Rules on all Collection classes. these are no Method Sensor Rules so that's why you don't see a difference in the PurePaths.

with these Memory Rules placed you can do a Selective Memory Dump which gives you an overview of all living collection objects and their allocation point. you could also turn on allocations in the PurePaths by changing the Collection Sensor properties and turn on 'allocations on PurePath', however this would introduce even more overhead.

the synchronization overhead you're seeing is a result of collecting the data for the selective dump, which is done by instrumenting the constructors of these collection classes. this is also the reason for the much higher response times. i guess you have a lot of threads which are working with collections concurrently?

so i'd turn off the Collections Sensor Pack, unless you're interested in having a live overview of all existing collection instances.

what is your use case or what are you trying to find out related to collections?

best,

Christian

Comment
Chad T.

People who like this

1 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image

Answer by Iskren N. · Feb 29, 2012 at 03:31 PM

Hi Andi,

               

                Thanks for the quick response!

                The PurePath size is the same 217. Structural comparison of purePaths from the two executions show no differences. It seems the overhead is not coming from tracing more methods. What are we looking for with this comparison anyway? 

                So if we have no sensor on a method and it has not received an auto-sensor, how is its time measured? Do we get the distinction between CPU, Suspension, Wait, I/O for it? If not, where is its time calculated – CPU or Suspension of the Caller method?

                Is there a way to measure the time spent(an average or %CPU, sync, etc.) in this classes/methods without placing sensors on them and introducing that much overhead?

               

Kind Regards,

Iskren

Comment
Chad T.

People who like this

1 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

avatar image

Answer by Andreas G. · Feb 28, 2012 at 09:25 PM

Hi Iskren

Can you tell me the average size of your PurePaths when you have the Collection Sensor Placed vs. having it not placed.
Turning the Collection Sensor Pack on usually traces a lot of activity as applications tend to be very heavy on Collection/Map/... usage. Thats also why it is not placed by default and should only be turned on for deep-dive diagnostic use cases. The good news with dynaTrace 4 is that you have Automatic Sensors - so - in case you really have a problem with your Collections you will actually see them in the Response Time and Method Hotspot Dashlet as these methods would be picked up in case they are called too frequently, take too long to execute and impact overall response time.

Andi

Comment
Chad T.

People who like this

1 Show 0 · Share
10 |2000000 characters needed characters left characters exceeded
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Toggle Comment visibility. Current Visibility: Viewable by all users

Up to 10 attachments (including images) can be used with a maximum of 50.0 MiB each and 250.0 MiB total.

How to get started

First steps in the forum
Read Community User Guide
Best practices of using forum

NAM 2019 SP5 is available


Check the RHEL support added in the latest NAM service pack.

Learn more

LIVE WEBINAR

"Performance Clinic - Monitoring as a Self Service with Dynatrace"


JANUARY 15, 3:00 PM GMT / 10:00 AM ET

Register here

Follow this Question

Answers Answers and Comments

3 People are following this question.

avatar image avatar image avatar image

Forum Tags

dotnet mobile monitoring load iis 6.5 kubernetes mainframe rest api dashboard framework 7.0 appmon 7 health monitoring adk log monitoring services auto-detection uem webserver test automation license web performance monitoring ios nam probe collector migration mq web services knowledge sharing reports window java hybris javascript appmon sensors good to know extensions search 6.3+ server documentation easytravel web dashboard kibana system profile purelytics docker splunk 6.1 process groups account 7.2 rest dynatrace saas spa guardian appmon administration production user actions postgresql upgrade oneagent measures security Dynatrace Managed transactionflow technologies diagnostics user session monitoring unique users continuous delivery sharing configuration alerting NGINX splitting business transaction client 6.3 installation database scheduler apache mobileapp RUM php dashlet azure purepath agent 7.1 appmonsaas messagebroker nodejs 6.2 android sensor performance warehouse
  • Forums
  • Public Forums
    • Community Connect
    • Dynatrace
      • Dynatrace Open Q&A
    • Application Monitoring & UEM
      • AppMon & UEM Open Q&A
    • Network Application Monitoring
      • NAM Open Q&A