4.4. Melhorias do NUMA no Red Hat Enterprise Linux 6

O Red Hat Enterprise Linux 6 inclui uma série de melhorias para aproveitar todo o potencial de hardware altamente escalável de hoje. Esta seção dá uma visão geral de alto nível das mais importantes melhorias de desempenho relacionados ao NUMA, fornecidos pela Red Hat Enterprise Linux 6.

4.4.1. Bare-metal e Otimizações de Escalabilidade

4.4.1.1. Melhorias no aviso sobre a topologia

As seguintes melhorias permitem que o Red Hat Enterprise Linux detecte hardware de baixo nível e detalhes de arquiteturas, aprimorando sua habilidade para otimizar automaticamente o processamento em seu sistema.
detecção de topologia aprimorada
Isto permite que o sistema operacional detecte os detalhes do hardware de baixo nível (tais como CPUs lógicas, threads hiper, núcleos, sockets, nós de NUMA e tempos de acesso entre nós) durante a inicialização, e otimizar o processamento em seu sistema.
agendador totalmente justo
Este novo modo de agendamento assegura que o tempo de execução seja compartilhado entre os processos elegíveis. Combinado a isto, a detecção da topologia permite os processos serem agendados nas CPUs dentro do mesmo soquete para evitar a necessidade por acesso de memória remota cara, e assegurar que o conteúdo do cache está preservado onde for possível.
malloc
malloc agora é otimizado para assegurar que as regiões da memória que estão alocadas a um processo estejam o mais próximas fisicamente o possível do núcleo no qual o processo está sendo executado. Isto aumenta a velocidade do acesso de memória.
Alocação de buffer de E/S do skbuff
Da mesma forma que o malloc, isto agora otimiza o uso de memória que esteja fisicamente próxima da CPU manuseando as operações de E/S como interrupções de dispositivo.
afinidade de interruptção de dispositivo
Informações gravadas pelos drivers de dispositivo sobre o qual a CPU manuseia quais interrupções podem ser usadas para restringir manuseio de interrupção em CPUs dentro do mesmo soquete físico, preservando afinidade de cache e limitando comunicação de soquete cruzado de alto volume.

4.4.1.2. Melhorias em Sincronização de Multi-processador

Coordenar as tarefas entre processadores múltiplos requer operações de consomem tempo frequentes para garantir que os processos que estão executando em paralelo não comprometam a integridade de dados. O Red Hat Enterprise Linux inclui as seguintes melhorias para aprimorar desempenho nesta área:
Bloqueios de Read-Copy-Update (RCU)
Geralmente, 90% dos bloqueios são adquiridos somente para leitura. O bloqueio de RCU remove a necessidade de obter bloqueio de acesso exclusivo quando os dados que estiverem sendo acessados não sejam sendo modificados. Este modo de bloqueio é agora usado em alocação de memória de cache de página: bloqueio é agora usado somente para operações de alocação e desalocação.
algorítimos per-CPU e per-socket
Muitos algoritmos foram atualizados para realizar a coordenação de bloqueio entre CPUs cooperando na mesma soquete para permitir mais bloqueio refinado. Diversos spinlocks globais foram substituídos por métodos de bloqueio per-socket e zonas de alocador de memória atualizadas e listas de páginas de memórias relacionadas permietem alocação lógica para atravessar um subconjunto mais eficiente das estruturas de dados de mapeamento de memória ao executar operações de alocação ou desalocação.