Configurar o número máximo de threads de processador de trabalho para o Serviço de Fila do Project Server

 

Tópico modificado em: 2015-02-27

O serviço de Fila do Microsoft Office Project Server 2007 permite que você configure o número máximo de threads de processamento para cada tipo de fila.

A página Configurações da Fila nas opções de configuração de servidor do Project Web Access possui uma configuração Número Máximo de Threads de Processamento de Trabalhos, cujo valor padrão é quatro (para cada tipo de fila). Há vários pontos a serem considerados durante o ajuste desses valores. A presença excessiva de threads de processamento de trabalho pode prejudicar o desempenho do servidor de aplicativos e resultar em erros de tempo limite e de exceção de memória. Por exemplo, um administrador pode tentar elevar o número máximo de threads de processamento de trabalho de quatro para 10 no quadro de horários e nas filas do projeto, para atender a um aumento esperado de envios de informações do quadro de horários e de atualizações do projeto em um período próximo ao final do mês. Sem uma análise cuidadosa, tal aumento pode prejudicar o desempenho do sistema.

A fila foi projetada para limitar a taxa na qual o trabalho é processado, distribuindo esse trabalho para que o servidor não fique sobrecarregado nos intervalos de pico. Em termos de gerenciamento de projeto, isso é o “nivelamento” do servidor, que o impede de tentar executar muitas tarefas de uma só vez.

Multithreading de filas

Filas com multithreading são capazes de:

  • Processar tarefas rapidamente.

  • Evitar uma interrupção completa do processamento de trabalhos quando um trabalho encontrar um problema.

As tabelas apresentadas a seguir descrevem a ordem pela qual a fila processaria as tarefas em uma fila de thread único e em uma fila com multithreading. Neste exemplo, três projetos foram salvos e publicados na seguinte sequência:

  1. O Projeto 1 foi salvo e publicado.

  2. O Projeto 2 foi salvo e publicado.

  3. O Projeto 3 foi salvo.

  4. O Projeto 2 foi aberto, editado, salvo e novamente publicado.

A tabela a seguir descreve o modo pelo qual a fila tentaria processar os trabalhos em uma ambiente de thread único. As colunas T1 a T9 indicam os segmentos de tempo. Todas as operações seriam concluídas ao final do nono segmento de tempo. Observe que o primeiro trabalho de publicação do Projeto 2 foi ignorado para otimização do processo, em função da fila detectar a ocorrência posterior de um trabalho idêntico de publicação do Projeto 2. Além disso, os trabalhos de criação de relatórios do Projeto 1 e Projeto 2 são de baixa prioridade, permitindo que sejam processados posteriormente.

Thread T1 T2 T3 T4 T5 T6 T7 T8 T9

Thread 1

Projeto1: salvar

Projeto 1: publicar

Projeto2: salvar

Projeto 2: publicar (ignorado)

Projeto3: salvar

Projeto2: salvar

Projeto 2: publicar

Projeto 1: criar relatório

Projeto 2: criar relatório

A tabela a seguir descreve o modo pelo qual a fila tentaria processar os trabalhos em um ambiente com multithreading (neste exemplo, três threads). Seria necessário mais que a metade do tempo para tentar processar as mesmas operações do exemplo acima citado. Observe como este ambiente permite trabalhos correlacionados (por exemplo, todos os trabalhos relacionados ao Projeto 1 salvo e publicado) para que todos sejam processados no mesmo thread. Se um trabalho falhar na correlação, ele pode impedir o processamento de outros trabalhos na mesma correlação, embora sem afetar os trabalhos dos outros threads.

Thread T1 T2 T3 T4 T5 T6 T7 T8 T9

Thread 1

Projeto 1: salvar

Projeto 1: publicar

Projeto1: salvar

Projeto 1: criar relatório

Thread 2

Projeto2: salvar

Projeto2: salvar

Projeto 2: publicar

Projeto 2: criar relatório

Thread 3

Projeto3: salvar

Configurações recomendadas

Como ponto de partida, recomendamos que você ajuste o número máximo de configurações de threads de processamento com base no número de processadores (ou núcleos) disponíveis. Por exemplo, se o servidor de aplicativos do Project Server empregar um único processador de dois núcleos, a configuração de dois threads por fila já será um bom início. Se o seu servidor de aplicativos utilizar quatro processadores de dois núcleos, talvez você possa usar oito threads por fila. Você pode definir essas configurações de acordo com base não apenas no volume de transações, mas também no tamanho médio das transações (por exemplo, a publicação de projetos de 10 linhas versus projetos de 1000 linhas).

Você deverá levar em conta também a topologia do farm e outros aplicativos que estiverem em execução no farm. Por exemplo, ajuste as configurações de modo correspondente se o seu servidor de aplicativos também estiver funcionando como um servidor Web front-end, ou executando pesquisas e outras tarefas que exijam uma atividade intensa do processador. Além disso, você pode monitorar os contadores de desempenho, logs de aplicativos e logs de ULS para guiá-lo no processo de ajuste fino da fila para trabalhar com suas cargas normais do servidor.