• 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 Joseph A. · Jan 16, 2014 at 07:27 AM · diagnostics

IO wait in servlet entry point

Hi,

We noticed intermittent high response time in one of our webservice apps, and on checking DT found that for most of the slow requests, the purepath breakdown shows 100% IO. However, this time is being shown as being spent in Servlet service() method. Please refer screenshots of purepaths (API/agent names masked for confidentiality) .There were few other purepaths which had almost 100% time spent in sync, trying to get hold of the log, while one of the threads were writing to log file (we use log4j). The only external dependency for this app is a MySQL DB which does not show any bottleneck in terms of connection acquistion or query execution.

We also have an independent infra dashboard which shows appserver and JVM metrics (completely done outside of DT) , and for this time window, the iostats average wait time was high. Please let me know the cause/effect here. Is the service() method being slow due to IO wait , or is it the other way round. I am guessing IO wait triggered the slowness, but do we have any way to confirm it via DT? 

Comment

People who like this

0 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.

6 Replies

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

Answer by Joseph A. · Jan 16, 2014 at 07:30 AM

Somehow hit "post" before attaching screenshots. Please refer purepath_1.png - PP showing hotspot in service() method, and purepath_2.png (API distribution) which again shows "Servlet" as the main contributor.

Thanks,

Joseph

Comment

People who like this

0 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. · Jan 16, 2014 at 09:30 AM

Hi Alex

Can you export a PurePath and attach it? If you do so - please export the PurePath including Time Series Data.

Comment

People who like this

0 Show 1 · 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 Joseph A. · Jan 16, 2014 at 04:17 PM 0
Share

Hi Andreas,

Exported purepath : pp_timeseries.dts

Thanks,

Joseph

avatar image

Answer by Andreas G. · Jan 16, 2014 at 05:05 PM

Thanks. I looked at it but am puzzled why there is no Auto Sensor data. Did you turn that feature off?

It seems like the service method is doing something for most of entirety of this purepath until it starts executing these SQL Statements and spawning these additional threads. Is it possible that your app makes external calls through custom/propriatory channels?

Comment

People who like this

0 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 Joseph A. · Jan 16, 2014 at 06:10 PM

Hi Andreas,

I don't think auto sensors are disabled, how can we confirm that?. The SQL statements are not taking time, and the threads are for executing some functions in parallel. This has not been causing any issue so far. There is no external call at all for this app, only interaction is with DB. Attaching 2 purepaths where hotspot was related to logging, one while writing to the log (I/O)  purepath_io.png,  and the other trying to get a hold of the log handle (sync) purepath_sync.png. I just want to know if this is being triggered due to some underlying infrastructure I/O issue unrelated to the app.

Thanks,

Joseph

Comment

People who like this

0 Show 3 · 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 Andreas G. ♦ · Jan 16, 2014 at 07:15 PM 0
Share

perfect - these screenshots is what i was hoping for. they show that auto sensors (grey methods) are picking up the areas of your code that are the real performance issue. it clearly shows that the time is spent in writing your log messages to the file system. Please have a look at the Host Health Monitoring Dashboard for that machine where this application is running on. dynaTrace automatically monitors disk i/o and available disk space.

If this doesnt tell you why writing to disk is slow you may want to look at other metrics of this OS or the JVM process, e.g: opened file handles, ...

I have to admit that I am not an expert when it comes to I/O - but - I am sure those folks that are familiar with the OS that your app is running on will know how to analyze issues with I/O. Explore the log files. Maybe there are other processes that also access them at the same time?

andi

avatar image Joseph A. Andreas G. ♦ · Jan 16, 2014 at 07:56 PM 0
Share

Hi Andi,

Those purepaths give an indication about logging, but there a bunch of others which just show servlet service() method like this one. pp_servlet.png.  Here 100% of the time is shown in I/O but we don't see which method is stuck in I/O . What can be done in such cases? . In "API distribution" for this purepath, pp_api_dist.png, it just shows all the time in "Servlet" component, but only a very small fraction is CPU time. This seems puzzling to me. Is there any other way to monitor this server within DT - maybe a different view other than Purepaths to know the I/O behavior. I am also checking with the infra monitoring team here to see if they can help.

Thanks,

Joseph

 

avatar image Andreas G. ♦ Joseph A. · Jan 17, 2014 at 09:14 AM 0
Share

Hi.

Auto Sensors work in a way that they capture additonal/extended PurePath information in a way that they dont impact application performance. Therefore it is not guaranteed that we get this information for every PurePath. If there is no auto sensor information the time is shown on the last instrumented sensor node - in your case that is the service method.

In order to "proof" that it is the logging you could create a custom sensor rule for the log method on your Category class. This will then ensure that the method execution is always captured for every PurePath. I am pretty sure it is the log method in all cases - but - I would go ahead and create this custom sensor rule as a next step. The easiest way to do this is to right click on the log method in the Purepath where it shows up -> Create Sensor Rule -> Include Selected Method. This will create a new sensor. In order for the sensor to work you either need to do a Hot Sensor Placement (HSP) or restart the JVM. HSP can be done in the AGent OVerview. It is one of the context menu options on a Java Agent. It will "force" the JVM to reload its classes which allows dynaTrace to add our custom instrumentation for your sensors

Hope this helps

avatar image

Answer by Christian S. · Jan 17, 2014 at 12:20 PM

hi Joseph,

I totally second Andi's thoughts about the logging and how you should proceed!

and I'm also puzzled by the fact that you don't get auto-sensor data for a PurePath which lasts more than 11 seconds. could you tell us which JVM you are using? or could you maybe even create a system information archive (client cockpit -> status overview -> system information) including the corresponding agent log files? that could help us find out more.

thx, Christian

Comment

People who like this

0 Show 1 · 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 Joseph A. · Jan 17, 2014 at 03:54 PM 0
Share

Hi Christian/Andi, 

I am not clear why only certain PPs stop at service() method while others show the bottleneck at log().

Thanks,

Joseph

avatar image

Answer by Joseph A. · Jan 22, 2014 at 05:25 PM

Hi,

I couldn't to get this for a while. Reading through the posts again, i have attached the info requested on the agent log file - agent_log.txt properties dt_agent_props.txt, and deployed sensors info (from "Agents Overview" and clicking on the agent) deployed_sensor.txt. Please point me to the sensor setup that can be done for more extensive monitoring. I tried following "Purepath where it shows up -> Create Sensor Rule -> Include Selected Method, but seems the change did not persist. Do i need to be have admin privileges to make such changes? . Can you also suggest the changes to be done for infra level monitoring, CPU , disk , I/O etc. - currently, it shows all of them healthy host_health_status.png, but can't see any detailed metrics - host_info.png

Thanks,

Joseph

Comment

People who like this

0 Show 1 · 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 Balázs B. · Mar 11, 2015 at 06:46 PM 0
Share

Have you found the root cause of your issue? Thanks

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

Related Questions

memory leaks

Disconnected transaction flow

.net collections - performance problems - auto sensors?

Application Process Unavailable only for several processes

Memory generation dashboards/measures are empty

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