Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Microsoft IT (India) – Visual Studio 2012Launch3/October to 5/October
Tools to combat Bugs& Poor Performancein ProductionTarun Arora, Microsoft MVPMicrosoft IT India
Cmd>Who   am I?
Today’s Menu Card     How to tackle non-reproducible production defects?     > IntelliTrace in Production     How to appro...
Disclaimer
What developers love <3Building a Solid ArchitectureFixing testing defectsFixing production issues
Why are Production defects hard tofix?
Spot the real Problem?
Team Barriers =Value Delivery Impediments                             ||
Production Incidents Hard to Debug andResolve            Production errors             Difficult to identify root cause, d...
IntelliTrace <Hello World/>
DemoIntelliTrace InProduction
Recap – IntelliTrace in Production•   IntelliTrace collector supports an Xcopy setup•   P in PDBs stand for “Priceless”•  ...
Today’s Menu Card     How to tackle non-reproducible production defects?     > IntelliTrace in Production     How to appro...
Poor performance in Prod – what’sthat?“The progressbar in IE ismoving butnothing ishappening onthe page!”
How are performance issuesdiagnosed? FrameworkProblem ResolutionDefine – Analyse – Refine Problem StatementEach tool has a...
Apples VS OrangesSampling                                                                Trace (Instrumentation)Statistica...
Visual Studio Standalone Profiler
Concurrency Visualizer
Memory Management - Insight
Standalone Profiler – Commands                                    Vsperfreport /packsymbol                                ...
DemoVisual StudioStandalone Profiler
Recap – Visual Studio StandaloneProfiler• How to setup Visual Studio Standalone    collector•   Sampling Vs Instrumentatio...
Today’s Menu Card     How to tackle non-reproducible production defects?     > IntelliTrace in Production     How to appro...
Automation Everywhere!“Speed upperformanceissueresolution byautomatingweb testsusing IISLogs”
public IEnumerable<WebTestRequest> GetRequests(){      LogQuery logQuery = new LogQuery();      IISLogInputFormat iisInput...
DemoWeb performancetests from IIS Logs
Summary    How to tackle non-reproducible production defects?    > IntelliTrace in Production    How to approach productio...
A techis guide to combating bugs & poor performance in production
A techis guide to combating bugs & poor performance in production
Upcoming SlideShare
Loading in …5
×

A techis guide to combating bugs & poor performance in production

2,727 views

Published on

"Session Presentation from Visual Studio 2012 Launch"

A Techie without efficient tools is only half the good! This session will give you the armor to battle the 2 most common scenarios we run into.
1. A production defect that cannot be reproduced in a test environment.
2. Not being able to reproduce poor application performance experienced in Production in a test environment.
This session targets to show you how to use IntelliTrace in Production and Visual Studio Standalone profiler to the best of your advantage.

Published in: Technology
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/qPq9D ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Be the first to like this

A techis guide to combating bugs & poor performance in production

  1. 1. Microsoft IT (India) – Visual Studio 2012Launch3/October to 5/October
  2. 2. Tools to combat Bugs& Poor Performancein ProductionTarun Arora, Microsoft MVPMicrosoft IT India
  3. 3. Cmd>Who am I?
  4. 4. Today’s Menu Card How to tackle non-reproducible production defects? > IntelliTrace in Production How to approach production performance issues? > Visual Studio Standalone Profiler How to get your boss to love you? > Automating performance test creation
  5. 5. Disclaimer
  6. 6. What developers love <3Building a Solid ArchitectureFixing testing defectsFixing production issues
  7. 7. Why are Production defects hard tofix?
  8. 8. Spot the real Problem?
  9. 9. Team Barriers =Value Delivery Impediments ||
  10. 10. Production Incidents Hard to Debug andResolve Production errors Difficult to identify root cause, debug code and resolve defects Problem Actionable diagnostics IntelliTrace in production to speed debugging and code fix Solution
  11. 11. IntelliTrace <Hello World/>
  12. 12. DemoIntelliTrace InProduction
  13. 13. Recap – IntelliTrace in Production• IntelliTrace collector supports an Xcopy setup• P in PDBs stand for “Priceless”• iTrace opens only in Visual Studio Ultimate• CTP 1 brings Custom Events and TimeStamp• IntelliTrace is not just for production. You can leverage it in Visual Studio, Microsoft Test Manager and most importantly via System Center.
  14. 14. Today’s Menu Card How to tackle non-reproducible production defects? > IntelliTrace in Production How to approach production performance issues? > Visual Studio Standalone Profiler How to get your boss to love you? > Automating performance test creation
  15. 15. Poor performance in Prod – what’sthat?“The progressbar in IE ismoving butnothing ishappening onthe page!”
  16. 16. How are performance issuesdiagnosed? FrameworkProblem ResolutionDefine – Analyse – Refine Problem StatementEach tool has a different level of intrusionFlexibility to disruption of service in Production
  17. 17. Apples VS OrangesSampling Trace (Instrumentation)Statistical Profiling Analytical Profiling Code being Profiled Profiler FuncFoo1( ) FuncFoo1 Enter Probe … External function enter Probe Console.WriteLine(“Helllo”); Process A Idle Process B Process A External function exit Probe Process A Process A - Func1 - Func3 - Func1 - Func2 …. - Func2 - Func1 - Func2 - Func1 - Func3 - Func2 - Func3 - Func3 FuncFoo2( ) - Stack - Stack - Stack - Stack … FuncFoo2 Exit Probe Exit FuncFoo1()
  18. 18. Visual Studio Standalone Profiler
  19. 19. Concurrency Visualizer
  20. 20. Memory Management - Insight
  21. 21. Standalone Profiler – Commands Vsperfreport /packsymbol Vsperfreport /packsymbols /summary: all <myTraceFile>.vsp /summary:all <mySamplefiile.vsp> Vsinstr /ExcludeSmallFuncs /NoWarn:2001;200 Sn – Vr *.* FileToBeInstrumented.dl Vsperfclrenv /globaltraceon Vsperfclrenv /globalsampleon Vsperfcmd /start:Trace /output:<mytracefile> Vsperfcmd /start:sample /output:<sampleFile>VSPerfAspNetCmd /tip http://foo:8085/ /cs /globaloff /user:<domain><user1> /attach:<PID> /o:<myFileName>.vsp Vsperfcmd /detach Vsperfcmd /status Vsperfcmd /shutdown Vsperfcmd /globalon Vsperfcmd /globaloff Vsperfcmd /shutdown VsPerfMon </Trace [/Counter:cfg] | /Sample | /Coverage> /CrossSection /Output <file name> [WinCounter:cfg] [/User [Domain]username]
  22. 22. DemoVisual StudioStandalone Profiler
  23. 23. Recap – Visual Studio StandaloneProfiler• How to setup Visual Studio Standalone collector• Sampling Vs Instrumentation• When to use VsPerfCmd and when to use VsPerfAspNetCmd• Sampling does not support TIP on Win 8/2012• TIP requires Visual Studio Ultimate
  24. 24. Today’s Menu Card How to tackle non-reproducible production defects? > IntelliTrace in Production How to approach production performance issues? > Visual Studio Standalone Profiler How to get your boss to love you? > Automating performance test creation
  25. 25. Automation Everywhere!“Speed upperformanceissueresolution byautomatingweb testsusing IISLogs”
  26. 26. public IEnumerable<WebTestRequest> GetRequests(){ LogQuery logQuery = new LogQuery(); IISLogInputFormat iisInputFormat = new IISLogInputFormat(); // currently these columns give us suffient information to construct the web test requests string query = @"SELECT s-ip, s-port, cs-method, cs-uri-stem, cs-uri-query FROM " + _iisLogPath; LogRecordSet recordSet = logQuery.Execute(query, iisInputFormat); // Apply a bit of transformation while (!recordSet.atEnd()) { ILogRecord record = recordSet.getRecord(); if (record.getValueEx("cs-method").ToString() == "GET") { string server = record.getValueEx("s-ip").ToString(); string path = record.getValueEx("cs-uri-stem").ToString(); string querystring = record.getValueEx("cs-uri-query").ToString(); StringBuilder urlBuilder = new StringBuilder(); urlBuilder.Append("http://"); urlBuilder.Append(server); urlBuilder.Append(path); if (!String.IsNullOrEmpty(querystring)) { urlBuilder.Append("?"); urlBuilder.Append(querystring); } // You could make substitutions by introducing parameterized web tests. WebTestRequest request = new WebTestRequest(urlBuilder.ToString()); yield return request; } ...
  27. 27. DemoWeb performancetests from IIS Logs
  28. 28. Summary How to tackle non-reproducible production defects? > IntelliTrace in Production How to approach production performance issues? > Visual Studio Standalone Profiler How to get your boss to love you? > Automating performance test creation

×