如何计算 OpenBSD 系统上的处理器数量?

如何计算 OpenBSD 系统上的处理器数量?

如何使用系统工具或 C 代码确定 OpenBSD 系统上的 CPU 数量?

我所知道的在其他 BSD 平台上计算 CPU 的技术——检查/var/run/dmesg.boot某些字符串,似乎并不总是有效。

更多背景信息:不幸的是,我没有可用的 OpenBSD 系统。我正在尝试解决OpenBSD 特定测试失败用于 Perl 模块。

答案1

在 OpenBSD 上,您有:

sysctl hw.ncpu

或者

sysctl hw.ncpufound

正如解释的那样sysctl(3)其中,ncpu是系统使用的CPU数量,ncpufound是系统找到的CPU数量。

顺便一提,devio.us在 OpenBSD 服务器上提供免费的 shell 帐户。

答案2

在 FreeBSD 上,

sysctl -n hw.ncpu

以及达尔文

sysctl -n hw.availcpu

所以也许它们很相似?我认为有一个系统调用,但我会先用命令行来研究一下。

答案3

互联网告诉我尝试一下

dmesg | grep -i CPU

或者

sysctl -a | egrep -i 'hw.machine|hw.model|hw.ncpu'

cpuinfo 可用吗?我知道你可以在 BSD 变体上使用它。

答案4

在 6.4 版中ncpuonline添加,从 7.0 版开始sysctl(2)状态:

硬件NCPU硬件ncpu)
    配置的CPU数量。
硬件发现硬件找到)
    找到的 CPU 数量。
硬件 NCPUONLINE硬件ncpu在线)
    在线CPU数量。

更多信息ncpuonline请参阅修订版 (openbsd-cvs)。

相关内容