【问题标题】:uniprocessor or multiprocessor单处理器或多处理器
【发布时间】:2009-11-09 07:56:54
【问题描述】:

在 unix 上,我们如何知道系统是多处理器还是单处理器?

【问题讨论】:

  • 具有超线程的 Pentium 4 算作单处理器还是多处理器?
  • unix HPUX,我也在 AIX 上试过
  • 我在 /proc/.so 中找不到任何 cpuinfo 文件是否意味着我们无法在 unix 上找到答案?
  • 一种 POSIX 方法可以做到这一点,它存在于线程关联的东西中,我似乎找不到它。

标签: unix kernel pthreads processors


【解决方案1】:

有时我们必须回答自己的问题:)

在 Solaris 上运行命令

/usr/sbin/psrinfo -v|grep "Status of processor"|wc -l

在 AIX 上运行命令

lsdev -C|grep Process|wc -l

在 HP-UX 上运行以下命令(需要超级用户权限):

P=`echo processor_count/D | adb -k /stand/vmunix /dev/mem |tail -1|awk '{print $2}'` echo "The number of processors on `hostname` = $P"

在 Tru64 上运行命令

 /usr/sbin/psrinfo -v|grep "Status of processor"|wc -l

【讨论】:

    【解决方案2】:

    怎么样

    cat /proc/cpuinfo | grep -i 'processor' | wc -l
    

    甚至

     dmesg | grep -i cpu
    

    注意最后一个中的“Brought up x processor”

    【讨论】:

    • procfs 几乎只是一个 Linux 的东西。您不会在许多其他系统上看到它。例如,FreeBSD 只有在安装了 Linux 兼容的东西时才有它。
    • 是的,约翰内斯。你似乎是对的。我在 /proc/.so 中找不到任何 cpuinfo 文件,这是否意味着我们无法在 unix 上找到答案?
    • -1 因为我只标记了 unix 和 linux 答案对我没有帮助
    【解决方案3】:

    我不知道它是否也适用于 Unix,但对于 Linux,从命令行,请参见此处:http://www.howtogeek.com/howto/ubuntu/display-number-of-processors-on-linux/

    【讨论】:

    • procfs 几乎只是一个 Linux 的东西。您不会在许多其他系统上看到它。例如,FreeBSD 只有在安装了 Linux 兼容的东西时才有它。
    • 我在 /proc/.so 中找不到任何 cpuinfo 文件,这是否意味着我们无法在 unix 上找到答案?