diff --git a/cmd/lotus-seal-worker/main.go b/cmd/lotus-seal-worker/main.go index e36514bb880..d2c57e68089 100644 --- a/cmd/lotus-seal-worker/main.go +++ b/cmd/lotus-seal-worker/main.go @@ -109,6 +109,11 @@ var runCmd = &cli.Command{ Name: "no-local-storage", Usage: "don't use storageminer repo for sector storage", }, + &cli.BoolFlag{ + Name: "no-swap", + Usage: "don't use swap", + Value: false, + }, &cli.BoolFlag{ Name: "addpiece", Usage: "enable addpiece", @@ -346,6 +351,7 @@ var runCmd = &cli.Command{ LocalWorker: sectorstorage.NewLocalWorker(sectorstorage.WorkerConfig{ SealProof: spt, TaskTypes: taskTypes, + NoSwap: cctx.Bool("no-swap"), }, remote, localStore, nodeApi), localStore: localStore, ls: lr, @@ -465,6 +471,7 @@ func watchMinerConn(ctx context.Context, cctx *cli.Context, nodeApi api.StorageM "run", fmt.Sprintf("--listen=%s", cctx.String("listen")), fmt.Sprintf("--no-local-storage=%t", cctx.Bool("no-local-storage")), + fmt.Sprintf("--no-swap=%t", cctx.Bool("no-swap")), fmt.Sprintf("--addpiece=%t", cctx.Bool("addpiece")), fmt.Sprintf("--precommit1=%t", cctx.Bool("precommit1")), fmt.Sprintf("--unseal=%t", cctx.Bool("unseal")), diff --git a/extern/sector-storage/localworker.go b/extern/sector-storage/localworker.go index 2c3c350f765..b1193a2e292 100644 --- a/extern/sector-storage/localworker.go +++ b/extern/sector-storage/localworker.go @@ -26,6 +26,7 @@ var pathTypes = []stores.SectorFileType{stores.FTUnsealed, stores.FTSealed, stor type WorkerConfig struct { SealProof abi.RegisteredSealProof TaskTypes []sealtasks.TaskType + NoSwap bool } type LocalWorker struct { @@ -33,6 +34,7 @@ type LocalWorker struct { storage stores.Store localStore *stores.Local sindex stores.SectorIndex + noSwap bool acceptTasks map[sealtasks.TaskType]struct{} } @@ -50,6 +52,7 @@ func NewLocalWorker(wcfg WorkerConfig, store stores.Store, local *stores.Local, storage: store, localStore: local, sindex: sindex, + noSwap: wcfg.NoSwap, acceptTasks: acceptTasks, } @@ -275,11 +278,16 @@ func (l *LocalWorker) Info(context.Context) (storiface.WorkerInfo, error) { return storiface.WorkerInfo{}, xerrors.Errorf("getting memory info: %w", err) } + memSwap := mem.VirtualTotal + if l.noSwap { + memSwap = 0 + } + return storiface.WorkerInfo{ Hostname: hostname, Resources: storiface.WorkerResources{ MemPhysical: mem.Total, - MemSwap: mem.VirtualTotal, + MemSwap: memSwap, MemReserved: mem.VirtualUsed + mem.Total - mem.Available, // TODO: sub this process CPUs: uint64(runtime.NumCPU()), GPUs: gpus,