From 5ef86d45ab2c9664e5604d93e545fff7cedb4026 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Magiera?= Date: Thu, 26 Aug 2021 15:59:54 +0200 Subject: [PATCH] alerting: Address review --- build/limits.go | 6 ++++++ build/openrpc/full.json.gz | Bin 25412 -> 25415 bytes build/openrpc/miner.json.gz | Bin 10375 -> 10374 bytes build/openrpc/worker.json.gz | Bin 2711 -> 2709 bytes lib/ulimit/ulimit.go | 10 ++++++---- lib/ulimit/ulimit_freebsd.go | 2 +- lib/ulimit/ulimit_unix.go | 2 +- node/builder.go | 3 ++- node/builder_miner.go | 3 ++- 9 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 build/limits.go diff --git a/build/limits.go b/build/limits.go new file mode 100644 index 00000000000..93d56577c44 --- /dev/null +++ b/build/limits.go @@ -0,0 +1,6 @@ +package build + +var ( + DefaultFDLimit uint64 = 16 << 10 + MinerFDLimit uint64 = 100_000 +) diff --git a/build/openrpc/full.json.gz b/build/openrpc/full.json.gz index 6cae0a3833531540a2c695e2b3711a49f2043f14..4892e090148247a49af2cd354ba5a370f055ae76 100644 GIT binary patch delta 22250 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 delta 9407 zcmV;wBtYASQHN2G90k{zesJWGA~$~%tKS`T53G)b$&6Yj-z<)~i>wptg7P&3SC?aO zdUEXP>(z>S9692X2k|feD?=BrR=w9Z*p|BGyHeR&Z0{k6s(a;y{Xt&u=x zl`Xhw5v_SA>KQoIQ126XSg`-6J7 z>6Z^hY_*C#`j$ran}s=A$~Pr=Ghoe!@B#EZxDmf~<7y7Lc51!_?WUBv2$ERK^hD{J zW|y-ue6x$+5a@>&CM6FJbEM=1$$#U&QGF2^!O+OZ4p{X;S|fjhS8$5E(RYPHGisWr z_Y*Lyi_FA01m0WA%y80I{im; zI2!IB9}bU(2S;C`!TBwpH*+2y>6vr9K=$pWNAHBBt;L!N2u8-7;_eliV}T!XF6o3{ zdX&yOU^M`rzc7CV)?eZ)B%Tj}5bv+St0i20j@Dl-;TOg|Omc0Y1X?-FoCCfRXQ!t@ z3|kCO3}v_ct)JSRF-d*ah(<-}ko*q^(3bcD4?zdG)V{R@f-A@c*Iy=xqx)0LH1#`taW>x3u|bW{ z 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 R{|f*B|NjItq+3~f008}TT_*ql diff --git a/lib/ulimit/ulimit.go b/lib/ulimit/ulimit.go index 7e80fd223c3..ab53d939e52 100644 --- a/lib/ulimit/ulimit.go +++ b/lib/ulimit/ulimit.go @@ -4,6 +4,7 @@ package ulimit import ( "fmt" + "github.com/filecoin-project/lotus/build" "os" "strconv" "syscall" @@ -17,7 +18,7 @@ var ( supportsFDManagement = false // getlimit returns the soft and hard limits of file descriptors counts - GetLimit func() (uint64, uint64, error) + getLimit func() (uint64, uint64, error) // set limit sets the soft and hard limits of file descriptors counts setLimit func(uint64, uint64) error ) @@ -25,8 +26,9 @@ var ( // minimum file descriptor limit before we complain const minFds = 2048 -// default max file descriptor limit. -const maxFds = 16 << 10 +func GetLimit() (uint64, uint64, error) { + return getLimit() +} // userMaxFDs returns the value of LOTUS_FD_MAX func userMaxFDs() uint64 { @@ -55,7 +57,7 @@ func ManageFdLimit() (changed bool, newLimit uint64, err error) { return false, 0, nil } - targetLimit := uint64(maxFds) + targetLimit := build.DefaultFDLimit userLimit := userMaxFDs() if userLimit > 0 { targetLimit = userLimit diff --git a/lib/ulimit/ulimit_freebsd.go b/lib/ulimit/ulimit_freebsd.go index aeea77d9d00..7e50436f3d0 100644 --- a/lib/ulimit/ulimit_freebsd.go +++ b/lib/ulimit/ulimit_freebsd.go @@ -11,7 +11,7 @@ import ( func init() { supportsFDManagement = true - GetLimit = freebsdGetLimit + getLimit = freebsdGetLimit setLimit = freebsdSetLimit } diff --git a/lib/ulimit/ulimit_unix.go b/lib/ulimit/ulimit_unix.go index e015b2b32d9..a351236dcb8 100644 --- a/lib/ulimit/ulimit_unix.go +++ b/lib/ulimit/ulimit_unix.go @@ -8,7 +8,7 @@ import ( func init() { supportsFDManagement = true - GetLimit = unixGetLimit + getLimit = unixGetLimit setLimit = unixSetLimit } diff --git a/node/builder.go b/node/builder.go index 58095da8f80..887f9046fe9 100644 --- a/node/builder.go +++ b/node/builder.go @@ -28,6 +28,7 @@ import ( "go.uber.org/fx" "golang.org/x/xerrors" + "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/beacon" "github.com/filecoin-project/lotus/chain/types" "github.com/filecoin-project/lotus/extern/sector-storage/stores" @@ -152,7 +153,7 @@ func defaults() []Option { Override(new(journal.Journal), modules.OpenFilesystemJournal), Override(new(*alerting.Alerting), alerting.NewAlertingSystem), - Override(CheckFDLimit, modules.CheckFdLimit(16<<10)), + Override(CheckFDLimit, modules.CheckFdLimit(build.DefaultFDLimit)), Override(new(system.MemoryConstraints), modules.MemoryConstraints), Override(InitMemoryWatchdog, modules.MemoryWatchdog), diff --git a/node/builder_miner.go b/node/builder_miner.go index 4c9d2492aa7..c8ee5d48c44 100644 --- a/node/builder_miner.go +++ b/node/builder_miner.go @@ -15,6 +15,7 @@ import ( storage2 "github.com/filecoin-project/specs-storage/storage" "github.com/filecoin-project/lotus/api" + "github.com/filecoin-project/lotus/build" "github.com/filecoin-project/lotus/chain/gen" "github.com/filecoin-project/lotus/chain/gen/slashfilter" sectorstorage "github.com/filecoin-project/lotus/extern/sector-storage" @@ -74,7 +75,7 @@ func ConfigStorageMiner(c interface{}) Option { return Options( ConfigCommon(&cfg.Common, enableLibp2pNode), - Override(CheckFDLimit, modules.CheckFdLimit(100_000)), // recommend at least 100k FD limit to miners + Override(CheckFDLimit, modules.CheckFdLimit(build.MinerFDLimit)), // recommend at least 100k FD limit to miners Override(new(api.MinerSubsystems), modules.ExtractEnabledMinerSubsystems(cfg.Subsystems)), Override(new(stores.LocalStorage), From(new(repo.LockedRepo))),