Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

How can I determine the number of CPUs on an OpenBSD system, using either system tools or C code?

The technique I know of to count CPUs on other BSD platforms -- checking /var/run/dmesg.boot for certain strings, doesn't always seem to work.

More context: Unfortunately, I don't have an OpenBSD system available to play around with. I am trying to address the OpenBSD-specific test failures for a Perl module.

share|improve this question
    
Also, you might like unix.stackexchange.com –  Matt Simmons Nov 18 '10 at 13:22
add comment

3 Answers

up vote 5 down vote accepted

On OpenBSD you have:

sysctl hw.ncpu

or

sysctl hw.ncpufound

As explained in sysctl(3), ncpu is the number of CPU used by system and ncpufound is the number of CPU found by the system.

By the way, devio.us provides free shell account on OpenBSD servers.

share|improve this answer
    
Thanks for the great tip about devio.us! That will make it easier to answer all my other OpenBSD questions. –  mob Nov 23 '10 at 21:46
add comment

On FreeBSD, it's

sysctl -n hw.ncpu

and on Darwin

sysctl -n hw.availcpu

So perhaps it's similar? There is a system call, I think, but I'd poke around with the command line first.

share|improve this answer
add comment

The internet tells me to try this

dmesg | grep -i CPU

or

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

is cpuinfo available?? I know you can have it on BSD variants..

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.