November 19, 2013 at 8:17 am
How can I find out if my SQL Server is under stress? Here is the version information,
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64)
Apr 2 2010 15:48:46
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
I am not sure what information should be provided. I will provide more if needed. Thanks in advance for helping me.
November 19, 2013 at 8:27 am
What do you mean by stress more concretely?
It can be anything from IO bottlenecks, high CPU utilization, Memory issues (memory pressure) , blocking and deadlocking ...
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 8:58 am
Generally speaking, there are two approaches to this. The first way is to use the DMVs to find out what's going on. Tim Ford has put together a good "periodic table of DMVs" that may be able to help you, but this is only a reference. You're going to have to dig into each one to figure out how to best use it. He published this at http://thesqlagentman.com/periodic-table/ if you're interested in it.
The second approach is to use software to monitor your server. The activity monitor in SSMS can tell you what's going on right now, but it doesn't handle history. There are products out there (SQL Sentry, Red Gate SQL Monitor, etc.) that will keep track of history and load, but they all cost money.
To help any further, IgorMi is right - we're going to need some information about what's you're after.
November 19, 2013 at 9:03 am
A good start is a book. On this site you have some books: http://www.sqlservercentral.com/Books/
One really good is
"Troubleshooting SQL Server
A Guide for the Accidental DBA
Jonathan Kehayias and Ted Krueger"
Regards
IgorMi
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 12:23 pm
I want to find out if my server has IO bottlenecks and also Memory pressure. What information do i need to provide here? Thanks
November 19, 2013 at 12:50 pm
For IO bottlenecks you need sys.dm_io_virtual_file_stats and sys.dm_io_pending_io_requests
For Memory pressure you can use sys.dm_os_buffer_descriptors, sys.dm_os_performance_counters and others.
The full grouped list of the dynamic views is here http://technet.microsoft.com/en-us/library/ms188754.aspx
For e.g. you can find the Page Life Expectancy using this query
SELECT
ple.[Node]
,LTRIM(STR([PageLife_S]/3600))+':'+REPLACE(STR([PageLife_S]%3600/60,2),SPACE(1),'0')+':'+REPLACE(STR([PageLife_S]%60,2),SPACE(1),'0') [PageLife]
,ple.[PageLife_S]
,dp.[DatabasePages] [BufferPool_Pages]
,CONVERT(DECIMAL(15,3),dp.[DatabasePages]*0.0078125) [BufferPool_MiB]
,CONVERT(DECIMAL(15,3),dp.[DatabasePages]*0.0078125/[PageLife_S]) [BufferPool_MiB_S]
FROM
(
SELECT [instance_name] [node],[cntr_value] [PageLife_S] FROM sys.dm_os_performance_counters
WHERE [counter_name] = 'Page life expectancy'
) ple
INNER JOIN
(
SELECT [instance_name] [node],[cntr_value] [DatabasePages] FROM sys.dm_os_performance_counters
WHERE [counter_name] = 'Database pages'
) dp ON ple.[node] = dp.[node]
Regards
IgorMi
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 1:52 pm
here is the result from the query, How should I interpret it? Thanks.
NodePageLifePageLife_SBufferPool_PagesBufferPool_MiBBufferPool_MiB_S
12:08:19436995359046 41867.547 0.958
000 13:30:31486311318060 10297.344 0.212
001 12:42:02457221296655 10130.117 0.222
002 9:53:55356351443304 11275.813 0.316
003 13:12:14475341301027 10164.273 0.214
November 19, 2013 at 2:03 pm
Grace09 (11/19/2013)
here is the result from the query, How should I interpret it? Thanks.NodePageLifePageLife_SBufferPool_PagesBufferPool_MiBBufferPool_MiB_S
12:08:19436995359046 41867.547 0.958
000 13:30:31486311318060 10297.344 0.212
001 12:42:02457221296655 10130.117 0.222
002 9:53:55356351443304 11275.813 0.316
003 13:12:14475341301027 10164.273 0.214
PLE is just one of the many performance counters. Having PLE in 9-13 hours is just a perfect situation. With this results you don't have a memory pressure.
Regards,
IgorMi
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 2:16 pm
Are you just curious how your system is performing? Taking a baseline? Or is an issue you are dealing with and need help with? If you are having some performance issues please describe them and someone should be able to help you get the metrics you need.
November 19, 2013 at 2:21 pm
Thank you, IgorMi. Since PLE is just one of performance counters. Do I need to look at other performance counter to determine the memory issue? Or as long as PLE is in good number, that's good enough? I was reading somewhere to use sys.dm_os_ring_buffers to determine the memory pressure. I don't quite understand the result from querying sys.dm_os_ring_buffers table, which make me curious. Sorry if I ask some 'silly' questions. I am kind of new to the sql server performance troubleshooting. Thanks!
IgorMi (11/19/2013)
Grace09 (11/19/2013)
here is the result from the query, How should I interpret it? Thanks.NodePageLifePageLife_SBufferPool_PagesBufferPool_MiBBufferPool_MiB_S
12:08:19436995359046 41867.547 0.958
000 13:30:31486311318060 10297.344 0.212
001 12:42:02457221296655 10130.117 0.222
002 9:53:55356351443304 11275.813 0.316
003 13:12:14475341301027 10164.273 0.214
PLE is just one of the many performance counters. Having PLE in 9-13 hours is just a perfect situation. With this results you don't have a memory pressure.
Regards,
IgorMi
November 19, 2013 at 2:23 pm
This is a clustered server. There are lots of databases on the server. Every once a while they ask me to add some databases up there in order to save some cost, which make me worried about the memory and IO performance. Check the CPU from task manager, cpu utilization seems to be fine.
Keith Tate (11/19/2013)
Are you just curious how your system is performing? Taking a baseline? Or is an issue you are dealing with and need help with? If you are having some performance issues please describe them and someone should be able to help you get the metrics you need.
November 19, 2013 at 2:27 pm
Grace09 (11/19/2013)
You can use this link http://blogs.msdn.com/b/mvpawardprogram/archive/2012/06/04/using-sys-dm-os-ring-buffers-to-diagnose-memory-issues-in-sql-server.aspx
As you can see you can only see some info that you can see at other places on your system as well. However it's a useful dynamic view.
Thank you, IgorMi. I was reading somewhere to use sys.dm_os_ring_buffers to determine the memory pressure. I don't quite understand the result from querying sys.dm_os_ring_buffers table, which make me curious.
IgorMi (11/19/2013)
Grace09 (11/19/2013)
here is the result from the query, How should I interpret it? Thanks.NodePageLifePageLife_SBufferPool_PagesBufferPool_MiBBufferPool_MiB_S
12:08:19436995359046 41867.547 0.958
000 13:30:31486311318060 10297.344 0.212
001 12:42:02457221296655 10130.117 0.222
002 9:53:55356351443304 11275.813 0.316
003 13:12:14475341301027 10164.273 0.214
PLE is just one of the many performance counters. Having PLE in 9-13 hours is just a perfect situation. With this results you don't have a memory pressure.
Regards,
IgorMi
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 2:36 pm
This performance counters poster is still pretty excellent.
http://www.quest.com/backstage/images/promotions/SQLServer-Perfmonance-Poster.pdf
You can additionally use the OS performance monitor (perfmon.exe) to obtain the counters' values and make a comparison, in order to conclude how good is behaving your system.
Grace09 (11/19/2013)
This is a clustered server. There are a lots of databases on the server. Every once a while they ask me to add some databases up there in order to save some cost, which make me worried about the memory and IO performance. Check the CPU from task manager, cpu utilization seems to be fine.Keith Tate (11/19/2013)
Are you just curious how your system is performing? Taking a baseline? Or is an issue you are dealing with and need help with? If you are having some performance issues please describe them and someone should be able to help you get the metrics you need.
Igor Micev,My blog: www.igormicev.com
November 19, 2013 at 2:36 pm
November 19, 2013 at 2:41 pm
Sounds like you need a baseline of the server and compare it after you add a new database. I would recommend you use Glenn Berry's DMV scripts to create that baseline:
http://sqlserverperformance.wordpress.com/tag/dmv-queries/
Also, if you want to create a system to capture the results check out Ted Krueger's blog post on that:
http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/sql-server-baseline-collection
Glenn does an excellent job on giving you the metrics you need and describing what you should look for. If you have any specific questions please ask the forum.
Viewing 15 posts - 1 through 14 (of 14 total)
You must be logged in to reply to this topic. Login to reply