Set of new features in SQL Server 2005 enabled by SQLOS
Couple of weeks ago I had a chance to visit set of our customers and talk to them directly. It was an unforgettable experience. As a part of the visit I made set of presentations related to SQLOS and new features it enables in SQL Server 2005. I thought that some of you might be interested to take a look at the presentation so below is presentation's outline. Let me know if you have any questions.
What is New?
- Dynamic affinity
- Load balancing
- Dynamic memory settings
- Native NUMA support
- SoftNUMA support
- Application partitionning
- Memory Broker
- Common caching framework
- DAC
- Diagnostics
Dynamic Affinity
- Changes set of CPUs SQL Server is allowed to use
- Use “sp_configure affinitymask*” to change SQL Server’s affinity. No longer requires SQL Server reboot
- Enables great consolidation story for SQL Server and other applications on the same machine
- Enables dynamic reconfiguration during failover
- Before: SQL Server has to be rebooted for affinity changes to take effect
Load Balancing
- Distributes requests amongst schedulers
- Connections are no longer bounded to specific CPU, scheduler
- Homogeneous CPU load – doesn’t overload given CPU when using hard affinity and hence improves performance both response time or throughput
- Before: Connection were bound to a given Scheduler/CPU when opened
Dynamic memory settings
- Controls amount of physical memory SQL Server can use
- Use sp_configure max server memory or min server memory. No longer requires SQL Server restart for changes to take affect
- Enables great consolidation story for SQL Server and other applications on the same machine
- Provides dynamic reconfiguration during failover
- Before: SQL Server had to be rebooted for memory changes to take effect when using AWE or locked pages in memory
Native NUMA Support
- Mimics hardware configuration
- Automatically enables NUMA support on real NUMA hardware
- Provides great scalability and performance on high end hardware
- Enables application partitioning for better scalability, configuration and maintenance
- Acts as perfect consolidation story along with dynamic affinity and memory settings
- Before: Very restricted support for NUMA, only enabled with a specific trace flag
SoftNUMA Support
- Activates custom NUMA configuration on top of any hardware
- Registry settings control SoftNUMA configuration
- Provides greater performance, scalability, and manageability on SMP as well as on real NUMA hardware
- Before: No SoftNUMA support
Application Partitioning
- Provides resource partitioning of such resources as CPU and memory across different application for single SQL Server instance
- Achieved by leveraging either NUMA or SoftNUMA configuration along with other new SQL Server features
- Enables predicted resource distributions amongst different application
- Enables soft application isolation with better performance characteristics rather than multi instance
- Before: Limited application partitioning support – only with VIA
- Memory Broker
- Provides dynamic memory distribution amongst large internal memory consumers such as Buffer Pool, Optimizer, Query Execution and Caches
- Enabled automatically
- Tunes memory usage by each memory consumer according to a specific load
- Before: No dynamic memory redistribution
Common Caching Framework
- All caches share single common caching frame work
- Enabled automatically
- Provides finer grain caching control
- All caches play together
- Size of a single cache is restricted
- New command dbcc freesystemcache
- Single, common, response to different types of memory pressure
- Before: Only database cache and procedure cache were sharing caching framework
Dedicated Admin Connection (DAC)
- Provides access to overloaded server
- DAC resources are allocated during SQL Server startup
- Great to control runaway queries that consume all resources
- Can be used to run diagnostic queries
- Considered to be a last resort to connect to unhealthy server
- Caution: Don’t run complex queries
- Before: No DAC suported might result in SQL Server restart
Diagnostics
- Enables rich diagnostic and understanding of resource distribution/consumption by different components inside of SQL Server
- Exposed through OS performance monitor and set of dynamic management views, DMVs
- Enables DBA and Microsoft support engineers to resolve
- Memory problems
- High CPU utilization
- High contention points
- I/O subsystem bottlenecks
- Before: Performance monitor only
Comments
- Anonymous
April 12, 2006
Начиная с версии SQL 7.0 появилось такое понятие как SQL OS. Государство в госуд - Anonymous
May 04, 2006
"Provides resource partitioning of such resources as CPU and memory across different application for single SQL Server instance"
Hi, cool article. I am starting to do some testing with SQL Server 2005, but where do I configure this feature?
Thanks, - Anonymous
July 12, 2006
La stratégie :
SQL Server 2005 Update
from Paul Flessner (6/04/2006)
Les versions et combien ca... - Anonymous
August 19, 2006
I am not sure why we see comments in Russian here, but to answer Oleg's questions, SQL OS term is coined to reflect how SQL Server interacts with the OS - all the direct calls into the Base OS APIs - memory management, I/O management, thread scheduling and synchronization.