Eu tenho um AMD FX-6200 (3.8GHz, seis núcleos) e gostaria de otimizá-lo desta maneira:
- Core 1: usado somente pelos principais processos do Windows, por exemplo explorer.exe, svchost.exe, rundll32.exe, etc.
- Core 2: usado somente por processos secundários do Windows que geralmente serão iniciados / interrompidos, por exemplo, cmd.exe / powershell.exe, taskmgr.exe / procexp.exe e assim por diante.
- Core 3: usado apenas por aplicativos de usuários com muita CPU que não são otimizados para vários núcleos.
- Core 4: usado por aplicativos do usuário. (padrão)
- Core 5: usado por aplicativos do usuário. (padrão)
- Core 6: usado por aplicativos do usuário. (padrão)
Uma das razões pelas quais eu quero fazer isso é que o Windows geralmente distribui a carga da CPU uniformemente em todos os processadores, mas quando você executa um processo single-thread pesado da CPU, ela é executada significativamente mais lenta do que simplesmente porque 20% o núcleo em que ele é executado já está ocupado por outros processos, e o Windows parece incapaz de mover esses processos para outros núcleos em tempo de execução de maneira eficaz.
Eu sei como definir a afinidade do processador no Process Explorer, mas a) isso não é permanente, b) você não pode definir valores padrão para processos desconhecidos, ec) realmente não é uma opção para a miríade de Processos em segundo plano do Windows. Estou basicamente procurando uma solução em que o sistema operacional use automaticamente os aplicativos core 1 e de usuário por padrão use os núcleos 4/5/6, sendo possível especificar antecipadamente que determinados processos sejam movidos para os núcleos 2, respectivamente, 3. É algo assim possível?
Estou executando o Windows Server 2008 R2 Datacenter de 64 bits, mas é o kernel do Windows 7, portanto também podem ser aplicadas soluções para o Windows 7.
Edit: Existe uma ferramenta da Microsoft chamada IIS que é descrita como um servidor web, mas parece ter recursos relacionados à configuração da afinidade do processador. para conjuntos de aplicativos. Alguém tem experiência com este IIS e pode me dizer se (e como) ele pode ser usado para os meus propósitos?