如何(从终端)获取每个核心的总线程数?

如何(从终端)获取每个核心的总线程数?

我想知道如何在终端(用于 bash 脚本)中获取每个核心(在运行队列中)正在运行的线程总数?

答案1

我希望获得与图 7 和图 8 相同的信息本文。但是,正如您所说,最安全的方法是修补内核,尽管它可能会影响性能,或者不是适用于每个内核版本的通用解决方案。

我所做的就是使用性能记录调度程序事件踪迹的工具。

对于事件,您还可以使用此处的事件列表放置特定事件:

$ perf list | grep sched

您可以使用以下命令获取文件中的事件,然后根据需要将其转换为可读的内容。

$ perf record -e 'sched:*' -p <PID> sleep <seconds>

使用此命令记录数据后,您可以获得带有时间戳的每个 CPU 核心信息:

$ perf sched timehist -p <samePIDofRecorded> > time_history.txt

要获取纯原始文本数据:

$ perf script > perf.data.txt

相关内容