logo of Akmatori
26.11.2023

How to Limit CPU Cores in Go: A Step-by-Step Guide

head-image

This blog post teaches you to limit CPU cores in Go. Efficient core management improves app performance.

Understanding CPU Limitation

CPU limitation restricts how many cores a Go program can use. This process is crucial for system stability.

Benefits of Limiting Cores

  • Enhanced Performance: Prevents CPU hogging.
  • Better Resource Management: Allows fine control over CPU usage.
  • Increased Stability: Avoids system overloads.

Step 1: Import Required Package

Start by importing the "runtime" package:

import "runtime"

This package lets you interact with Go's runtime system.

Step 2: Query Available Cores

Check how many cores are available:

cores := runtime.NumCPU()

This code line returns the number of CPU cores.

Step 3: Set Maximum Cores

Decide the number of cores to use. Use runtime.GOMAXPROCS to set this limit:

runtime.GOMAXPROCS(2) // Limits to 2 cores

Replace 2 with any number of cores you wish to use.

Step 4: Verify Core Limit

After setting the limit, confirm it:

current := runtime.GOMAXPROCS(0)

This function call checks the current setting without changing it.

Use Case: Web Server Example

Here is how to apply CPU limits in a real app. Consider a simple web server:

package main

import (
    "net/http"
    "runtime"
)

func main() {
    runtime.GOMAXPROCS(2) // Use only 2 cores
    http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
        w.Write([]byte("Server is running"))
    })
    http.ListenAndServe(":8080", nil)
}

This server runs with a 2-core limit.

Integrating Akmatori Load Balancer

To handle global traffic efficiently, integrate Akmatori, a TCP/UDP load balancer. Akmatori optimizes resource use across multiple servers, perfect for Go applications with limited CPU cores. Try Akmatori today to see how it boosts your network performance. Learn more about Akmatori.

Conclusion

Limiting CPU cores in Go is straightforward. Use the runtime package and GOMAXPROCS to control core usage. This method improves app performance and stability.

Maximize your website or application's performance and reliability!