问题描述
我可以在我的机构访问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
以及带有哪些参数)。