No Ubuntu Linux, é normal que o mandb seja executado continuamente (aparentemente em segundo plano)?

12

Eu tenho acesso a um nó do Ubuntu Linux na minha instituição. Os nós são compartilhados entre o grupo, mas geralmente sou a única pessoa que usa esse nó em particular.

Estou executando um cálculo em paralelo em todas as 8 CPUs neste nó. Meu cálculo é executado, mas quando visualizo os processos ativos usando top, vejo um processo adicional que diz usuário mane comando mandb. Este mandbcomando parece estar sendo executado toda vez que eu olho top, e parece consumir uma quantidade considerável de energia da CPU ( 6 %CPU) e memória ( 2.5 %MEM), de acordo com top.

Quando olho em volta na internet, parece que:

mandb é usado para inicializar ou atualizar manualmente os caches de banco de dados de índice que geralmente são mantidos pelo homem.

Por que, então, é mandbexecutado o tempo todo nesse nó? (Não tenho esse problema em outros nós do cluster da minha instituição, de acordo com topoutros nós.) Por que mandbprecisaria ser executado o tempo todo, pois atualmente não estou procurando manuais?

É provável que esse processo seja um processo fantasma que eu possa terminar usando com segurança kill?

Andrew
fonte
@derobert Eu não sou o administrador do sistema. Ok, eu vou perguntar a ele. Obrigado.
Andrew

Respostas:

10

Não é normal mandbexecutar continuamente. É comum executar mandbuma vez por dia em uma tarefa cron , para executar tarefas de manutenção, como atualizar um índice de páginas de manual instaladas e criar ou aparar um cache de páginas de manual formatadas. O trabalho diário deve ser executado em alguns segundos, talvez alguns minutos, se você tiver muitas páginas de manual e um disco lento. Se o trabalho for executado por mais tempo, haverá algo errado.

6% da CPU não está alta, mas o processo pode estar executando E / S de disco. 2,5% da memória em um nó do cluster parece alta. É provável que o trabalho esteja configurado incorretamente e esteja olhando para onde não deveria estar, ou que haja um erro no mandbprograma ou que haja uma falha de hardware que esteja mandbtravando.

Você pode assistir os scripts cron em /etc/crontabou /etc/cron.*/*(o local exato depende da distribuição; /etc/cron.daily/man-dbe /etc/cron.weekly/man-dbsão locais prováveis). Você pode ver o que foi chamado mandbolhando mais de perto o processo: execute pstree | lesse procure o mandbprocesso. A execução ps ww 12345(em que 12345 é o PID do processo incorreto) mostrará a linha de comando completa.

Isso é algo que você pode diagnosticar por conta própria, mas não corrige sem as permissões de root. Se você possui permissões de root, pode matar o mandbprocesso com segurança (use o comando sudo pkill mandbou su -c 'pkill mandb', dependendo de como se tornar root). De qualquer forma, entre em contato com o administrador do sistema e explique os sintomas. Forneça todas as informações possíveis (como qual programa chamou mandbe com quais argumentos).

Gilles 'SO- parar de ser mau'
fonte
2

Eu verifiquei os scripts cron, era apenas um comando para atualizar os índices do homem, acelerar a procura de manuais, executar diariamente, você pode matá-lo com segurança.

Você não gosta, apenas desative-o chmod -x /etc/cron.daily/man-db

margarida
fonte
2

Este é um Heisenbug, e possivelmente um que foi corrigido nas versões recentes do mandb. Tem a ver com páginas de manual quebradas, ordem de deslocamento do sistema de arquivos e reconstruções incrementais do mandb, transformando-se em reconstruções completas muito lentas (15 milhões de falhas de página, aproximadamente, o que leva minutos para oxidar).

Se você deseja solucionar o problema, execute:

sudo mandb --no-purge --debug

e nunca execute mandb com --createou sem --no-purge. Em seguida, verifique se você possui a versão mais recente e relate um erro em que o cjwatson pode vê-lo.

Se, por outro lado, você quiser apenas se livrar do problema, execute:

echo 'man-db man-db/auto-update boolean false' |sudo debconf-set-selections

que desativará o cron-man-db (executado diariamente) e o gatilho dpkg (executado quando os pacotes são instalados).

Tobu
fonte