• 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 Anoh B. · Mar 18, 2013 at 03:47 PM ·

SocketRead0

How do I display the parameters list for the SocketRead0() operation?

Regards,
Anoh Brou

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.

1 Reply

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

Answer by Roman S. · Mar 18, 2013 at 04:55 PM

You don't - would be too much overhead to instrument such a low level method as SockerRead0.

The best way to diagnose is to use the Method Hotspots dashlet to find out who is calling this method, just backtrack far enough up the call stack to understand from where within the application this network reading comes from...

Best, Roman

Comment

People who like this

0 Show 6 · 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 Anoh B. · Mar 18, 2013 at 06:16 PM 0
Share

RGOV PROD.dts

I am at a loss as to find the values of the parameters of the socketRead0(java.io.FileDescriptor, byte[], int, int, int).  I have attached a session that contains a lot of socketread0().  Would you please show me how can I go about finding those values.

Regards,

Anoh Brou

avatar image Roman S. Anoh B. · Mar 18, 2013 at 06:22 PM 0
Share

As told before, those values are not present and it is not feasible to capture those as this methods are called way to often to be instrumented.

What question do you want to answer that you think those values will be required for? Why the app is spending so much time on this? The answer to that would be 72% due to various web services calls (the top one with 22% overall gov.research.rppr.service.delegate.reports.ReportServiceDelegateWebService.saveReport), 16% due to Oracle database access and another 11% due to database access to Sybase.

Just expand the method hotspot view and you will see those methods clearly showing up in the caller breakdown.

Best, Roman

avatar image Rob V. Anoh B. · Mar 18, 2013 at 06:40 PM 0
Share

I'll add a little more, because I was just finishing saving screenshots to show this exact thing when Roman's reply came in. A shame to waste perfectly good bits. :-)

As Roman mentioned, you would not want to instrument such a low-level method, due to overhead. Further, dT is not going to do anything helpful with a bytearray anyhow.

The standard way to analyze these auto-sensor-based hotspots is to start from them and walk back up the stack. It's not the case that "socketRead0" is your problem. You need to find out what is causing that to happen, and address that root cause.

Here is a view from the Method Hotspots, starting the analysis from socketRead0. You can see that the HttpParser method readRawLine is causing fully half of the work done by socketRead0:

 
Drilling down from there, underneath readRawLine, we see that (as Roman mentioned) 22% of the total work is caused by the "saveReport" method:
 

 
 
If desired at that point, you can r-click on the saveReport line (or any of those hotspots) and drill into the exact PPs that have those calls. Here's an example. From there, you can figure out why you're doing all the work that you're doing, and perhaps fix it.
 

 
Hope this helps,
 
Rob
 

avatar image Anoh B. Rob V. · Mar 18, 2013 at 07:56 PM 0
Share

Rob,
Thank you for the information. I followed that process to the point where I could no longer attribute the performance issue to another process other than to the socketRead0() process. Given what you said, I tried really hard to pinpoint the source of the socketRead0 issue without success.
That socketRead0 issue is very pervasive in that environment. It is crucial that I find the source of the problem in order to resolve it once and for all.

Regards,
Anoh

avatar image Rob V. Anoh B. · Mar 18, 2013 at 08:41 PM 0
Share

Anoh,

I'm confused then. The examples were from your example DTS file. Since you're redacted all context info I can't tell you what I see related to the execution environment, but does it not make sense to investigate "saveReport", or "saveSelections", etc, to see what in your app is causing those socketRead's? Those reads are just being done in response to app-level requests. To me it seems more important to look at arguments (or session-related context) around that, to see what reports specifically are being run, and why they are driving so much data access. At least that's how I'd approach it.

Rob

avatar image Rick B. Anoh B. · Mar 18, 2013 at 08:43 PM 0
Share

socketRead0() is a low-level method which refers to an external socket read, or service call.

Time spent in this method is time spent on other tiers.

Using the procedures mentioned above you can see which external services are taking the most time when called by socketRead0(). Also because these are all database and Web Services calls you can visualize the contribution of external services by looking at the Transaction Flow.

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

5 People are following this question.

avatar image avatar image 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