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 man
dan perintah mandb
. mandb
Perintah 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 mandb
berjalan sepanjang waktu pada simpul ini? (Saya tidak memiliki masalah ini pada node lain dalam cluster institusi saya, menurut top
pada node lain.) Mengapa mandb
perlu 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
?
Jawaban:
Itu tidak normal untuk
mandb
terus berjalan. Biasanya dijalankanmandb
sekali 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
mandb
program, atau ada kegagalan perangkat keras yang menyebabkanmandb
macet.Anda dapat menonton skrip cron di
/etc/crontab
atau/etc/cron.*/*
(lokasi yang tepat tergantung pada distribusi;/etc/cron.daily/man-db
dan/etc/cron.weekly/man-db
kemungkinan lokasi). Anda dapat melihat apa yang dimintamandb
dengan melihat proses lebih dekat: jalankanpstree | less
dan carimandb
prosesnya. Menjalankanps 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
mandb
proses dengan aman (gunakan perintahsudo pkill mandb
atausu -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 dipanggilmandb
dan dengan argumen apa).sumber
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
sumber
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:
dan jangan pernah menjalankan mandb dengan
--create
atau 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:
yang akan menonaktifkan cronjob man-db (berjalan setiap hari) dan pemicu dpkg (berjalan ketika paket diinstal).
sumber