diff --git a/extern/sector-storage/manager_test.go b/extern/sector-storage/manager_test.go index cb03b2ef4..4a8ca5f22 100644 --- a/extern/sector-storage/manager_test.go +++ b/extern/sector-storage/manager_test.go @@ -322,7 +322,7 @@ func TestRestartWorker(t *testing.T) { defer cleanup() localTasks := []sealtasks.TaskType{ - sealtasks.TTAddPiece, sealtasks.TTPreCommit1, sealtasks.TTCommit1, sealtasks.TTFinalize, sealtasks.TTFetch, + sealtasks.TTAddPiece, sealtasks.TTFetch, } wds := datastore.NewMapDatastore() @@ -466,7 +466,7 @@ func TestResUse(t *testing.T) { defer cleanup() localTasks := []sealtasks.TaskType{ - sealtasks.TTAddPiece, sealtasks.TTPreCommit1, sealtasks.TTCommit1, sealtasks.TTFinalize, sealtasks.TTFetch, + sealtasks.TTAddPiece, sealtasks.TTFetch, } wds := datastore.NewMapDatastore() @@ -524,7 +524,7 @@ func TestResOverride(t *testing.T) { defer cleanup() localTasks := []sealtasks.TaskType{ - sealtasks.TTAddPiece, sealtasks.TTPreCommit1, sealtasks.TTCommit1, sealtasks.TTFinalize, sealtasks.TTFetch, + sealtasks.TTAddPiece, sealtasks.TTFetch, } wds := datastore.NewMapDatastore() diff --git a/extern/sector-storage/sched_resources.go b/extern/sector-storage/sched_resources.go index 6e5d70508..5f7f1cfb8 100644 --- a/extern/sector-storage/sched_resources.go +++ b/extern/sector-storage/sched_resources.go @@ -74,10 +74,12 @@ func (a *activeResources) canHandleRequest(needRes storiface.Resources, wid stor vmemNeeded := needRes.MaxMemory + needRes.BaseMinMemory vmemUsed := a.memUsedMax - if vmemUsed < res.MemUsed+res.MemSwapUsed { - vmemUsed = res.MemUsed + res.MemSwapUsed + workerMemoryReserved := res.MemUsed + res.MemSwapUsed // memory used outside lotus-worker (used by the OS, etc.) + + if vmemUsed < workerMemoryReserved { + vmemUsed = workerMemoryReserved } - vmemAvail := res.MemPhysical + res.MemSwap - vmemUsed + vmemAvail := (res.MemPhysical + res.MemSwap) - vmemUsed if vmemNeeded > vmemAvail { log.Debugf("sched: not scheduling on worker %s for %s; not enough virtual memory - need: %dM, have %dM available", wid, caller, vmemNeeded/mib, vmemAvail/mib) diff --git a/extern/sector-storage/storiface/resources.go b/extern/sector-storage/storiface/resources.go index dd43a37dd..b5f45d722 100644 --- a/extern/sector-storage/storiface/resources.go +++ b/extern/sector-storage/storiface/resources.go @@ -14,7 +14,7 @@ import ( type Resources struct { MinMemory uint64 `envname:"MIN_MEMORY"` // What Must be in RAM for decent perf - MaxMemory uint64 `envname:"MAX_MEMORY"` // Memory required (swap + ram) + MaxMemory uint64 `envname:"MAX_MEMORY"` // Memory required (swap + ram; peak memory usage during task execution) // GPUUtilization specifes the number of GPUs a task can use GPUUtilization float64 `envname:"GPU_UTILIZATION"` diff --git a/extern/sector-storage/testworker_test.go b/extern/sector-storage/testworker_test.go index 581c60d3b..81b1daee3 100644 --- a/extern/sector-storage/testworker_test.go +++ b/extern/sector-storage/testworker_test.go @@ -109,6 +109,7 @@ func (t *testWorker) Info(ctx context.Context) (storiface.WorkerInfo, error) { Resources: storiface.WorkerResources{ MemPhysical: res.MinMemory * 3, MemUsed: res.MinMemory, + MemSwapUsed: 0, MemSwap: 0, CPUs: 32, GPUs: nil,