超线程与 SQL Server 和 PostgreSQL

超线程与 SQL Server 和 PostgreSQL

我读到过,对于数据库来说,超线程是“性能杀手”。然而,我读到的内容并没有说明哪个CPU。此外,它主要表明 I/O“性能下降至 10% 以下”。

从逻辑上讲,这毫无意义,因为 I/O 主要由控制器和磁盘而非 CPU 决定。但没人说 bug 是有意义的。

我读到的内容还指出 SQL Server可以将两个并行查询操作放在 1 个逻辑核心(2 个线程)上,从而降低性能。我很难相信 SQL Server 的架构师会犯下如此明显的错误计算。

是否有人有关于当前一代 CPU 上的超线程如何影响我提到的 RDBMS 的数据?

答案1

我读到的文章还指出,SQL Server 可以将两个并行查询操作放在 1 个逻辑核心(2 个线程)上,从而降低性能。我很难相信 SQL Server 的架构师会犯下如此明显的错误计算。

这不是 SQL Server 的问题。超线程虚拟核心看起来与操作系统的真实核心完全相同 - 甚至 BIOS 也是如此。您可以将进程绑定到处理器,但调度程序根本不知道处理器的哪个核心是真实的,哪个是超线程......尤其是因为两者在技术上都是真实的,只是共享某些资源。超线程是由英特尔开发的,通过在两个核心之间共享某些资产,可以实现“比真实处理器更便宜的双核处理器”,但代价是程序对此一无所知。

较新的 Intel CPU 在硬件方面表现更好,因此超线程不再被视为当前 SQL Server 的瓶颈 - 运行在当前的 Intel 芯片上。这主要是因为 Intel 改进了超线程。

http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv-R2.mspx是当前的 2008 R2 调校指南。

http://ozamora.com/2010/09/sql-server-2008-r2-and-nehalem-processors/与 Nehalem 和 SQL Server 有一些关系。

相关内容