O Windows 7 está estrangulando minha CPU?


1

Espero que alguém com mais experiência no Windows 7 possa me ajudar. Eu escrevi um script php que utiliza o curl_multi para fazer alguns spidering. Este script é executado em uma instalação do WAMP. Eu originalmente tinha esse script em execução em uma máquina com Windows XP, mas decidi criar um computador mais rápido para que eu pudesse utilizar mais threads. (A máquina antiga era bastante lenta e maximizava o uso da CPU rapidamente).

Eu montei uma caixa do Windows 7 com um núcleo de 6 núcleos AMD 1090T, 16GB de memória RAM e uma unidade SSD. A nova máquina é rápida e meu script estava correndo exponencialmente mais rápido. Consegui discar o número de threads que eu estava usando e obter o uso da CPU até cerca de 90% em todos os núcleos.

Após cerca de uma hora de execução, o uso da CPU caiu para cerca de 16% (de vez em quando aumenta em até 50%) e o script começou a rodar muito mais devagar.

Eu passei os últimos 2 dias pesquisando na internet por uma resposta. Eu tentei desativar meu firewall, alterando os modos de economia de energia no BIOS, alterando as configurações de gerenciamento de energia no Windows 7, editando as configurações de limitação no registro. Em algum lugar estou faltando alguma coisa. O uso da CPU está sendo acelerado? Os encadeamentos criados por esse script estão sendo limitados? Como correu bem para essa primeira hora?

Antes de desinstalar o Windows e ir com o Ubuntu, espero que alguém tenha uma resposta.


Qual é o uso percentual de CPU neste momento (quando seu script está usando apenas 16%)?
soandos

16% é o uso da CPU, desculpe se isso não ficou claro no meu post.
Chris

Você já tentou executar o script PHP fora do WAMP?
kobaltz

4
~ 16% é de ~ 100% / 6 Núcleos, o que seria de carga total para um único aplicativo encadeado. (Apenas espalhe pelos 6 núcleos ou não). A primeira coisa que gostaria de fazer é executar o 6X prime (cpu testing) da mesma forma e ver se ele está com carga total. Se isso não ocorrer, os threads param. Eu não vejo nada que confirme que os threads estavam todos ainda em execução, e soa mais como um único thread de trabalho duro (16), e outras coisas (50)
Psycogeek

1
O Windows faz algumas coisas estranhas. Eu acredito que ele tenta determinar se uma dada aplicação é "em primeiro plano" ou "background", e que a determinação é "pegajosa". Tente, por exemplo, entrar em SystemProperties / Advanced / Performance Settings / Advanced e clicar no botão "best performance of background services".
Daniel R Hicks
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.