Estou tentando seguir instruções da documentação do MongoDB para configurar o LTH corretamente para uma máquina executando MongoDB.

Uma das instruções consiste em criar um script que é executado na inicialização. Infelizmente, nem o script sugerido, nem o código semelhante reescrito como um serviço systemd funciona.

Ao depurar o problema, encontrei outro. Quando executo:

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

o comando parece ser executado com sucesso, mas o arquivo permanece inalterado, então se eu executar:

root@demo:/# cat /sys/kernel/mm/transparent_hugepage/enabled 

ele retorna o conteúdo original:

always madvise [never] 

Tentei modificar o arquivo com vim; ao tentar salvar o arquivo, ele reclama que o Fsync falhou . Embora este erro tenha sido documentado , no meu caso, há espaço em disco suficiente em / (20% usado , 7 GB disponíveis.)

Eu executo o comando no modo sudo e as permissões do arquivo parecem corretas:

-rw-r--r-- 1 root root 4096 ... 

O /sys o diretório não está montado no modo somente leitura , conforme mostrado por:

root@demo:/# grep sysfs /proc/mounts sysfs /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0 

O que está acontecendo aqui?

Resposta

sysfs, o sistema de arquivos geralmente montado em /sys, é um sistema de arquivos virtual especial para fazer interface com o kernel do Linux.

Os arquivos nele não estão” t arquivos reais, eles representam estruturas de dados no kernel e suportam apenas métodos de acesso bastante simples. A leitura desse arquivo pede informações ao kernel. Gravar nesse arquivo instrui o kernel a alterar uma configuração ou executar uma ação.

É por isso que vim falha. Ele tenta acessar os arquivos virtuais em formas otimizadas para arquivos reais e isso não é “suportado em sysfs.

Seu primeiro comando

root@demo:/# echo never > /sys/kernel/mm/transparent_hugepage/enabled 

já foi bem-sucedido!

Muitos “arquivos” sysfs, incluindo /sys/kernel/mm/transparent_hugepage/enabled, não imprimem apenas a configuração atual quando lidos, mas imprimem todos os possíveis modos e use colchetes para descrever qual dos vários modos está ativo.

No seu caso, never está entre colchetes, então o modo que você tentou ativar com echo já está ativo:

always madvise [never] 

Se você “estiver interessado em como sysfs funciona, você pode ler mais sobre isso na Wikipedia ou na documentação do kernel do Linux .

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *