This commit is contained in:
rjl493456442 2026-07-17 18:56:57 +02:00 committed by GitHub
commit 6e114db4a0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 3 deletions

View file

@ -103,6 +103,7 @@ var (
utils.CacheLogSizeFlag,
utils.FDLimitFlag,
utils.MemoryLimitFlag,
utils.GOGCFlag,
utils.CryptoKZGFlag,
utils.ListenPortFlag,
utils.DiscoveryPortFlag,

View file

@ -566,6 +566,12 @@ var (
Usage: "Soft memory limit for the Go runtime in megabytes (default = no limit)",
Category: flags.PerfCategory,
}
GOGCFlag = &cli.IntFlag{
Name: "gogc",
Usage: "Go garbage collection target percentage (default = 100, negative disables)",
Value: 100,
Category: flags.PerfCategory,
}
CryptoKZGFlag = &cli.StringFlag{
Name: "crypto.kzg",
Usage: "KZG library implementation to use; gokzg (recommended) or ckzg",
@ -1778,11 +1784,25 @@ func SetEthConfig(ctx *cli.Context, stack *node.Node, cfg *ethconfig.Config) {
}
}
godebug.SetGCPercent(100)
// Setting go runtime settings
gcPercent := ctx.Int(GOGCFlag.Name)
if ctx.IsSet(GOGCFlag.Name) {
log.Info("Sanitizing Go's GC trigger", "percent", gcPercent)
}
godebug.SetGCPercent(gcPercent)
if ctx.IsSet(MemoryLimitFlag.Name) {
memLimit := int64(ctx.Int(MemoryLimitFlag.Name)) * 1024 * 1024
log.Debug("Setting Go memory limit", "MB", memLimit/1024/1024)
godebug.SetMemoryLimit(memLimit)
if memLimit > int64(total) {
log.Info("Sanitizing memory limit", "provided(MB)", memLimit/1024/1024, "updated(MB)", total/1024/1024)
memLimit = int64(total)
}
if memLimit < 0 {
log.Warn("Ignoring negative Go memory limit")
} else {
log.Info("Setting Go memory limit", "MB", memLimit/1024/1024)
godebug.SetMemoryLimit(memLimit)
}
}
if ctx.IsSet(SyncTargetFlag.Name) {