Como gerenciar afinidades de núcleos de processos para CPU?

4

Eu uso um sistema de arquivos de espaço de usuário distribuído (GlusterFS) e gostaria de ter certeza de que os processos do GlusterFS sempre terão o poder computacional de que precisam.

Cada nó de execução da minha grade tem 2 CPUs, com 4 núcleos por CPU e 2 threads por núcleo (16 "processadores" são vistos pelo Linux).

Meu objetivo é garantir que os processos do GlusterFS tenham poder de processamento suficiente para serem confiáveis, ágeis e rápidos. (Não há marketing aqui, apenas os sonhos de um sysadmin; -)

Eu considero dois pontos principais:

  • Processos GlusterFS
  • E / S para acesso a dados (em discos locais ou em discos remotos)

Pensei em ligar as instâncias do GlusterFS em um "processador" específico.

Eu gostaria de ter certeza de que:

  • Nenhum trabalho de grade afetará o kernel e as instâncias do GlusterFS
  • Trabalhos de pesquisadores não serão afetados por processos do sistema (gostaria de reservar um pool de núcleos para execução de tarefas e ter certeza de que nenhum processo do sistema usará essas CPUs)

Mas e quanto a E / S? Como lidamos com uma enorme quantidade de dados (vários terabytes), teremos muitas interupções.

Como posso distribuir essas operações em meus processadores? Quais são as "melhores práticas"?

Obrigado pelos seus comentários!

    
por Philippe 23.03.2010 / 19:37

2 respostas

1

Fixar um espaço de usuário em um processador específico às vezes pode fazê-lo funcionar de maneira mais consistente; mas não o kernel. (verifique taskset )

se fosse possível, você estaria transformando o switch de menu userspace / kernel (já um fator mensurável em um desempenho do sistema operacional) em um problema de comunicação / sincronização entre processadores. Muitas ordens de magnitude pior.

editar: agora que você removeu a ideia de 'fixar o kernel', é muito mais razoável. Sim, você pode usar o taskset para iniciar todos os processos da grade e deixar uma ou duas CPUs livres para o GlusterFS. Para um exemplo análogo, em sistemas Xen é considerado uma 'melhor prática' reservar uma CPU para o Dom0, que lida com todas as E / S.

    
por 23.03.2010 / 22:43
1

É por isso que não quero usar sistemas de arquivos FUSE em produção ... Estou usando o PVFS2.

    
por 31.03.2010 / 17:17