Dimensionamento Multicore dos IIS 8.0 em Hardware NUMA
por Robert McMurray
Compatibilidade
Versão | Observações |
---|---|
IIS 8.0 | O dimensionamento multicore no NUMA foi introduzido nos IIS 8.0. |
IIS 7.5 | Não havia suporte ao dimensionamento multicore no NUMA nos IIS 7.5. |
IIS 7.0 | Não havia suporte para dimensionamento multicore no NUMA nos IIS 7.0. |
Problema
De um modo geral, aumentar o número de núcleos deve resultar em um maior desempenho. No entanto, chega um ponto em que aumentar o número de núcleos pode resultar em degradação de desempenho porque o custo de sincronização de memória supera os benefícios no hardware NUMA com núcleos adicionais. Os IIS 8.0 resolvem esse problema realizando a distribuição e criando afinidade inteligente entre seus processos no hardware NUMA (Acesso à Memória Não Uniforme).
Solução
Os IIS (Serviços de Informações da Internet) no Windows Server 2012 tem reconhecimento de NUMA e fornece a configuração ideal para os administradores de TI. A seção a seguir descreve as diferentes opções de configuração para obter o melhor desempenho com os IIS 8.0 no hardware NUMA.
Os IIS dão suporte a duas maneiras a seguir de particionar a carga de trabalho:
- Executa vários processos de trabalho em um pool de aplicativos (ou seja, web garden): se você estiver usando esse modo, por padrão, o pool de aplicativos será configurado para executar um processo de trabalho. Para obter o desempenho máximo, você deve considerar a execução do mesmo número de processos de trabalho que há nós NUMA, de modo que haja afinidade individual entre os processos de trabalho e nós NUMA. Isso pode ser feito definindo a configuração de AppPoolsetting "Máximo de Processos de Trabalho" como 0. Nessa configuração, os IIS determinam quantos nós NUMA estão disponíveis no hardware e inicia o mesmo número de processos de trabalho.
- Executa vários pools de aplicativos em uma única carga de trabalho/site: nesta configuração, a carga de trabalho/site é dividida em vários pools de aplicativos. Por exemplo, o site pode conter vários aplicativos configurados para serem executados em pools de aplicativos separados. Efetivamente, essa configuração resulta na execução de vários processos de trabalho dos IIS para a carga de trabalho/site e os IIS fazem a distribuição e criam afinidade inteligente entre os processos para obter desempenho máximo.
Além disso, há duas maneiras diferentes de os IIS 8.0 identificarem o nó NUMA ideal quando o processo de trabalho dos IIS está prestes a ser iniciado.
- Memória Mais Disponível (padrão): a ideia por trás dessa abordagem é que o nó NUMA com a memória mais disponível é aquele mais adequado para assumir o processo de trabalho adicional dos IIS que está prestes a ser iniciado. Os IIS têm o conhecimento do consumo de memória por cada nó NUMA e usa essas informações para "balancear a carga" dos processos de trabalho dos IIS.
- Windows: Os IIS também têm a opção de permitir que o sistema operacional Windows tome essa decisão. O sistema operacional Windows usa round robin.
Por fim, há duas maneiras diferentes de criar afinidade entre os threads de um processo de trabalho dos IIS para um nó NUMA.
- Afinidade reversível (padrão): com a afinidade reversível, se outros nós NUMA tiverem os ciclos, os threads de um processo de trabalho dos IIS poderão ser agendados para nó NUMA sem afinidade. Essa abordagem ajuda a maximizar todos os recursos disponíveis no sistema como um todo.
- Afinidade fixa: com a afinidade fixa, independentemente de qual seja a carga em outros nós NUMA no sistema, todos os threads de um processo de trabalho dos IIS são atribuídos ao nó NUMA escolhido que foi selecionado para afinidade usando o design acima.
Instruções passo a passo
Pré-requisitos
- Os IIS estão instalados no Windows Server 2012.
- O modelo de processo dos IIS faz parte da configuração do pool de aplicativos dos IIS. Não há nenhum recurso específico dos IIS que precise ser instalado a partir do Gerenciador do Servidor.
Soluções alternativas para bugs conhecidos
No momento, não há bugs conhecidos neste recurso.
Etapas de configuração
- Abra o Gerenciador de IIS.
- Selecione Pools de Aplicativos na janela de navegação à esquerda:
- Selecione o Pool de Aplicativos:
- No painel Ações, selecione Configurações Avançadas:
- No grupo Modelo de Processo, localize a configuração Máximo de Processos de Trabalho.
- Defina o valor como 0.
A lógica de seleção NUMA ideal, bem como o tipo de afinidade, também são encontradas em Configurações Avançadas. No entanto, elas aparecerão somente se os IIS estiverem em execução no hardware NUMA.
Cenários
Execute testes de desempenho no hardware NUMA antes e depois da atualização para o Windows Server 2012. Compare os resultados de desempenho para ver as melhorias.
Resumo
Você explorou com êxito o dimensionamento multicore dos IIS para o recurso de hardware NUMA no Windows Server 2012.