首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找出我的进程Id运行在哪个物理CPU上?

如何找出我的进程Id运行在哪个物理CPU上?
EN

Stack Overflow用户
提问于 2012-01-31 17:27:18
回答 1查看 608关注 0票数 2

我的服务器中有两个物理CPU。我看到他们都有8个虚拟处理器与他们相关联。我有一些疑问。

  1. 如何找到与进程Id相关的作业运行在哪个CPU上?
  2. 我的工作范围很广,所以它可以同时使用CPU及其虚拟处理器吗?如果允许在CPU和虚拟处理器上运行任务,则
  3. 会导致性能下降,因为它们之间将交换数据。
  4. 试图通过使用mpstat查找与CPU利用率相关的信息,其中"wt“列给出了”在读写操作期间CPU的理想时间“,但这总是获取0值。您能建议其他命令来监视进程id的CPU利用率吗?我见过顶部,mpstat。为了使用和分析来自procstat的可读形式的统计信息,我能做些什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-31 17:36:21

如何找到与进程Id相关联的作业在哪个CPU上运行?

你只能用JNA或JNI做这件事。

我的工作是广泛的CPU,所以它可以同时使用CPU和它们的虚拟处理器,或者它将运行在一个CPU和虚拟处理器上。

如果您只有一个线程,它将只使用一个逻辑线程。如果有更多繁忙的线程,则可以使用更多的逻辑线程(可能是所有CPU)。

如果允许在CPU和它们的虚拟处理器上运行作业,

会导致性能下降,因为它们之间的数据将被超出。

是。

I试图通过使用mpstat找到与CPU利用率相关的信息,其中"wt“颜色给出了”读写操作期间CPU的理想时间“,但这总是获得0的值。

读写延迟是对IO设备的延迟,而不是CPU之间的延迟。

可以建议任何其他命令,通过这些命令我可以监视进程id的CPU利用率。我见过顶部,mpstat。

他们是你能得到的最好的。

用于使用和分析来自procstat的可读形式的统计数据,我能做什么?

假设你使用了一个商业分析器,并且它运行得尽可能高效.

您需要创建微基准测试来查看如何在系统上使用一个或多个线程。这将给你一个如何缩放的想法,如果它不缩放,你必须做进一步的分析来确定为什么。您将无法使用分析工具来确定这一点。

编辑:如果您想要使用线程关联、JNI或JNA的示例,可以尝试https://github.com/peter-lawrey/Java-Thread-Affinity

注意:它适用于Linux。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9084058

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档