Como posso usar páginas enormes e libhugetlbfs em uma instância do Debian EC2 PVM?

2

Na minha máquina local (i7 9200) rodando o Debian Wheezy amd64, eu posso obter algumas acelerações significativas em algumas coisas do tipo "big data" / HPC:

  • Siga as instruções aqui para reservar RAM para páginas enormes e configurar o hugetlbfs.
  • Executando meu aplicativo usando libhugetlbfs '(2.17) nifty HUGETLB_MORECORE=yes para redirecionar seus mallocs para páginas de 2M. / li>

O aplicativo também funciona razoavelmente bem no Debian Wheezy no EC2 (estou usando mais recente wheezy AMI ) com páginas normais de 4k (alguns testes de escalabilidade testados em instâncias c3.2xlarge, c3.4xlarge e c3.8xlarge). Mas estou curioso para ver também se vejo benefícios semelhantes usando páginas enormes no EC2, se for possível.

Ativei uma instância c3.3xlarge e configurei páginas enormes como de costume . E depois disso / proc / meminfo de fato reporta

HugePages_Total:    4096
HugePages_Free:     4095

No entanto, depois de compilar o libhugetlbfs, o make func de autoteste aciona alguns erros do kernel. O sistema logo depois parece travar, mas não antes de eu ter tempo de inspecionar o dmesg e ver um monte de pilhas de chamadas com vários símbolos xen_ e hugetlb_fault nelas. Depois de não responder, o sistema precisou de uma parada forçada do console da AWS para pará-lo.

Eu tentei inicializar novamente e apenas executar meu aplicativo com HUGETLB_MORECORE=yes de qualquer maneira (no caso de o teste make func estar quebrando em algo obscuro que eu realmente não precisei), mas a mesma coisa aconteceu novamente.

Quaisquer casos de sucesso com o libhugetlbfs no EC2 (de preferência com o Debian), ou receitas para que ele funcione corretamente ?

Pesquisa : há poucas informações sobre páginas enormes no EC2 (ou Xen) por aí. Eu encontrei this , que parece reportar o mesmo problema: / proc / meminfo relata as páginas de acesso disponíveis, mas tentando usá-las em pânico no kernel. O artigo é anterior às novas instâncias do c3, mas sugere que um cc2.8xlarge pode valer a pena devido ao uso do HVM em vez do PVM.

Atualização : não foi possível encontrar uma AMI do Debian atualizada para o HVM, mas tentei um Ubuntu (13.04 "raring") em um cc2.8xlarge e libhugetlbfs e HUGETLB_MORECORE=yes faz parece funcionar bem nisso. A única coisa é que, na verdade, atrasa meu aplicativo um pouco!

    
por timday 24.11.2013 / 17:53

0 respostas