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.
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:
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.
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.
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.