我有一个 Windows VPS(Windows 2008 R2 x64),运行几个 WordPress 博客和其他一些 ASP.NET 东西。VPS 运行 2 个 CPU(例如)。
使用 ASP.NET,在这种情况下,我通常将应用程序池设置为使用一个 CPU/核心,并将 SQL Server 设置为使用另一个(只需在服务器属性中更改它)。
在 MySQL 中,我可以告诉它使用哪个 CPU/核心吗?
答案1
因为这确实困扰了我,所以我做了一些额外的挖掘。你实际上可以使用 powershell (!) 设置亲和力,它应该适用于网络版本
创建一个简单的脚本 affinity.ps1
$proc = GET-PROCESS mysqld
$proc.ProcessorAffinity = 0x9
该数字 (0x9) 是十六进制的,取决于您的核心。每个核心都有对应的十进制值 2^(n-1),其中 n 是核心编号。
因此,如果您要将 mysql 分配给核心 1 和 4,则添加相应核心的值 (1+8) 并转换为十六进制。如果您想要核心 7 和 8,则值将是 (64+128),即 0xC0 或两者之间的任何排列。
然后只需安排上述脚本在启动时执行。