私たちの機関のUbuntu Linuxノードにアクセスできます。ノードはグループ間で共有されますが、通常、その特定のノードを使用する唯一の人は私です。
ノードの8つのCPUすべてで計算を並列に実行しています。計算は実行中ですが、アクティブプロセスビューを使用すると、top
ユーザーman
とコマンドが記録された追加プロセスが表示されますmandb
。によると、このmandb
コマンドは見るたびに実行されるように見え、かなりの量のCPU性能()とメモリ()をtop
占めるようです。6 %CPU
2.5 %MEM
top
インターネットで探してみるとこんな内容のようです。
mandb
通常、人が維持するインデックスデータベースキャッシュを初期化したり、手動で更新するために使用されます。
では、なぜmandb
このノードで実行され続けるのですか? (他のノードによると、top
私のエージェンシークラスタ内の他のノードではこの問題は発生しません。)なぜmandb
常に実行するのですか?いいえ現在のマニュアルを見ていますか?
このプロセスが安全に終了できる仮想プロセスである可能性はありますかkill
?
答え1
mandb
連続動作が異常です。通常、mandb
1日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 mandb
su -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トリガー(パッケージのインストール時に実行)が無効になります。