Ubuntu Linux'ta mandb'nin sürekli çalışması (normalde arka planda) normal midir?


12

Kurumumdaki bir Ubuntu Linux düğümüne erişimim var. Düğümler grup arasında paylaşılır, ancak genellikle bu düğümü kullanan tek kişi benim.

Bu düğümdeki 8 CPU'nun hepsinde paralel bir hesaplama yapıyorum. Hesaplamam çalışıyor, ancak etkin işlemleri kullanarak görüntülediğimde, topkullanıcı manve komut yazan ek bir işlem görüyorum mandb. Bu mandbkomut her baktığımda çalışıyor gibi görünüyor ve göre topoldukça dikkate değer miktarda CPU gücü ( 6 %CPU) ve bellek ( 2.5 %MEM) alıyor gibi görünüyor top.

İnternette etrafıma baktığımda şöyle görünüyor:

mandb genellikle insan tarafından tutulan dizin veritabanı önbelleklerini başlatmak veya el ile güncellemek için kullanılır.

Öyleyse neden mandbbu düğümde sürekli çalışıyor? (Bu sorunu, diğer düğümlere göre kurumumun kümesindeki topdiğer düğümlerde görmüyorum.) Şu anda el kitaplarına bakmadığım için neden mandbsürekli çalışmam gerekiyor ?

Bu işlemin kullanarak güvenle sonlandırabileceğim bir hayalet süreç olması muhtemel killmi?


@ derobert Ben sysadmin değilim. Tamam, ona soracağım. Teşekkürler.
Andrew

Yanıtlar:


10

mandbSürekli koşmak normal değil . Yüklü kılavuz sayfalarının bir dizinini güncellemek ve biçimlendirilmiş kılavuz sayfalarının önbelleğini oluşturmak veya kırpmak gibi bakım görevlerini gerçekleştirmek için mandbbir cron işinde günde bir kez çalıştırmak tipiktir . Günlük iş birkaç saniye içinde, belki de çok sayıda adam sayfanız ve yavaş bir diskiniz varsa birkaç dakika içinde çalışmalıdır. İş bundan daha uzun sürerse, yanlış bir şey var.

% 6 CPU yüksek değil, ancak işlem disk G / Ç yapıyor olabilir. Bir küme düğümündeki belleğin% 2,5'i yüksek geliyor. İşin yanlış yapılandırılması ve nerede olmaması gerektiğine bakması ya da mandbprogramda bir hata olması ya da mandbsıkışmasına neden olan bir donanım arızası olması muhtemeldir .

Cron betiklerini /etc/crontabveya içinde izleyebilirsiniz /etc/cron.*/*(tam konum dağıtıma bağlıdır /etc/cron.daily/man-dbve /etc/cron.weekly/man-dbolası konumlardır). Neyin çağrıldığını mandb, sürece daha yakından bakarak görebilirsiniz : işlemi çalıştırın pstree | lessve arayın mandb. Çalışırken ps ww 12345(burada 12345, sorunlu işlemin PID'sidir) tüm komut satırını gösterecektir.

Bu, kendi başınıza teşhis edebileceğiniz, ancak kök izinleri olmadan düzeltemeyeceğiniz bir şeydir. Kök izinleriniz varsa, mandbişlemi güvenli bir şekilde öldürebilirsiniz (komutu kullanın sudo pkill mandbveya su -c 'pkill mandb'nasıl kök olduğunuza bağlı olarak). Her durumda, sistem yöneticinize başvurun ve belirtileri açıklayın. Mümkün olan tüm bilgileri verin (hangi programın çağrıldığı mandbve hangi argümanlarla).


2

Cron betiklerini kontrol ettim, sadece insan indekslerini güncellemek, kılavuzları aramayı hızlandırmak, günlük çalışır, güvenli bir şekilde öldürebilirsiniz.

Hoşuna gitmiyor, sadece devre dışı bırak chmod -x /etc/cron.daily/man-db


2

Bu bir Heisenbug ve muhtemelen mandb'ın son sürümlerinde düzeltilmiş olanı. Kırılmış manpajlar, dosya sistemi geçiş sırası ve mandbın artımlı yeniden inşasıyla çok yavaş tam yeniden inşasına dönüşüyor (15 milyon sayfa arızası vb.

Sorun gidermek istiyorsanız, çalıştırın:

sudo mandb --no-purge --debug

ve asla mandb'ı olsun --createya da olmasın --no-purge. Ardından en son sürüme sahip olduğunuzdan emin olun ve cjwatson'un görebileceği bir hata bildirin.

Öte yandan, sadece sorundan kurtulmak istiyorsanız, çalıştırın:

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

man-db cronjob (günlük çalışır) ve dpkg tetikleyiciyi (paketler yüklendiğinde çalışır) devre dışı bırakır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.