XFS: possível impasse de alocação de memória em kmem_alloc

2

Estou realizando uma análise de dados que envolve carregar uma grande matriz de dados de ~ 112 GB em um arquivo mapeado na memória usando a linguagem de programação R , especificamente o pacote bigmemory (consulte link ). A matriz tem 80664 colunas e 356751 linhas.

O armazenamento de dados consiste em um sistema de arquivos XFS montado pelo NFS.

As opções de montagem do XFS são:

xfs noatime,nodiratime,logbufs=8,logbsize=256k,largeio,inode64,swalloc,allocsize=131072k

O NFS está exportando o FS usando as seguintes opções:

rw,async,no_subtree_check,no_root_squash

O cliente do NFS está montando o FS usando estas opções:

defaults,async,_netdev

Após algum tempo no carregamento do arquivo, o nó de cálculo não responde (incluindo outros nós no cluster) e os logs do servidor de arquivos relatam os seguintes erros:

XFS: possible memory allocation deadlock in kmem_alloc (mode:0x250)

O que posso resolver descartando o cache da seguinte maneira:

echo 3 > /proc/sys/vm/drop_caches

O servidor de arquivos tem 16 GB de memória.

Eu já li o seguinte blog:

link

No entanto, o problema não se deve à fragmentação, pois a fragmentação relatada está abaixo de 2% para o sistema de arquivos para o qual estou escrevendo.

Portanto, devido ao erro XFS acima, presumo que o servidor de arquivos está ficando sem memória, já que não pode manipular o número de pedidos de E / S emitidos pela tarefa em questão.

Além de perder o cache periodicamente (por exemplo, via cron ), há uma solução mais permanente para isso?

Agradecemos antecipadamente pela ajuda.

Edit: CentOS 7.2 no cliente e servidor.

Editar # 2: Kernel 3.10.0-229.14.1.el7.x86_64 no cliente e servidor.

    
por Vince 16.10.2017 / 21:14

2 respostas

1

Acredito que a revisão atual do CentOS 7 tenha o kernel 3.10.0-693.2.2.el7 e novas ferramentas de espaço do usuário XFS. Existe qualquer motivo você não está em um SO mais atual? As versões que você especificou datam de 2015.

    
por 17.10.2017 / 02:09
1

Está relacionado à fragmentação de memória e à fragmentação do sistema de arquivos, veja link

Você deve verificar a fragmentação do seu sistema de arquivos com xfs_db -r -c 'frag' <filesystem>' . Não mantê-lo muito cheio (80% ou menos) e executar xfs_fsr por um tempo também deve ajudar.

    
por 12.03.2018 / 11:45

Tags