gpt4 book ai didi

windows-xp - 如何在 Windows XP 中的可执行文件上设置处理器关联?

转载 作者:行者123 更新时间:2023-12-02 23:18:57 29 4
gpt4 key购买 nike

我有一个带有第三方应用程序的四核系统,偶尔会旋转多个进程(始终是相同的可执行文件,但有多个实例)并占用 100% 的 CPU 时间。我还在同一个机器上运行了几个 Web 服务(IIS 和第三方)。

所有核心都繁忙的问题是,它会使第三方 Web 服务器超时(IIS 工作正常,只是比平常慢)。我无法控制第三方网络服务器,它是更大产品的一部分,必须能够运行。因此,我尝试使用处理器亲和性(通过 SysInternals Process Explorer)并将这些讨厌的进程限制为 4 个核心中的 3 个,并将第 4 个核心专用于第三方 Web 服务器,它似乎工作得很好。

问题是它只在正在运行的进程上设置亲和性,而不是在可执行文件级别上设置亲和性,因此在这些进程完成并稍后重新生成为新进程后,一切又都一样了 - 它们占用全部 4 个核心。因此,我在 google 上搜索了 Microsoft 的这个 ImageCfg.exe 实用程序,但在 Microsoft 网站上找不到它可供下载,而且我看到有些人尝试过它,但现在提示它实际上不起作用。

有没有办法将亲和性与可执行文件保持联系?

最佳答案

http://waynes-world-it.blogspot.com/2009/06/processor-affinity-on-windows-server.html

PowerShell

使用 PowerShell 为一个或多个正在运行的进程设置处理器关联性。下面有一个示例脚本,将 calc.exe 的处理器掩码设置为前 4 个处理器。我喜欢这种方法,因为脚本很简单,很容易安排,可以在 x86 和 x64 上运行,支持同名的多个进程,至少部分是因为它突出了使用 PowerShell 进行管理是多么容易。

请注意,如果您在 calc.exe (n!) 中使用大量数字的阶乘,您将生成 100% CPU,这对于测试非常有用。下面的掩码是 0xf = 1111 – 该掩码仅允许使用前四个处理器:

$calcSet = Get-Process -ProcessName "calc"
foreach ($calc in $calcSet) {$calc.ProcessorAffinity=0xF}

关于windows-xp - 如何在 Windows XP 中的可执行文件上设置处理器关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/628057/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com