sql-server-2008 – 为什么在我们的8-cpu SQL Server盒子上CPU使
我注意到运行SQL Server 2008的8-CPU数据库服务器上的CPU使用率根本没有平衡.
以下是一段时间内随机日的1天平均值,这是典型且持续不对称的: 9,15,10,21,18,14,9 (此处只有缩略图,因为图片非常高,但点击查看完整尺寸的图片) 与我们的4-CPU网络服务器相比,这些服务器几乎完全平衡且完美平衡,令我感到奇怪. 现在,这是一个专用服务器,因此唯一运行的是SQL Server 2008(以及我们大量使用的内置全文索引),所以我不确定为什么CPU使用会如此不对称.思考? 解决方法你的文件/文件组是如何设置的?我会剽窃myself: 还有一个关于IO的想法:我们小心地将我们最常用的表格设置在文件组中,其中包含多个文件.其中一个性能增强是SQL会将请求连接到文件组中的每个文件 – 因此,如果BigOverUsedTable位于FileGroup1上,而FileGroup1中有四个文件而您的数据库有8个内核,那么它??实际上将使用四个内核来执行“选择”从BigOverUsedTable大数字处理令人讨厌的查询“ – 否则,它只会使用一个CPU.我们从这篇MSDN文章中得到了这个想法: http://msdn.microsoft.com/en-us/library/ms944351.aspx 来自TFA: “文件组使用并行线程来改善数据访问.当按顺序访问表时,系统会为每个文件并行创建一个单独的线程.当系统对包含四个文件的文件组中的表执行表扫描时,它使用四个单独的文件并行读取数据的线程.通常,在不同的磁盘上使用多个文件可以提高性能.文件组中的文件太多会导致并行线程太多并造成瓶颈.“ 由于这个建议,我们在8核机器上的文件组中有四个文件.它运作良好. 编辑:现在有另一个(可能)更好的答案.图表是按比例缩小的 – 如果你仔细观察,每个处理器实际上大约20%加载,因为uzbones指出. 编辑:我们实际上可以说使用多个文件文件组有帮助,因为我们没有将所有表放在包含四个文件的文件组中. “单个文件”文件组上的大查询仅使用一个CPU,但是对四个文件文件组中的表的查询命中4个CPU. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |