Mam dostęp do węzła Ubuntu Linux w mojej instytucji. Węzły są wspólne dla grupy, ale zazwyczaj jestem jedyną osobą, która korzysta z tego konkretnego węzła.
Przeprowadzam obliczenia równolegle na wszystkich 8 procesorach w tym węźle. Moje obliczenia są uruchamiane, ale kiedy przeglądam aktywne procesy za pomocą top
, widzę dodatkowy proces, który mówi użytkownika man
i polecenia mandb
. To mandb
polecenie wydaje się być uruchamiane za każdym razem, gdy na niego patrzę top
, i wydaje się, że zajmuje dość znaczną ilość mocy procesora ( 6 %CPU
) i pamięci ( 2.5 %MEM
), zgodnie z top
.
Kiedy rozglądam się po Internecie, wydaje się, że:
mandb
służy do inicjalizacji lub ręcznej aktualizacji indeksów baz danych, które zwykle są obsługiwane przez man.
Dlaczego więc mandb
cały czas działa w tym węźle? (Nie mam tego problemu na innych węzłach w klastrze mojej instytucji, zgodnie z top
innymi węzłami). Po co miałbym mandb
cały czas działać, skoro nie przeglądam obecnie instrukcji?
Czy ten proces jest prawdopodobnie procesem fantomowym, którego mogę bezpiecznie zakończyć kill
?
Odpowiedzi:
mandb
Ciągłe działanie nie jest normalne . Typowe jest uruchamianiemandb
raz dziennie w zadaniu cron , aby wykonać zadanie konserwacyjne, takie jak aktualizacja indeksu zainstalowanych stron podręcznika man oraz zbudowanie lub przycięcie bufora sformatowanych stron podręcznika. Codzienna praca powinna trwać za kilka sekund, a może kilka minut, jeśli masz dużo stron podręcznika i powolny dysk. Jeśli zadanie trwa dłużej, oznacza to, że coś jest nie tak.6% procesora nie jest wysokie, ale proces może wykonywać operacje we / wy dysku. 2,5% pamięci w węźle klastra brzmi wysoko. Jest prawdopodobne, że zadanie jest źle skonfigurowane i wygląda tam, gdzie nie powinno być, albo że w programie jest błąd
mandb
, lub że awaria sprzętu powodujemandb
zablokowanie.Możesz oglądać skrypty cron w
/etc/crontab
lub/etc/cron.*/*
(dokładna lokalizacja zależy od dystrybucji;/etc/cron.daily/man-db
i/etc/cron.weekly/man-db
prawdopodobnie są to lokalizacje). Możesz zobaczyć, co zostało wywołanemandb
, przyglądając się procesowi bliżej: uruchompstree | less
i wyszukajmandb
proces. Uruchomienieps ww 12345
(gdzie 12345 jest PID procesu naruszającego prawo) spowoduje wyświetlenie pełnego wiersza poleceń.Jest to coś, co możesz zdiagnozować samodzielnie, ale którego nie naprawisz bez uprawnień roota. Jeśli masz uprawnienia roota, możesz bezpiecznie zabić
mandb
proces (użyj poleceniasudo pkill mandb
lubsu -c 'pkill mandb'
, w zależności od tego, jak się rootujesz). W każdym razie skontaktuj się z administratorem systemu i wyjaśnij objawy. Podaj wszystkie informacje, jakie możesz (np. Jaki program został wywołanymandb
i jakie argumenty).źródło
Sprawdziłem skrypty crona, było to tylko polecenie aktualizacji indeksów człowieka, przyspieszenie wyszukiwania instrukcji, codzienne uruchamianie, możesz je bezpiecznie zabić.
Nie podoba ci się, po prostu wyłącz
chmod -x /etc/cron.daily/man-db
źródło
To jest Heisenbug i prawdopodobnie ten, który został naprawiony w najnowszych wersjach mandb. Ma to związek ze zepsutymi stronami, kolejnością przechodzenia przez system plików i przyrostowymi przebudowaniami mandy, zmieniającymi się w bardzo powolne pełne przebudowy (około 15 milionów błędów stron, a to zajmuje kilka minut na wirowanie rdzy).
Jeśli chcesz go rozwiązać, uruchom:
i nigdy nie uruchamiaj mandb z
--create
ani bez--no-purge
. Następnie upewnij się, że masz najnowszą wersję i zgłoś błąd, w którym cjwatson może to zobaczyć.Jeśli natomiast chcesz pozbyć się problemu, uruchom:
co wyłączy man-db cronjob (działa codziennie) i wyzwalacz dpkg (działa, gdy pakiety są zainstalowane).
źródło