Sign In
Microsoft SQL Server Development Customer Advisory Team
Translate This Page
Translate this page
Powered by
Microsoft® Translator
Common Tasks
Blog Home
Email Blog Author
About
OK
RSS for comments
RSS for posts
Atom
Search Form
Advanced search options...
Search In:
Everything
Blogs
Forums
People
Groups
Places
Pages
Date range:
All Time
Last Year
Last 6 Months
Last 3 Months
Last Month
Last Week
Last Two Days
Tag Cloud
Access SQL Server
analysis services
BI
Concurrency
Data Warehouse
Development & Programming
ETL
Manageability & Serviceability
Migration and Transition
Performance and Scalability
PowerPivot
Query performance
Recommended Links
Reliability and Availability
Resource Utilization
sql
SQL Analysis Service
SQL Azure
SQL Server
SQL Server 2008
SQL Server 2008 R2
SQL Server Best Practices
SQL Server Reporting Services
SSIS
UDF
Monthly Archives
Archives
December 2011
(1)
November 2011
(3)
October 2011
(2)
September 2011
(1)
August 2011
(2)
June 2011
(2)
May 2011
(2)
April 2011
(2)
March 2011
(4)
February 2011
(5)
January 2011
(1)
December 2010
(1)
October 2010
(2)
September 2010
(1)
August 2010
(1)
July 2010
(1)
June 2010
(2)
May 2010
(3)
April 2010
(3)
March 2010
(4)
February 2010
(1)
December 2009
(3)
November 2009
(2)
October 2009
(1)
September 2009
(1)
August 2009
(2)
July 2009
(1)
May 2009
(2)
April 2009
(3)
March 2009
(4)
February 2009
(4)
December 2008
(1)
November 2008
(2)
October 2008
(6)
September 2008
(3)
August 2008
(1)
July 2008
(2)
June 2008
(1)
April 2008
(2)
March 2008
(1)
February 2008
(4)
January 2008
(7)
December 2007
(2)
October 2007
(3)
September 2007
(5)
August 2007
(1)
July 2007
(2)
June 2007
(5)
May 2007
(1)
April 2007
(1)
March 2007
(1)
February 2007
(1)
December 2006
(2)
October 2006
(1)
June 2006
(1)
May 2006
(1)
April 2006
(1)
March 2006
(3)
February 2006
(3)
December 2005
(2)
November 2005
(3)
October 2005
(2)
September 2005
(3)
August 2005
(2)
MSDN Blogs
>
Microsoft SQL Server Development Customer Advisory Team
thomasda
Comments
shaunbed
29 Aug 2005 10:45 AM
Awesome.. I love SQL Server and can't wait to here from you guys.
Shaun Bedingfield
blogsb.blogspot.com
shaunbed@swbell.net
Darryl Dreiling
7 Sep 2005 1:14 PM
Tom,
Very interesting and timely in our case! We are right now looking at CPU utilization in our organization and this is sure helpful. One question though, I know it’s hard to give specifics, but in orders of magnitude how much is a significant percentage? Is 80% too high, 50%...more than 30%?
Thanks for the insight!
Darryl
marksou
7 Sep 2005 10:42 PM
Hello Darryl,
It is difficult to say what CPU utilization is the right number. For example if you are running an active/active cluster then you definitely want to run less than 45% CPU so when you fail over you have no problem handling the workload. A better thing to do is to use CPU pressure as a guide as Tom Davidson states above. Also you should look at what I call good CPU vs bad CPU. CPU is either user time(good) or privledge time(also known to some as kernal time). User time is the CPU is doing actual work like sorting, etc. Privledge time is CPU wait time. You could be waiting on IO completion, context switching or some other activity outside of user time.
So, look at user time and look at CPU pressure as a better guide. Also , don't run at 100% :)
Darryl Dreiling
8 Sep 2005 12:39 PM
Mark,
Thanks for the update and the additional information. I will definitely use this for additional analysis. However, my original comment was misleading, my bad. What I was actually talking about was CPU Pressure, not CPU utilization. Tom writes in his post “if Signal Waits are a significant percentage of total waits” then you may be experiencing CPU Pressure. This is great information, but I am not sure what “significant” means with respect to Signal Waits and Total waits. For example, monitoring my SQL Server with DBCC SQLPERF (WAITSTATS), I see that 31% of my total waits are Signal Waits. How do I tell if that is significant for my system?
Thanks again guys!
Darryl
Stuart Ozer
12 Sep 2005 5:34 PM
Darryl --
The percentage of the total wait time is not very helpful in decising whether signal wait is significant. To asses that, compare total signal wait time to total processing time available per cpu in the interval.
You will need to look at the total signal wait time on the system during a specific sample period of time (say, 1 minute or 5 minutes). If you see Signal Wait Time total 100% of the sample time (say, 60,000 msec during a 60-second sample), that tells you that you could fill up an additional CPU with work. If it is 200% then you could probably put 2 additional CPUs to work. Under 10% is probably below the radar.
Stuart
thomasda
15 Sep 2005 3:58 PM
Hi Darryl,
Signal waits represent the time everyone waits for CPU and are thus unavoidable to some extent in a high concurrency system.
When you compare signal to total wait time this just establishes how much of your total is completely dependent on CPU availability as opposed to other resources.
The best questions you must ask when looking at cpu waits are:
1. How much cpu latency is acceptable? Say your signal waits are 30% for a given INTERVAL of time. Is it acceptable to have performance variations that AVERAGE 30% based on CPU? What about the interval? If you measure the busiest 15 minute interval, you may have high signal waits. But if you measure over a longer period say 2 hours, you may have a much lower average.
2. Is the total ms or percentage significant?
For example, 50% looks like a high percentage but if the number of milliseconds is very small to start with, you discount the significance of it.
The old sanity test still applies as to whether the percentage is significant or not. It is an interesting question but absolute numbers are hard to make because you have to factor in significance & the time interval.
Regards,
Tom Davidson
Scott Cadillac
12 Oct 2005 9:39 AM
What is a SAN? Or a LUN or HBA for that matter?
At least spell out the acronym once somewhere in the article. Or was this a coded message not intended for public consumption?
Sorry, I couldn't help it :-)
Ira Pfeifer
13 Oct 2005 11:53 AM
Glad to see you're going to be writing about SANs and SQL. I've got a question for you in this area:
I've heard that multiple logical drives are better than one when holding everything else constant because Windows will maintain separate queues for each. Example: 3x 10-disk LUNs, striped metaLUN or metaLUNs across all 30. Is it better to have a single large stripe that produces one logical drive, or 3 smaller ones?
I can see the advantage of separate queues, but will it produce a significant difference in IOs? Alternately, can it be more efficient to have a single queue that can be better optimized by write-reordering?
My testing so far has been inconclusive, so I'd like to get your take on the relative performance of single vs. multiple drives. Thanks - hope to read more SAN columns in this blog!
Bob
13 Oct 2005 1:15 PM
salt prevents dictionary attacks (they can't precompute hashes for all possible salt values), right?
so as long as I use a different salt value for each SSN, why would I need to hide the salt?
Stuart Ozer MSFT
14 Oct 2005 6:18 PM
Bob -- If you used a **different** salt for each SSN, somewhere you would need to keep track of the salt values associated with each SSN. Otherwise, any new incoming 'transaction' data that you want to store for the SSN could not be associated with the hashed SSN. That list of salt values could be vulnerable to discovery and would allow the same kind of attack as discovering the single salt.
premm
17 Oct 2005 3:21 PM
Hello Scott: Fair comments. We wrongly assumed that readers would know the abbreviations. Here they are: SAN - Storage Area Network, LUN - Logical Unit Number, HBA - Host Bus Adapter.
premm
17 Oct 2005 3:28 PM
Ira: You raise an interesting question. We plan on addressing this topic in a future Blog. Meanwhile, there are some operations in SQL Server where having multiple logical devices (either through mount volumes or LUNs) can result is better performance under some conditions. Generally, the impact is small.
plafromboise
17 Nov 2005 12:20 PM
Did I miss Deploying SQL Server 2005 with SAN #2?
Ray Metz
17 Nov 2005 7:31 PM
Please post a link to #1 and #2.
mcrowley
18 Nov 2005 10:24 AM
For SQL 2000, would the above script be:
[code]
create table #tempwaits
(type varchar(40),
requests int,
waittime numeric(19,3),
signalwaittime numeric(19,3))
dbcc sqlperf (waitstats, clear)
go
waitfor delay '000:01:00'
insert into #tempwaits
exec ('dbcc sqlperf (waitstats)')
select sum(signalwaittime) as "Signal Wait Time",
100.0 * (sum(signalwaittime)/sum(waittime)) as "%cpu waits",
sum(waittime - signalwaittime) as "Resource Wait Time",
100.0 * (sum(waittime - signalwaittime)/sum(waittime)) as "% Resource Waits"
from #tempwaits
[/code]
Page 1 of 31 (453 items)
1
2
3
4
5
»