Documentation ¶
Overview ¶
Package numcpus provides information about the number of CPU.
It gets the number of CPUs (online, offline, present, possible or kernel maximum) on a Linux, Darwin, FreeBSD, NetBSD, OpenBSD or DragonflyBSD system.
On Linux, the information is retrieved by reading the corresponding CPU topology files in /sys/devices/system/cpu.
Not all functions are supported on Darwin, FreeBSD, NetBSD, OpenBSD and DragonflyBSD.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
var ErrNotSupported = errors.New("function not supported")
ErrNotSupported is the error returned when the function is not supported.
Functions ¶
func GetKernelMax ¶
GetKernelMax returns the maximum number of CPUs allowed by the kernel configuration. This function is only supported on Linux systems.
func GetOffline ¶
GetOffline returns the number of offline CPUs, i.e. CPUs that are not online because they have been hotplugged off or exceed the limit of CPUs allowed by the kernel configuration (see GetKernelMax). This function is only supported on Linux systems.
Example ¶
package main import ( "fmt" "os" "github.com/tklauser/numcpus" ) func main() { offline, err := numcpus.GetOffline() if err != nil { fmt.Fprintf(os.Stderr, "GetOffline: %v\n", err) } fmt.Printf("# of offline CPUs: %v\n", offline) }
Output:
func GetOnline ¶
GetOnline returns the number of CPUs that are online and being scheduled.
Example ¶
package main import ( "fmt" "os" "github.com/tklauser/numcpus" ) func main() { online, err := numcpus.GetOnline() if err != nil { fmt.Fprintf(os.Stderr, "GetOnline: %v\n", err) } fmt.Printf("# of online CPUs: %v\n", online) }
Output:
func GetPossible ¶
GetPossible returns the number of possible CPUs, i.e. CPUs that have been allocated resources and can be brought online if they are present.
Example ¶
package main import ( "fmt" "os" "github.com/tklauser/numcpus" ) func main() { possible, err := numcpus.GetPossible() if err != nil { fmt.Fprintf(os.Stderr, "GetPossible: %v\n", err) } fmt.Printf("# of possible CPUs: %v\n", possible) }
Output:
func GetPresent ¶
GetPresent returns the number of CPUs present in the system.
Example ¶
package main import ( "fmt" "os" "github.com/tklauser/numcpus" ) func main() { present, err := numcpus.GetPresent() if err != nil { fmt.Fprintf(os.Stderr, "GetPresent: %v\n", err) } fmt.Printf("# of present CPUs: %v\n", present) }
Output:
Types ¶
This section is empty.