在启用超线程的情况下,我们有一个跨两个NUMAs的带有8个CPUS的服务器。目前Maxdop设置为8,但实际上应该按照本文的Maxdop部分设置为4:
https://support.microsoft.com/en-us/kb/322385
所以我们需要把它改为4。
然而,我的问题是,将maxdop设置为8会产生什么影响?所以平行地穿过两个努马?我之所以问这个问题,是因为我们遇到了一个奇怪的问题,在这个问题上,查询返回速度非常慢,PLE迅速下降。
即使没有什么是针对SQL运行的,PLE也没有得到改进。CXPACKET等待类型增加。然后,突然之间,CXPACKET等待类型完全下降,PLE开始上升,现在已经恢复正常。
在整个过程中,对数据库执行小的查询,但是并不是一个查询完成后导致CXPACKET等待类型下降,而PLE再次上升--我们不知道是什么原因造成的。
可能的解释是MAXDOP设置不正确。
有人能向我解释跨NUMA节点并行执行的影响吗?当使用外部内存时,这是否等同于耗尽工作线程和更慢的访问时间?
谢谢
发布于 2015-06-03 15:17:10
SQL SERVER 2005 SP3
您最好的选择首先是将其升级到支持的SP - 先下载SP4,然后下载CU3 -> Build NO: 9.00.5266。对SQL server 2005的支持将于明年(2016/04/12)结束,甚至对最新的SP和CU也是如此--因此更好地升级到2012/2014年度。
您可以使用我的脚本帮助您建议一个好的MAXDOP值。
有人能向我解释跨NUMA节点并行执行的影响吗?当使用外部内存时,这是否等同于耗尽工作线程和更慢的访问时间?
SQL server是努马意识。这意味着SQL server知道处理器所在的NUMA节点以及内存所在的NUMA节点。因此,SQL server将为要访问的数据在正确的NUMA节点上分配工作线程。
请参阅:
下面是一些查询将帮助您了解NUMA节点之间是否存在调度程序的不平衡. --这可能会导致负载下的显著性能问题:
SELECT
parent_node_id,
scheduler_id,
[cpu_id],
is_idle,
current_tasks_count,
runnable_tasks_count,
active_workers_count,
load_factor
FROM sys.dm_os_schedulers
WHERE [status] = N'VISIBLE ONLINE';
--- check the current tasks, runnable tasks, active workers and avg load factor COUNT ...
SELECT
parent_node_id,
SUM(current_tasks_count) AS current_tasks_count,
SUM(runnable_tasks_count) AS runnable_tasks_count,
SUM(active_workers_count) AS active_workers_count,
AVG(load_factor) AS avg_load_factor
FROM sys.dm_os_schedulers
WHERE [status] = N'VISIBLE ONLINE'
GROUP BY parent_node_id;您应该将SQL Server:Buffer Node和SQL Server, Memory Node监视为反对仅仅是锁相环 --监视单个Buffer Node:Page life expectancy计数器(每个NUMA节点将有一个缓冲区节点性能对象)。
排气工人螺纹
如果将MAXDOP设置设置为默认值(为0),则可以使用导致工人线饥饿。
https://dba.stackexchange.com/questions/103162
复制相似问题