Ubuntu Linuxでmandbが常に(明らかにバックグラウンドで)実行されているのは正常ですか?

Ubuntu Linuxでmandbが常に(明らかにバックグラウンドで)実行されているのは正常ですか?

私たちの機関のUbuntu Linuxノードにアクセスできます。ノードはグループ間で共有されますが、通常、その特定のノードを使用する唯一の人は私です。

ノードの8つのCPUすべてで計算を並列に実行しています。計算は実行中ですが、アクティブプロセスビューを使用すると、topユーザーmanとコマンドが記録された追加プロセスが表示されますmandb。によると、このmandbコマンドは見るたびに実行されるように見え、かなりの量のCPU性能()とメモリ()をtop占めるようです。6 %CPU2.5 %MEMtop

インターネットで探してみるとこんな内容のようです。

mandb通常、人が維持するインデックスデータベースキャッシュを初期化したり、手動で更新するために使用されます。

では、なぜmandbこのノードで実行され続けるのですか? (他のノードによると、top私のエージェンシークラスタ内の他のノードではこの問題は発生しません。)なぜmandb常に実行するのですか?いいえ現在のマニュアルを見ていますか?

このプロセスが安全に終了できる仮想プロセスである可能性はありますかkill

答え1

mandb連続動作が異常です。通常、mandb1日1回実行予約されたことインストールされたマニュアルページのインデックスの更新、フォーマットされたマニュアルページのキャッシュの構築、またはクリーンアップなどのメンテナンスタスクを実行するタスク。毎日の作業は数秒で実行する必要があります。マニュアルページが多く、ディスクが遅い場合は数分かかることがあります。タスクの実行にこれより時間がかかると、問題が発生しました。

6%のCPUは高くありませんが、プロセスはディスクI / Oを実行している可能性があります。クラスタノードのメモリの2.5%が高いと聞こえます。ジョブが正しく構成されていない場所を見つけたり、プログラムにバグがあったり、ハードmandbウェア障害が原因でジョブmandbが中断したりする可能性があります。

/etc/crontabあるいは、cronスクリプトを見ることができます/etc/cron.*/*(正確な場所はディストリビューションによって異なり、/etc/cron.daily/man-db可能な/etc/cron.weekly/man-db場所です)。mandbプロセスを詳しく見てみると、プロセスを実行しpstree | lessて検索して呼び出される内容を把握できます。mandb実行するps ww 12345と(ここで、12345は問題のあるプロセスのPIDです)、コマンドライン全体が表示されます。

この問題を直接診断できますが、rootアクセスなしでは問題を解決できません。 root権限がある場合は、プロセスを安全に終了できます(rootになった方法に応じて、またはmandbコマンドを使用して)。とにかく、システム管理者に連絡して症状を説明してください。利用可能なすべての情報(たとえば、呼び出されたプログラム、使用されたパラメータなど)を提供します。sudo pkill mandbsu -c 'pkill mandb'mandb

答え2

cronスクリプトを確認しました。これはmanインデックスを更新し、手動検索を高速化し、毎日実行され、安全にシャットダウンできるコマンドです。

気に入らない場合は、ただ消してください。chmod -x /etc/cron.daily/man-db

答え3

これは最新バージョンのmandbで修正された可能性があるHeisenbugです。これは、破損したマンページ、ファイルシステムの巡回順序、およびmandbの増分再構築が非常に遅い完全な再構築に変わったという事実に関連していました(〜1,500万ページのエラー、回転する錆が数分かかります)。

問題を解決するには:

sudo mandb --no-purge --debug

--createそして、その有無にかかわらずmandbを実行しないでください--no-purge。次に、最新バージョンであることを確認し、cjwatsonが表示できるバグを報告してください。

一方、問題を解決するには、次の手順を実行します。

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

これにより、man-db cronjob(毎日実行)とdpkgトリガー(パッケージのインストール時に実行)が無効になります。

関連情報