识别核心Erlang过程



有什么方法可以确定Erlang进程计划的特定核心吗?

假设您生成了一堆进程,只需打印出进程运行的核心,然后退出。有办法做到这一点吗?

我花了一些时间阅读文档和谷歌搜索,但什么也找不到。

谢谢。

编辑:"core"=CPU核心编号(如果不是编号,则为标识CPU核心的另一个标识符)。

在大多数情况下,erlang:system_info(schedule_id)被映射到逻辑核心。但这些信息是非常短暂的,因为进程可能会在任何其他调度程序上暂停和恢复。

您真正需要此类信息的用例是什么?

没有。如果你产生2000个进程,并且它们很快终止,那么你很可能会在重新平衡发生之前完成任务。在这种情况下,您将只有一个核心一直在运行。

但是,您可以查看调度程序利用率调用,请参阅erlang:statistics(scheduler_wall_time)。它会告诉你每个调度器实际做了多少工作。

最新更新