automemlimit

package module
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 21, 2026 License: MIT Imports: 2 Imported by: 95

README

automemlimit

Go Reference Test

Automatically set GOMEMLIMIT based on the Linux cgroups(7) memory limit.

See more details about GOMEMLIMIT here.

Notice

Version v1.0.0 simplifies the public API and improves cgroup memory limit detection.

Key changes from v0.x:

  • memlimit.Set replaces the memlimit.SetGoMemLimit* functions
  • memlimit.Set returns the previous GOMEMLIMIT instead of 0 when configuration is skipped or an error occurs
  • memlimit.Set sets GOMEMLIMIT to math.MaxInt64 when the provider returns memlimit.ErrNoLimit
  • memlimit.FromCgroup replaces the version-specific cgroup providers
  • memlimit.WithEnv, AUTOMEMLIMIT_EXPERIMENT, and AUTOMEMLIMIT_DEBUG were removed
    • Use memlimit.FromSystem for system memory fallback
  • memlimit.WithRefreshInterval now takes a context.Context for cancellation
  • memlimit.WithMin was added to set a lower bound for GOMEMLIMIT

Installation

go get github.com/KimMachineGun/automemlimit@latest

Usage

package main

// Importing this package sets GOMEMLIMIT automatically from the cgroup memory limit.
import _ "github.com/KimMachineGun/automemlimit"

For more control, use memlimit.Set directly:

package main

import (
	"log"

	"github.com/KimMachineGun/automemlimit/memlimit"
)

func main() {
	_, err := memlimit.Set(
		memlimit.WithRatio(0.9),
		memlimit.WithMin(100*1024*1024),
		memlimit.WithProvider(
			memlimit.ApplyFallback(
				memlimit.FromCgroup,
				memlimit.FromSystem,
			),
		),
	)
	if err != nil {
		log.Fatal(err)
	}
}

Documentation

Overview

Package automemlimit automatically sets GOMEMLIMIT based on the cgroup memory limit.

import _ "github.com/KimMachineGun/automemlimit"

Use the memlimit package directly for more control.

Directories

Path Synopsis
examples
dynamic module
gosigar module
logger module
system module
Package memlimit configures GOMEMLIMIT from a memory limit provider.
Package memlimit configures GOMEMLIMIT from a memory limit provider.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL