Perfmon and Profiler 101




                           © 2008 Quest Software, Inc. ALL RIGHTS RESERVED.
About Me: Brent Ozar
• SQL Server Expert for
  Quest Software
• Former SQL DBA
• Managed >80tb SAN,
  VMware
• Dot-com-cra...
Today’s Agenda
• The Civic& Godzilla
• Metrics, Trace,
  Mitigations
• Taking Before and
  After Pictures
• Helpful Tools
...
If You Don’t Need to Go Fast…




    Photo Licensed With Creative Commons From http://flickr.com/photos/stevekeys/2755142...
But The Faster You Want To Go
The More You Have To Measure
Windows “Check Engine” Light
And If You Wanna Go Fast:
Two Approaches to Detection
• Exceptions Monitoring:
  – Check Engine Light
  – Reactive Actions
• Proactive Monitoring:
 ...
Metrics-Trace-Mitigation Process

               Capture
               Metrics




                            Capture
  ...
Where Do We Start?
            Hardware

            Windows

            SQL Server

              Tables,
             I...
Capture Metrics With Perfmon
•   Performance Monitor, aka Perfmon
•   Ships with all Windows versions
•   Polls any server...
12
Memory Counters
• Memory – Available Mbytes
• Paging File - % Usage
• SQLServer:Buffer Manager –
  – Buffer cache hit rati...
Storage Metrics: Physical Disk
•   Avg. Disk Queue Length
•   Avg. Disk sec/Read
•   Avg. Disk sec/Write
•   Disk Reads/se...
CPU & Other Metrics
• Processor - % Processor Time
• System – Processor Queue Length
• SQLServer:General Statistics –
  Us...
The Raw Output: CSV Files




                            16
Adding Analytical Formulas




                             17
That’s a Lot of Zeroes!




                          18
Sorting High to Low




                      19
What To Look For, In Order
• System – Processor Queue Length
• Memory – Available Mbytes
• Lock pages in memory!
What To Look For Next
•   Disk metrics on the page file drive
•   Disk metrics on the log file drive
•   Disk metrics on t...
Got Everything on One Drive?
• Narrow it down with the DMV
  sys.dm_io_virtual_file_stats
Capture Queries with a Trace
Columns to Capture

What’s Going On       What The Impact Was
• Text Data           • CPU
• DatabaseID and/or   • Reads
  ...
Profiler’s Results: A Trace Table
Order By Duration Descending
Casting and Grouping
Correlate Metrics & Trace
• Show a cause and effect relationship
• Fields to mentally “join” on:
  –   Date/Time ranges
  ...
Metrics-Trace-Mitigation Process

               Capture
               Metrics




                            Capture
  ...
If Our Servers Were Houses…
       Before




       After
Consistent and Repeatable
• 100 users accessing the web site
• Closing a typical financial period
• 10 users running a rep...
When To Take A Picture
                        Before
• Adding new hardware
• Installing a SQL
  Server service pack
• Cha...
Plus Monitoring For…
                        Before
• Things break
• Populations change
  over time
• Budgeting
• Need to ...
Save Perfmon& Profiler Data
•   Central file share
•   Even better: in a database
•   Name by server, by date
•   Revisit ...
Tool: Performance Dashboard
Tool: Data Mining
Table Analysis Tools For The Cloud
Detect Categories of Load
Works for Profiler Results Too
Tool: ClearTrace
Cleans Up Queries
Sample Problem #1
• Metrics tell us:
  – Very high disk queue
    lengths on data drive
• Trace tells us:
  – Report queri...
Ways We Can Mitigate It
•   Add covering indexes
•   Modify existing indexes
•   Add hard drives to the data file array
• ...
Sample Problem #2
• Metrics tell us:
  – Page file drive queue lengths
    average >20
  – Page file use averages >1%
  – ...
Memory Configuration

   Server: 4gb ram

 OS:       SQL:        App:
 1gb       3gb         1gb
Ways We Can Mitigate It
•   Add memory and enable AWE/PAE
•   Add memory and upgrade to 64-bit
•   Move the app to its own...
Sample Problem #3
• Metric looks OK, but
  every 15 minutes:
  – Long drive queues on the
    log file drive
  – Page life...
Ways We Can Mitigate It
•   Stop doing log backups
•   Put the databases in simple mode
•   Add drives to the transaction ...
Sample Problem #4
• Metrics tell us:
  – CPU average is high
  – Disk, memory look OK
• Trace tells us:
  – Queries are us...
How We Can Mitigate It
• Buy really fast processors
• Spend a lot on licensing
• Change cursor to set-based query
Wrapping Things Up
• Double-check the event log first
• Don’t get overwhelmed: focus with the
  Metric – Trace – Mitigatio...
Resources On The Web
• My blog about Perfmon:
  www.BrentOzar.com/perfmon
• Excel Table Analysis Tools for the Cloud:
  ww...
Upcoming SlideShare
Loading in...5
×

Perfmon And Profiler 101

2,913

Published on

Learn to use Performance Monitor and SQL Server Profiler.

Published in: Technology
1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total Views
2,913
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
92
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

Perfmon And Profiler 101

  1. 1. Perfmon and Profiler 101 © 2008 Quest Software, Inc. ALL RIGHTS RESERVED.
  2. 2. About Me: Brent Ozar • SQL Server Expert for Quest Software • Former SQL DBA • Managed >80tb SAN, VMware • Dot-com-crash experience • Specializes in performance tuning
  3. 3. Today’s Agenda • The Civic& Godzilla • Metrics, Trace, Mitigations • Taking Before and After Pictures • Helpful Tools • Sample Scenarios • Resources and Q&A
  4. 4. If You Don’t Need to Go Fast… Photo Licensed With Creative Commons From http://flickr.com/photos/stevekeys/2755142278/
  5. 5. But The Faster You Want To Go
  6. 6. The More You Have To Measure
  7. 7. Windows “Check Engine” Light
  8. 8. And If You Wanna Go Fast:
  9. 9. Two Approaches to Detection • Exceptions Monitoring: – Check Engine Light – Reactive Actions • Proactive Monitoring: – Detailed Gauges – Preventative Actions
  10. 10. Metrics-Trace-Mitigation Process Capture Metrics Capture Act Trace Define Mitigations
  11. 11. Where Do We Start? Hardware Windows SQL Server Tables, Indexes Query
  12. 12. Capture Metrics With Perfmon • Performance Monitor, aka Perfmon • Ships with all Windows versions • Polls any server from your desktop • Pulls performance metrics • Writes them to a file • Requires some OS permissions • Does not include alerts or analytics
  13. 13. 12
  14. 14. Memory Counters • Memory – Available Mbytes • Paging File - % Usage • SQLServer:Buffer Manager – – Buffer cache hit ratio – Page life expectancy • SQLServer:Memory Manager – Memory Grants Pending
  15. 15. Storage Metrics: Physical Disk • Avg. Disk Queue Length • Avg. Disk sec/Read • Avg. Disk sec/Write • Disk Reads/sec • Disk Writes/sec • % Disk Time
  16. 16. CPU & Other Metrics • Processor - % Processor Time • System – Processor Queue Length • SQLServer:General Statistics – User Connections
  17. 17. The Raw Output: CSV Files 16
  18. 18. Adding Analytical Formulas 17
  19. 19. That’s a Lot of Zeroes! 18
  20. 20. Sorting High to Low 19
  21. 21. What To Look For, In Order • System – Processor Queue Length • Memory – Available Mbytes • Lock pages in memory!
  22. 22. What To Look For Next • Disk metrics on the page file drive • Disk metrics on the log file drive • Disk metrics on the data file drive • Disk metrics on the TempDB drive
  23. 23. Got Everything on One Drive? • Narrow it down with the DMV sys.dm_io_virtual_file_stats
  24. 24. Capture Queries with a Trace
  25. 25. Columns to Capture What’s Going On What The Impact Was • Text Data • CPU • DatabaseID and/or • Reads DatabaseName • Writes • Login Name • Duration • Host Name • Start Time • Application Name • End Time
  26. 26. Profiler’s Results: A Trace Table
  27. 27. Order By Duration Descending
  28. 28. Casting and Grouping
  29. 29. Correlate Metrics & Trace • Show a cause and effect relationship • Fields to mentally “join” on: – Date/Time ranges – CPU – Reads/Writes – Duration
  30. 30. Metrics-Trace-Mitigation Process Capture Metrics Capture Act Trace Define Mitigations
  31. 31. If Our Servers Were Houses… Before After
  32. 32. Consistent and Repeatable • 100 users accessing the web site • Closing a typical financial period • 10 users running a report • Importing 100,000 records for a nightly ETL process • Think scripts, think load generation tool • Capture statistics during test run
  33. 33. When To Take A Picture Before • Adding new hardware • Installing a SQL Server service pack • Changing storage configurations After • New application versions • Every quarter
  34. 34. Plus Monitoring For… Before • Things break • Populations change over time • Budgeting • Need to enforce After standards • We’re not the only ones working on the house
  35. 35. Save Perfmon& Profiler Data • Central file share • Even better: in a database • Name by server, by date • Revisit every budget season • Use for new hire training
  36. 36. Tool: Performance Dashboard
  37. 37. Tool: Data Mining
  38. 38. Table Analysis Tools For The Cloud
  39. 39. Detect Categories of Load
  40. 40. Works for Profiler Results Too
  41. 41. Tool: ClearTrace
  42. 42. Cleans Up Queries
  43. 43. Sample Problem #1 • Metrics tell us: – Very high disk queue lengths on data drive • Trace tells us: – Report queries doing table scans w/o indexes – Many scheduled reports run simultaneously
  44. 44. Ways We Can Mitigate It • Add covering indexes • Modify existing indexes • Add hard drives to the data file array • Add memory to cache scanned tables • Run reports serially, not all at once
  45. 45. Sample Problem #2 • Metrics tell us: – Page file drive queue lengths average >20 – Page file use averages >1% – Available memory averages less than 250mb • Trace tells us: – No unusual queries
  46. 46. Memory Configuration Server: 4gb ram OS: SQL: App: 1gb 3gb 1gb
  47. 47. Ways We Can Mitigate It • Add memory and enable AWE/PAE • Add memory and upgrade to 64-bit • Move the app to its own server • Reduce SQL’s min/max memory sizes
  48. 48. Sample Problem #3 • Metric looks OK, but every 15 minutes: – Long drive queues on the log file drive – Page life expectancy drops near zero – Network traffic jumps • Trace tells us: – Transaction log backups are running
  49. 49. Ways We Can Mitigate It • Stop doing log backups • Put the databases in simple mode • Add drives to the transaction log array • Throttle the transaction log backups
  50. 50. Sample Problem #4 • Metrics tell us: – CPU average is high – Disk, memory look OK • Trace tells us: – Queries are using cursors – Operating on individual records, not sets
  51. 51. How We Can Mitigate It • Buy really fast processors • Spend a lot on licensing • Change cursor to set-based query
  52. 52. Wrapping Things Up • Double-check the event log first • Don’t get overwhelmed: focus with the Metric – Trace – Mitigation process • Show a clear cause and effect • Use pro tools to get an edge
  53. 53. Resources On The Web • My blog about Perfmon: www.BrentOzar.com/perfmon • Excel Table Analysis Tools for the Cloud: www.SQLServerDataMining.com/cloud • ClearTrace: http://www.cleardata.biz/cleartrace/ • SQL Server community: SQLServerPedia.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×