byc*_*kov 9 executable windows-xp processor affinity
我有一个带有第三方应用程序的四核系统,它偶尔会旋转几个进程(总是相同的可执行文件,但它有几个实例)并占用100%的CPU时间.我还在同一个盒子(IIS和第三方)上运行了几个Web服务.
所有内核繁忙的问题是它使第三方Web服务器超时(IIS工作正常,但比平时慢).我无法控制第三方Web服务器,它是更大产品的一部分,必须运行.因此,我尝试使用处理器亲和性(通过SysInternals Process Explorer)并将这些讨厌的进程限制为4个内核中的3个内核,并将第4个内核专用于第三方Web服务器,它似乎运行良好.
问题是它只对正在运行的进程设置了亲和力,而不是在可执行级别上设置亲和力,所以在这些进程完成后再重新生成为新进程时,它们再次相同 - 它们占用了所有4个核心.所以,我用Google搜索了这个来自Microsoft的ImageCfg.exe实用程序,但是我无法在Microsoft网站上找到它进行下载,我发现有些人尝试了它,现在抱怨它不能真正起作用.
有没有办法将亲和力粘贴到可执行文件上?
小智 6
http://waynes-world-it.blogspot.com/2009/06/processor-affinity-on-windows-server.html
电源外壳
使用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}
Run Code Online (Sandbox Code Playgroud)
您可能希望查看/AFFINITY参数start.
从帮助:
AFFINITY The new application will have the specified processor
affinity mask, expressed as a hexadecimal number.
Run Code Online (Sandbox Code Playgroud)
由于Windows上的处理器关联是一个位掩码,您可能需要进行一些实验,但我认为1它是第一个核心,因此7是前三个核心并且F全部是四个核心.或者8仅限第四个.
然后,您可以start使用适当的参数调用替换计划任务或快捷方式.
| 归档时间: |
|
| 查看次数: |
24504 次 |
| 最近记录: |