問題描述
我可以在我的機構訪問Ubuntu Linux節點。節點在組中共享,但是通常我是唯一使用此特定節點的人。
我正在此節點上的所有8個CPU上並行運行計算。我的計算在運行,但是當我使用top
查看活動進程時,我看到另一個進程,該進程說用戶man
和命令mandb
。據top
稱,每次我查看top
時,此mandb
命令似乎都在運行,並且似乎占用了相當可觀的CPU能力(6 %CPU
)和內存(2.5 %MEM
)。
當我環顧互聯網時,似乎:
mandb
is used to initialise or manually update index database caches that are usually maintained by man.
那麽,為什麽mandb
始終在該節點上運行? (根據其他節點上的top
,我在機構集群中的其他節點上沒有此問題。)為什麽mandb
一直需要運行,因為我目前不在看手冊?
此過程是否可能是我可以使用kill
安全終止的幻影過程?
最佳答案
mandb
連續運行是不正常的。通常,每天在cron作業中運行mandb
,以執行維護任務,例如更新已安裝手冊頁的索引以及構建或修整格式化的手冊頁的緩存。如果您有很多手冊頁和慢速磁盤,則日常工作應在幾秒鍾內完成,可能需要幾分鍾。如果作業的運行時間超過了該時間,則說明存在問題。
6%的CPU並不高,但是該進程可能正在執行磁盤I /O。群集節點上2.5%的內存聽起來很高。可能是該作業配置錯誤並查找了該不應該在的位置,或者mandb
程序中存在錯誤,或者是硬件故障導致mandb
卡住。
您可以在/etc/crontab
或/etc/cron.*/*
中觀看cron腳本(確切位置是distribution-dependent;可能是/etc/cron.daily/man-db
和/etc/cron.weekly/man-db
)。您可以通過更仔細地查看該進程來了解調用mandb
的原因:運行pstree | less
並搜索mandb
進程。運行ps ww 12345
(其中12345是有問題的進程的PID)將顯示完整的命令行。
您可能可以自行診斷,但沒有root權限就無法修複。如果您確實具有root權限,則可以安全地終止mandb
進程(使用命令sudo pkill mandb
或su -c 'pkill mandb'
,具體取決於您成為root的方式)。無論如何,請與係統管理員聯係並解釋症狀。盡可能提供所有信息(例如,什麽程序調用了mandb
以及帶有哪些參數)。