Como você faz bom uso de CPUs multicore em seus aplicativos PHP / MySQL?

Eu mantenho um aplicativo personalizado do tipo CMS.

Sempre que um documento é enviado, várias tarefas são executadas que podem ser agrupadas aproximadamente nas seguintes categorias:

Consultas MySQL.Análise de conteúdo HTML.Atualização do índice de pesquisa.

A categoria 1 inclui atualizações para várias tabelas MySQL relacionadas ao conteúdo de um documento.

A categoria 2 inclui a análise do conteúdo HTML armazenado nos campos MySQL LONGTEXT para executar algumas transformações automáticas de tags de âncora. Suspeito que uma grande quantidade de tempo de computação seja gasta nessa tarefa.

A categoria 3 inclui atualizações para um simples índice de pesquisa baseado em MySQL, usando apenas alguns campos correspondentes ao documento.

Todas essas tarefas precisam ser concluídas para que o envio do documento seja considerado completo.

A máquina que hospeda esse aplicativo possui processadores Xeon quad-core duplos (um total de 8 núcleos). No entanto, sempre que um documento é enviado, todo o código PHP executado é restrito a um único processo em execução em um dos núcleos.

Minha pergunta:

Quais esquemas, se houver, você usou para dividir a carga de processamento de aplicativos da web PHP / MySQL entre vários núcleos de CPU? Minha solução ideal basicamente geraria alguns processos, permitiria que eles fossem executados paralelamente em vários núcleos e depois bloqueados até que todos os processos sejam concluídos.

Pergunta relacionada:

Qual é a sua ferramenta de perfil de desempenho PHP favorita?

questionAnswers(5)

yourAnswerToTheQuestion