开发者

.NET Profiler for Azure?

开发者 https://www.devze.com 2022-12-16 03:19 出处:网络
Does anyone know of a .NET profiler which works with Azure to figure out code bottlenecks. I have tried to integrate dotTrace profiler - but haven\'t had any success.

Does anyone know of a .NET profiler which works with Azure to figure out code bottlenecks.

I have tried to integrate dotTrace profiler - but haven't had any success.

Does anyone know of any that work with Azure ? Seems something which is开发者_如何学C very needed ?


Azure Monitor lets you monitor your Azure-hosted applications in real-time. It includes a library for capturing runtime process information to cloud table storage; and also a desktop application for viewing the captured information in real-time:

http://azuremonitor.codeplex.com/

Julien Brunet 'S "cloud4net" opensource project (http://cloud4net.codeplex.com) may interest you: it provides:

  • azure api client call tracking (bytes sent/received, time spent per storage request) (*). It also calculates the bill for these calls (**)
  • fetch azure diagnostic logs into a mssql database, for easier querying. These logs include the standard IIS W3C info (bytes sent/received and time taken), hence you can also built some measurements on top of that.

(*) you don't need to rewrite your azure storage calls using the cloud4net abstraction api - the call tracking works at the socket level. (**) based on azure US pricing info at this stage. still in progress.

If you intent to profile CPU usage that's something you could extract from azure performance diagnostics (perf counter data can be fetched to azure logs)

-Julien Brunet

From:

http://social.msdn.microsoft.com/Forums/en-US/windowsazure/thread/78391eb1-357d-4431-8a4b-7f2ba80db205/

Using the VS profiler to check for bottlenecks:

http://msdn.microsoft.com/en-us/magazine/cc337887.aspx

Windows Azure Tools for Microsoft Visual Studio 1.1 (February 2010):

http://www.microsoft.com/downloads/details.aspx?FamilyID=5664019e-6860-4c33-9843-4eb40b297ab6&displaylang=en


With the release of the August 2011 Azure SDK and Visual Studio tools, profiling is now supported on instances running in the cloud. You must have Visual Studio Premium or Ultimate to use it though.


NP .Net Profiler

NP .NET Profiler Tool is designed to assist in troubleshooting issues such as slow performance, memory related issues, and first chance exceptions in any .NET process. It can troubleshoot following types of .NET applications : Azure Cloud Service ASP.NET Web Applications, .NET Windows Applications (WCF, WPF and WF ), .NET Console Applications, .NET Window Services, .NET COM+ Components.


Modern dotTrace versions work just fine with Azure although interpreting the results take some skill (since you have an infinite loop in there).

To get it to work:

  1. Add an Input Endpoint for port 9000: <InputEndpoint name="DotTrace" protocol="tcp" port="9000" localPort="9000" /> and set it to a single instance (to remove load balancing issues)
  2. Delete your current deployment and upload a new deployment ("Updating" an existing deployment will not open the necessary ports in the firewalls!)
  3. RDP into your single instance of your web role or worker role
  4. Upload the .\Bin\Remote folder as explained here (much of the info there is good!)
  5. Execute the RemoteAgent.exe file "As Administrator"
  6. Execute the local (on your dev machine) instance of dotTrace.
  7. Follow the rest of the instructions here (for my Worker Role, I attached to the WaWorkerHost.exe process).
  8. Profile away!!

I'm currently doing this in osfamily=3 (i.e. Windows Server 2012) deployments successfully.


Our C# Profiler should be able to do this.

It instruments your source code; you compile the application and include the probe data dump code as an extra .cs file. We supply this with a default that writes the data to the "local file system", but you can completely replace this with code that writes the probe data to an arbitrary place, so you can control where the probe data goes completely (pick a place on your Azure VM, or send it to your corporate machine, or whatever). You can display the profile data anywhere (e.g., your desktop machine).


You could "analyze" you code locally when running against Azure dev fabric, and the over your code to the "cloud" when happy. That is working well for me. There you also can use SQL Profiler.

0

精彩评论

暂无评论...
验证码 换一张
取 消