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 man
e comando mandb
. Este mandb
comando 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, é mandb
executado o tempo todo nesse nó? (Não tenho esse problema em outros nós do cluster da minha instituição, de acordo com top
outros nós.) Por que mandb
precisaria 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
?
Respostas:
Não é normal
mandb
executar continuamente. É comum executarmandb
uma 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
mandb
programa ou que haja uma falha de hardware que estejamandb
travando.Você pode assistir os scripts cron em
/etc/crontab
ou/etc/cron.*/*
(o local exato depende da distribuição;/etc/cron.daily/man-db
e/etc/cron.weekly/man-db
são locais prováveis). Você pode ver o que foi chamadomandb
olhando mais de perto o processo: executepstree | less
e procure omandb
processo. A execuçãops 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
mandb
processo com segurança (use o comandosudo pkill mandb
ousu -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 chamoumandb
e com quais argumentos).fonte
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
fonte
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:
e nunca execute mandb com
--create
ou 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:
que desativará o cron-man-db (executado diariamente) e o gatilho dpkg (executado quando os pacotes são instalados).
fonte