Skip to content

Go package providing information about the number of CPUs in the system

License

tklauser/numcpus

Repository files navigation

numcpus

Go Reference GitHub Action Status Go Report Card

Package numcpus provides information about the number of CPU in a system.

It gets the number of CPUs (online, offline, present, possible, configured or kernel maximum) on a Linux, Darwin, FreeBSD, NetBSD, OpenBSD, DragonflyBSD or Solaris/Illumos 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, DragonflyBSD and Solaris/Illumos.

Usage

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("online CPUs: %v\n", online)

	possible, err := numcpus.GetPossible()
	if err != nil {
		fmt.Fprintf(os.Stderr, "GetPossible: %v\n", err)
	}
	fmt.Printf("possible CPUs: %v\n", possible)
}

References