Di Ubuntu Linux, apakah normal untuk mandb berjalan terus menerus (tampaknya di latar belakang)?

12

Saya memiliki akses ke simpul Linux Ubuntu di institusi saya. Node dibagi di antara grup, tetapi biasanya saya adalah satu-satunya orang yang menggunakan node khusus ini.

Saya menjalankan perhitungan secara paralel pada semua 8 CPU pada node ini. Perhitungan saya berjalan, tetapi ketika saya melihat proses aktif menggunakan top, saya melihat proses tambahan yang mengatakan pengguna mandan perintah mandb. mandbPerintah ini tampaknya berjalan setiap kali saya melihat top, dan tampaknya mengambil jumlah daya CPU ( 6 %CPU) dan memori ( 2.5 %MEM) yang cukup besar, menurut top.

Ketika saya melihat-lihat di internet, sepertinya:

mandb digunakan untuk menginisialisasi atau secara manual memperbarui cache basis data indeks yang biasanya dikelola oleh manusia.

Mengapa, kemudian, apakah mandbberjalan sepanjang waktu pada simpul ini? (Saya tidak memiliki masalah ini pada node lain dalam cluster institusi saya, menurut toppada node lain.) Mengapa mandbperlu dijalankan sepanjang waktu, karena saya saat ini tidak melihat manual?

Apakah proses ini cenderung menjadi proses hantu yang saya dapat dengan aman mengakhiri menggunakan kill?

Andrew
sumber
@derobert saya bukan sysadmin. Ok, saya akan tanya dia. Terima kasih.
Andrew

Jawaban:

10

Itu tidak normal untuk mandbterus berjalan. Biasanya dijalankan mandbsekali sehari dalam pekerjaan cron , untuk melakukan tugas pemeliharaan seperti memperbarui indeks halaman manual yang diinstal dan membangun atau memangkas cache halaman manual yang diformat. Pekerjaan harian harus berjalan dalam beberapa detik, mungkin beberapa menit jika Anda memiliki banyak halaman manual dan disk yang lambat. Jika pekerjaan berjalan lebih lama dari itu, ada sesuatu yang salah.

6% CPU tidak tinggi, tetapi prosesnya mungkin melakukan disk I / O. 2,5% dari memori pada node cluster terdengar tinggi. Kemungkinan pekerjaan itu salah konfigurasi dan mencari di mana tidak seharusnya, atau ada bug dalam mandbprogram, atau ada kegagalan perangkat keras yang menyebabkan mandbmacet.

Anda dapat menonton skrip cron di /etc/crontabatau /etc/cron.*/*(lokasi yang tepat tergantung pada distribusi; /etc/cron.daily/man-dbdan /etc/cron.weekly/man-dbkemungkinan lokasi). Anda dapat melihat apa yang diminta mandbdengan melihat proses lebih dekat: jalankan pstree | lessdan cari mandbprosesnya. Menjalankan ps ww 12345(di mana 12345 adalah PID dari proses menyinggung) akan menampilkan baris perintah lengkap.

Ini adalah sesuatu yang mungkin dapat Anda diagnosa sendiri, tetapi tidak diperbaiki tanpa izin root. Jika Anda memiliki izin root, Anda dapat mematikan mandbproses dengan aman (gunakan perintah sudo pkill mandbatau su -c 'pkill mandb', tergantung pada bagaimana Anda menjadi root). Dalam hal apa pun, hubungi administrator sistem Anda dan jelaskan gejalanya. Berikan semua informasi yang Anda bisa (seperti program apa yang dipanggil mandbdan dengan argumen apa).

Gilles 'SANGAT berhenti menjadi jahat'
sumber
2

Saya memeriksa skrip cron, itu hanya perintah untuk memperbarui indeks manusia, mempercepat pencarian manual, berjalan setiap hari, Anda dapat membunuhnya dengan aman.

Anda tidak menyukainya, cukup nonaktifkan dengan chmod -x /etc/cron.daily/man-db

bunga aster
sumber
2

Ini adalah Heisenbug, dan mungkin salah satu yang telah diperbaiki di mandb versi terbaru. Ini ada hubungannya dengan manpage yang rusak, susunan traversal sistem file, dan pembangunan kembali incbemental dari mandb yang berubah menjadi pembangunan kembali penuh yang sangat lambat (sekitar 15 juta halaman kesalahan atau lebih, yang membutuhkan waktu beberapa menit untuk memintal karat).

Jika Anda ingin memecahkan masalah itu, jalankan:

sudo mandb --no-purge --debug

dan jangan pernah menjalankan mandb dengan --createatau tanpa --no-purge. Kemudian pastikan Anda memiliki versi terbaru dan melaporkan bug di mana cjwatson dapat melihatnya.

Jika di sisi lain Anda hanya ingin menyingkirkan masalah, jalankan:

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

yang akan menonaktifkan cronjob man-db (berjalan setiap hari) dan pemicu dpkg (berjalan ketika paket diinstal).

Tobu
sumber