Ubuntu Linux에서 mandb가 지속적으로 실행되는 것이 정상입니까 (백그라운드에서)?


12

기관의 Ubuntu Linux 노드에 액세스 할 수 있습니다. 노드는 그룹간에 공유되지만 일반적으로이 특정 노드를 사용하는 유일한 사람입니다.

이 노드의 8 개 CPU 모두에서 병렬로 계산을 실행하고 있습니다. 계산이 실행되지만을 사용하여 활성 프로세스를 볼 때 topuser man및 command 라는 추가 프로세스가 표시 mandb됩니다. 이 mandb명령은 내가 볼 때마다 실행되는 것으로 보이며에 top따르면 상당히 상당한 양의 CPU 전력 ( 6 %CPU)과 메모리 ( 2.5 %MEM) 를 차지하는 것으로 보입니다 top.

인터넷을 둘러 보면 다음과 같습니다.

mandb 일반적으로 man이 유지 관리하는 인덱스 데이터베이스 캐시를 초기화하거나 수동으로 업데이트하는 데 사용됩니다.

그러면 왜이 mandb노드에서 항상 실행됩니까? (다른 노드에 따르면 기관 클러스터 내의 다른 노드에서는이 문제가 없습니다 top.) 현재 매뉴얼을보고 있지 않기mandb 때문에 왜 항상 실행해야 합니까?

이 프로세스는 안전하게 사용하여 종료 할 수있는 팬텀 프로세스 일 가능성이 kill있습니까?


@derobert 저는 sysadmin이 아닙니다. 좋아, 내가 물어볼 게 감사.
앤드류

답변:


10

mandb연속적으로 실행되는 것은 정상이 아닙니다 . 설치된 매뉴얼 페이지의 색인 갱신 및 형식화 된 매뉴얼 페이지의 캐시 작성 또는 트리밍과 같은 유지 보수 태스크를 수행하기 위해 크론 작업 mandb에서 하루에 한 번 실행 하는 것이 일반적 입니다. 매뉴얼 페이지가 많고 디스크 속도가 느린 경우 몇 분, 아마도 몇 분 안에 매일 작업을 실행해야합니다. 작업이 그보다 오래 실행되면 문제가있는 것입니다.

6 % CPU가 높지 않지만 프로세스가 디스크 I / O를 수행하고있을 수 있습니다. 클러스터 노드에서 메모리의 2.5 %가 높게 들립니다. 작업이 잘못 구성되어 있어야 할 위치, mandb프로그램에 버그가 있거나 하드웨어 오류로 인해 문제가 발생 mandb했을 수 있습니다.

당신의 크론 스크립트를 볼 수 있습니다 /etc/crontab또는 /etc/cron.*/*(; 정확한 위치는 유통 의존 /etc/cron.daily/man-db하고 /etc/cron.weekly/man-db가능성이 위치입니다). mandb프로세스를보다 자세히 살펴보면 실행 한 프로세스를 확인할 수 있습니다 . 프로세스를 실행 pstree | less하고 검색하십시오 mandb. 실행 ps ww 12345(여기서 12345는 문제가되는 프로세스의 PID 임)은 완전한 명령 행을 보여줍니다.

이것은 스스로 진단 할 수 있지만 루트 권한 없이는 수정할 수없는 것입니다. 루트 권한이있는 경우 mandb프로세스를 안전하게 종료 할 수 있습니다 ( 루트 방식에 따라 sudo pkill mandb또는 명령 사용 su -c 'pkill mandb'). 어쨌든 시스템 관리자에게 문의하여 증상을 설명하십시오. 호출 한 프로그램 mandb및 인수와 같은 모든 정보를 제공하십시오 .


2

나는 cron 스크립트를 점검했다. 사람 색인을 업데이트하고 매뉴얼 검색 속도를 높이고 매일 실행하는 명령 일뿐이며 안전하게 죽일 수있다.

마음에 들지 않고 chmod -x /etc/cron.daily/man-db


2

이것은 Heisenbug이며, 최신 버전의 mandb에서 수정되었을 수 있습니다. 손상된 맨 페이지, 파일 시스템 순회 순서 및 mandb의 증분 재 구축이 매우 느린 전체 재 구축 (1,500 만 페이지 오류 등)으로 바뀌고 녹이 녹는 데 몇 분이 걸립니다.

문제를 해결하려면 다음을 실행하십시오.

sudo mandb --no-purge --debug

mandb를 사용 --create하거나 사용하지 않고 mandb를 실행하지 마십시오 --no-purge. 그런 다음 최신 버전인지 확인하고 cjwatson이 볼 수있는 버그를보고하십시오.

반면에 문제를 제거하려면 다음을 실행하십시오.

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

man-db cronjob (매일 실행) 및 dpkg 트리거 (패키지를 설치할 때 실행)를 비활성화합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.