acelerar o processo para usar mais cpu para script php

0

Estou executando um script php que faz algumas operações no banco de dados em loops while e notei (rodando top ) que ele usa cerca de 45% de cpu. Eu gostaria de definir para usar como 70-80% ou 90%. Eu tentei renunciar o processo de php assim que é definido como max PR 39 e NT 19, mas não mudou muito. Ele ainda usa cerca de 50% da CPU. Existe alguma maneira de acelerar o script php (processo) para usar mais CPU?

EDITAR:

Eu reescrevi meu script php para que o cálculo e a E / S sejam separados agora. Com base nessas 3 respostas dadas e nas observações do roteiro, cheguei a estas 3 conclusões:

  1. Prioridades de processo - não acho que em um caso como esse é útil para manipular com ele. Novos computadores são multi-core assim sempre haverá algum poder de CPU sobrando.
  2. E / S - isso sempre atrasará um script. Quando eu me separei cálculos de I / O (como envio de consultas) notei que, cálculo chegou a 100% do uso da CPU e mysql (no meu caso) foi cerca de 5% de uso da CPU. Então, quando eu corrigi isso, como a consulta foi enviada apenas uma vez com uma matriz de IDs, meu script precisou de duas vezes menos tempo para terminar antes.
  3. Script único encadeado - terá 100% de um núcleo. eu percebi isso 1 processo de php assume um núcleo de cpu. Nada a ver com isso, então como while loop usaria dois ou mais núcleos (mas isso é para troca de pilha diferente).
por felixRo 10.05.2017 / 13:20

2 respostas

1

Seu script pode ser de thread único e, portanto, não é capaz de utilizar mais de 50% de sua CPU, supondo que você execute uma configuração de dualcore.

    
por user687597 10.05.2017 / 15:38
0

Se o desempenho geral for aceitável, o baixo uso de CPU observado do processo de php não é motivo de preocupação. O uso da CPU pode ser baixo por vários motivos:

  • O banco de dados pode estar preso em cálculos pesados e o script php geralmente precisa esperar que o banco de dados responda.

  • O banco de dados pode estar aguardando a E / S e o script php geralmente precisa aguardar a resposta do banco de dados.

  • O script php pode estar esperando na E / S.

  • O script php pode estar causando muita atividade de troca.

Para melhorar o desempenho, você pode tentar ajustar seu sistema de E / S, movendo o banco de dados para a memória principal, usando discos giratórios mais rápidos, usando unidades de estado sólido (SSD), adicionando mais memória principal (para cache) e ajustando os parâmetros do banco de dados ( consulte o manual de administração do seu banco de dados).

    
por Joachim Wagner 10.05.2017 / 15:30