我在top
(1)中显示的“运行”字段中通常看到的最大数量是系统中安装的逻辑CPU的数量。但是,我注意到在Ubuntu10.04(在其他版本中没有签入)下,有时top
(1)显示比我提到的限制更多运行的进程。
什么会导致例如,在单个核心系统中运行的两个进程的显示?
发布于 2010-08-20 17:00:48
顶部的“running”字段不显示同时运行的任务数,而是显示可运行的任务数,即争夺CPU访问权限的任务数。
如果top可以在单个时间片中获取所有系统信息,“running”字段将恰好是其状态(S
列)显示R
的任务数(同样,这里的R
通常被称为“运行”,但这实际上意味着“运行”如上所述)。实际上,这个数字可能不匹配,因为top一个接一个地获取每个任务的信息,一些可运行的任务可能在完成时已经睡着,反之亦然。( top的一些实现可能只是计算状态R
的任务,以计算“运行”字段;然后这个数字将是准确的。)
注意,当top收集其信息时,总是有一个可运行的任务,即top本身。如果您看到单个可运行的任务,这意味着没有其他进程正在争夺CPU时间。
发布于 2010-08-20 16:53:16
也许是超线程。
请注意,top的手册页上写着:
显示为运行的任务应该被更正确地理解为“准备运行”--它们的task_struct只是在Linux运行队列中表示。即使没有真正的SMP机器,您也可能会看到许多任务处于这种状态,这取决于top的延迟间隔和很好的值。
https://unix.stackexchange.com/questions/911
复制相似问题