Monitoring sql server
-
Upload
john-martin -
Category
Technology
-
view
258 -
download
1
Transcript of Monitoring sql server
![Page 1: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/1.jpg)
MONITORING SQL SERVER
Key Performance Metrics and how to Interpret Them
![Page 2: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/2.jpg)
Tuning blog: http://www.sqlperformance.com/
E-mail [email protected] for free copies of our $10 e-books:
![Page 3: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/3.jpg)
YOUR PRESENTER• John Q Martin
o Sales Engineer for SQL Sentryo Worked with SQL Server for ~10 yearso Consultant, SQL DBA, Dev & BI Developero Former Microsoft Premier Field Engineer
• Contact Informationo Email: [email protected] Blog: http://blogs.sqlsentry.com/author/JohnMartin/ o Twitter: @SQLDiplomat o LinkedIn: https://uk.linkedin.com/in/johnqmartin
![Page 4: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/4.jpg)
AGENDA• CPU Monitoring
• Memory Monitoring
• Storage Monitoring
• SQL Server Monitoringo Monitoring Counterso Wait Statso DMVso Events
![Page 5: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/5.jpg)
MONITORING APPROACHES
![Page 6: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/6.jpg)
MONITORING FUNDAMENTALS
• Monitor over time, keep the captured data as it will be invaluableo Don’t just grab everything “just in case”
• Use historical data to create baselineso Baselines will allow for spotting when regular events or time periods are ‘out of
band’
• Historical monitoring data can be used to perform trend analysis and capacity planning.
![Page 7: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/7.jpg)
CPU METRICS
• Processo% Processor Timeo% Privileged Time
• Processoro% Processor Timeo% Privileged Timeo% DPC Time
![Page 8: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/8.jpg)
CPU METRICS• Important to monitor each CPU as well as the total CPU usage.
o Helps identify potential MAXDOP issues.o Will allow for you to see if there are possible misconfigurations in the system
outside of SQL Server
• Excessive DPC and Privileged time can indicate issues elsewhere in the system such as networking or storage.
• Monitoring the SQL Server Processes will allow you to see how much time is spent on SQL Servero Depending on storage you can capture more process instances
![Page 9: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/9.jpg)
CPU METRICSReal Time Monitoring Tracking CPU over time.
![Page 10: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/10.jpg)
MEMORY METRICS
• NUMA Node MemoryoAvailable MByteso Total MBytes
• MemoryoAvailable Mbyteso Page Faults/seco Page Reads/seco Page Writes/sec
![Page 11: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/11.jpg)
MEMORY MONITORING
• Understand what volumes of data are being read into and out of memory.
• Tracking memory use by NUMA node can have benefits depending on the configuration of the system. o Differences in the amount of memory allocated to each NUMA node can affect
processing in the CPUs within each node.
• Ensuring that there is a sufficient free memory is important to maintaining a stable system.
![Page 12: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/12.jpg)
MEMORY MONITORING
• Track memory by node
• Aggregate to overall
• What else is in use?Node 1Node 0
![Page 13: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/13.jpg)
STORAGE METRICS
• Logical Disko Same as Physical DiskoDepends on your disk
configuration, if 1:1 mapping between physical & logical then use Physical metrics.
• Physical DiskoDisk Read Bytes/secoDisk Write Bytes/secoDisk Reads/secoDisk Writes/seco Split IO/secoCurrent Disk Queue
Length
![Page 14: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/14.jpg)
STORAGE MONITORING
• Key monitoring elements for storageo IOPSo Throughputo Latency
• Monitor amount of space usedo Sample rate does not need to be frequent, can be minutes or hours rather than seconds.
• Understand the configuration of the disks as to whether you need to use Logical and/or Physical Disk counters.
![Page 15: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/15.jpg)
SQL SERVER STORAGE DMVS
• sys.dm_io_virtual_file_stats()o Gives depth to the reads & writes into each database fileo Allows you to derive Read/Write balance for data fileso IO operations and Bytes written
• sys.sm_io_pending_io_requestso Shows outstanding file IOs for SQL Server database files.
• sys.dm_db_index_physical_stats()o Gather index fragmentation detailso Can cause lots of IO, use sparingly on large databases
![Page 16: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/16.jpg)
SQL SERVER METRICS
• Buffer ManageroBuffer Cache Hit RatiooCheckpoint pages/seco Page Reads/seco Page Writes/sec
• Access Methodso Forwarded Records/seco FreeSpace Scans/seco Page Splits/secoWorkfiles Created/secoWorktables Created/sec
![Page 17: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/17.jpg)
SQL SERVER METRICS
• Buffer Nodeo Page Life Expectancyo Local node Page
lookups/secoRemote node page
lookups/sec
• DatabasesoActive Transactionso Log Bytes Flushed/seco Log Flush Wait timeo Log Flush Waits/seco Log Flushes/seco Percent Log Used
![Page 18: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/18.jpg)
PAGE LIFE EXPECTANCY• PLE Value is meaningless, Discuss.
• Value needs to be given contexto How large is the buffer poolo What is my IO sub-system capabilityo What % of the IO Channel is used to maintain the PLE value
• Investigate changeso What happened when PLE suddenly dropped?
• Monitor at the Buffer Node Levelo Global PLE value will not equal mean AVG of Node value.
![Page 19: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/19.jpg)
PAGE LIFE EXPECTANCY
• Look for changes and see what else was going ono Large batch job/reporto Someone runs DBCC DROPCLEANBUFFERS
• Frequent monitoring required as changes can happen fasto Seconds to minutes for monitoring interval.
What happened ?
![Page 20: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/20.jpg)
SQL SERVER WAITS
• ASYNC_NETWORK_IO
• LCK_*
• PAGELATCH_*
• RESOURCE_SEMAPHORE
• WRITELOG
• LOGBUFFER
• CXPACKET
• THREADPOOL
![Page 21: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/21.jpg)
SQL SERVER EVENTS
• Monitor SQL Agent for Failed Jobs
• Monitor for 823, 824, 825 errorso Can indicate storage or corruption issueso Make use of Agent Alerts or tools to scan the agent log
• Monitor and manage the dbo.suspect_pages table in MSDBo SQL Server will track incidences of corrupt pages hereo Limited to 1000 records so needs to be managed if there is anything here
![Page 22: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/22.jpg)
SUMMARY
• Identify base metrics that you should be capturing and a capture frequencyo Understand why you are collecting them and how to use them effectively
• Identify specific business events and cycles and create baselines to allow for tracking performance over multiple iterations and time
• Look for correlation between performance metricso Make use of CORREL function in Excel if needed
• Track changes to the environment, code, applications etc. this will help supplement the monitoring data.
![Page 23: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/23.jpg)
QUESTIONS
![Page 24: Monitoring sql server](https://reader036.fdocuments.net/reader036/viewer/2022062900/58eb5ab71a28abaa718b460f/html5/thumbnails/24.jpg)
THANK YOU!
• Slides will be available at http://blogs.sqlsentry.com • More information at:
o SQLSkills, et al• E-mail [email protected] for free copies of our e-books:
o Just tell them where you met me• My contact info for other questions:
o Email: [email protected] Twitter: @SQLDiplomat