mirror of
https://github.com/OffchainLabs/prysm.git
synced 2026-01-09 15:37:56 -05:00
Raise Soft File Descriptor Limit Up To The Hard Limit (#10650)
* add changes * comment * kasey's review Co-authored-by: prylabs-bulldozer[bot] <58059840+prylabs-bulldozer[bot]@users.noreply.github.com>
This commit is contained in:
22
runtime/fdlimits/BUILD.bazel
Normal file
22
runtime/fdlimits/BUILD.bazel
Normal file
@@ -0,0 +1,22 @@
|
||||
load("@prysm//tools/go:def.bzl", "go_library", "go_test")
|
||||
|
||||
go_library(
|
||||
name = "go_default_library",
|
||||
srcs = ["fdlimits.go"],
|
||||
importpath = "github.com/prysmaticlabs/prysm/runtime/fdlimits",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"@com_github_ethereum_go_ethereum//common/fdlimit:go_default_library",
|
||||
"@com_github_sirupsen_logrus//:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
go_test(
|
||||
name = "go_default_test",
|
||||
srcs = ["fdlimits_test.go"],
|
||||
deps = [
|
||||
":go_default_library",
|
||||
"//testing/assert:go_default_library",
|
||||
"@com_github_ethereum_go_ethereum//common/fdlimit:go_default_library",
|
||||
],
|
||||
)
|
||||
25
runtime/fdlimits/fdlimits.go
Normal file
25
runtime/fdlimits/fdlimits.go
Normal file
@@ -0,0 +1,25 @@
|
||||
package fdlimits
|
||||
|
||||
import (
|
||||
"github.com/ethereum/go-ethereum/common/fdlimit"
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
// SetMaxFdLimits is a wrapper around a few go-ethereum methods to allow prysm to
|
||||
// set its file descriptor limits at the maximum possible value.
|
||||
func SetMaxFdLimits() error {
|
||||
curr, err := fdlimit.Current()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
max, err := fdlimit.Maximum()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
raisedVal, err := fdlimit.Raise(uint64(max))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
log.Infof("Raised fd limit to %d from %d", raisedVal, curr)
|
||||
return nil
|
||||
}
|
||||
22
runtime/fdlimits/fdlimits_test.go
Normal file
22
runtime/fdlimits/fdlimits_test.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package fdlimits_test
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
gethLimit "github.com/ethereum/go-ethereum/common/fdlimit"
|
||||
"github.com/prysmaticlabs/prysm/runtime/fdlimits"
|
||||
"github.com/prysmaticlabs/prysm/testing/assert"
|
||||
)
|
||||
|
||||
func TestSetMaxFdLimits(t *testing.T) {
|
||||
assert.NoError(t, fdlimits.SetMaxFdLimits())
|
||||
|
||||
curr, err := gethLimit.Current()
|
||||
assert.NoError(t, err)
|
||||
|
||||
max, err := gethLimit.Maximum()
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, max, curr, "current and maximum file descriptor limits do not match up.")
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user