Usando o Gerenciador de Tarefas com mais de 64 processadores lógicos

Ryan Haveson, gerente de programas de grupo na equipe de experiência do usuário, quis atualizar as pessoas quanto a alguns progressos no Gerenciador de Tarefas desde o Windows Developer Preview. Nesta postagem, você lerá sobre as ferramentas atualizadas do Gerenciador de Tarefas para gerenciar sistemas com um grande número de processadores lógicos. Essa escalabilidade vai muito além dos PCs desktop e foi criada para servidor e data center. Um grande aspecto do desenvolvimento do Windows é que ele poderá ser usado em uma ampla variedade de fatores forma e arquiteturas de CPU.

Observação sobre os comentários: por favor, mantenham o nível dos comentários segundo as normas da comunidade. Lembrem-se de que não há moderação além da proteção automática contra spams. –Steven Sinofsky

Falamos sobre o novo Gerenciador de Tarefas em uma das postagens anteriores e muitos de vocês instalaram o Developer Preview e puderam observar por conta própria. Esse tópico despertou algum interesse e decidimos reservar um tempinho para compartilhar rapidamente com vocês um recurso que surgiu nas nossas compilações diárias e que vocês poderão ver no futuro, na versão Beta.

As imagens abaixo são relacionadas a um recurso sobre o qual administradores de servidor e pessoas com acesso a grandes configurações de PCs e uma enorme quantidade de processadores lógicos sempre nos perguntam. Algo importante a ser observado agora é que estamos falando aqui sobre processadores lógicos, portanto, se tiver um sistema com capacidade de hyper-threading, você verá vários processadores lógicos para cada processador físico.

Aqueles que têm acesso a um desses sistemas com vários processadores sabem que os gráficos de CPU do gerenciador de tarefas do Windows 7 têm algumas limitações:

  • Não há comparações em tempo real: Quando se olha vários processadores lógicos no gráfico de uma CPU, o que é interessante são as irregularidades. Em escala, é bastante difícil comparar os gráficos de linhas em movimento referentes a um período de 60 segundos de utilização da CPU para entender o que está acontecendo.
  • Gráficos muito pequenos: Quando há mais de 64 processadores lógicos, os gráficos se tornam muito pequenos. Se você estiver tentando descobrir quais processadores estão sendo muito usados, é necessário forçar os olhos para enxergar. Com mais de 256 processadores lógicos, se torna quase impossível enxergar os gráficos.
  • Localizando a ID do processador: se você identificar um gráfico irregular, não há uma maneira fácil de se obter a ID do processador correspondente.

Veja abaixo a guia de desempenho da CPU no Gerenciador de Tarefas do Windows 7 em um sistema com 160 processadores lógicos.

A tabela Histórico do Uso de CPU contém 160 células muito pequenas, cada uma mostrando um gráfico de uso com linhas em movimentos.
Figura 1: Antigo Gerenciador de Tarefas mostrando 160 processadores lógicos

Como você pode ver, é realmente difícil comparar as células na tabela Histórico do Uso de CPU entre si. É difícil ler os gráficos e quase impossível comparar a utilização instantânea da CPU porque cada célula mostra um gráfico em movimento em um período de 60 segundos. Além disso, todos os gráficos na tabela Histórico do Uso de CPU parecem idênticos, portanto, não é possível encontrar a ID do processador de um gráfico específico. Na nossa postagem anterior sobre o Gerenciador de Tarefas, discutimos os benefícios do uso de um mapa de calor como visualização para informar e comparar grandes volumes de dados numéricos. Quando procurávamos criar gráficos para a "exibição de vários núcleos" do novo painel de desempenho, achamos que um mapa de calor cairia como uma luva.

Nas capturas de tela abaixo, tiradas de uma versão atual do Windows 8, é fácil ver todos os processadores lógicos rapidamente e ver quais estão com nível mais alto e mais baixo de uso da capacidade.

(Observação: as capturas de tela abaixo mostram o Gerenciador de Tarefas em um sistema com 160 processadores lógicos e uma carga de trabalho simulada.

A guia Desempenho tem 7 exibições: CPU, Memória, Disco 0, Disco 4, Disco 8, Ethernet e Ethernet. Na exibição da CPU, a tabela dos processadores lógicos se encontra na forma de um mapa de calor, com uso percentual indicado em cada célula com um número e cor correspondente.
Figura 2: Novo Gerenciador de Tarefas mostrando 160 processadores lógicos

No gráfico da nova CPU, você também pode saber qual é a ID do processador lógico que mapeia cada entrada por meio de uma dica de ferramenta, que é exibida ao se passar o mouse sobre a entrada.

Dica de ferramenta referente a uma entrada com 100% de uso exibe "CPU 0 (Nó 5)"
Figura 3: Dica de ferramenta mostrando a ID do processador lógico

Uma enorme vantagem de um mapa de calor é que ele funciona muito bem com grandes conjuntos de dados. O novo Gerenciador de Tarefas mostrará o número de processadores lógicos a que o sistema operacional dá suporte (até 640!). Para que você sempre veja as informações com um tamanho adequado, quando o conjunto de dados aumentar muito em relação à janela, o mapa de calor será ajustado e uma barra de rolagem será exibida conforme necessário.

O mapa de calor ainda continua fácil de ser lido, mostrando 13 linhas e 9 colunas de dados, com uma barra de rolagem que permite ver células adicionais abaixo das 13 primeiras linhas
Figura 4: Com 160 processadores lógicos, o gráfico da CPU é expandido com o uso de uma barra de rolagem

Para aqueles que realmente gostam de gerenciar cada pequeno detalhe do sistema, é possível até mesmo definir qual(is) processador(es) lógico(s) cada um dos seus processos pode usar. Para fazer isso, primeiro é preciso saber qual é a ID do núcleo lógico. Para tanto, basta passar o mouse sobre as células do mapa de calor, ir para a guia Detalhes, clicar com o botão direito do mouse no processo que você deseja e clicar em "Definir Afinidade".

O usuário clicou em "iexplore.exe" na guia Detalhes do Gerenciador de Tarefas, que revela o menu de contexto com comandos para: Abrir local do arquivo, Finalizar processo, Finalizar árvore de processos, Depurar, Virtualização do UAC, Criar arquivo de despejo, Definir prioridade, Definir Afinidade (selecionado), Analisar cadeia de espera, Pesquisar online, Propriedades e Ir para serviço(s).
Figura 5: Definição da afinidade do processo na guia Detalhes

Caixa de diálogo com o texto: "Quais processadores têm permissão para executar o "iexplore.exe"? Há uma lista suspensa para Grupo do processador definida como "Grupo 0". Abaixo disso, há um conjunto de caixas de seleção para CPU 0 (Nó 0), CPU 1 (Nó 0), CPU 2 (Nó 0) etc. e os botões OK/Cancelar.
Figura 6: Seleção dos processadores lógicos para o processo

É claro que o recurso de definição de afinidade de processador se destina somente aos usuários técnicos muito avançados que precisam ou desejam ter esse nível de controle. Você pode afetar seriamente o desempenho e o gerenciamento de energia do seu sistema se não souber o que estiver fazendo, portanto, desejamos garantir que o sistema operacional realizasse um ótimo trabalho, cuidando disso para você. É difícil fazer melhor do que os sofisticados algoritmos que o Windows usa para gerenciar automaticamente quais processos devem ser alocados para cada processador lógico com base na topologia e capacidade do hardware.

--Ryan Haveson