1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

Merge pull request #21760 from hqhq/hq_minimum_reservation

Add minimum limit for memory reservation
This commit is contained in:
David Calavera 2016-04-08 07:58:28 -07:00
commit e626011bfb
2 changed files with 8 additions and 0 deletions

View file

@ -355,6 +355,9 @@ func verifyContainerResources(resources *containertypes.Resources, sysInfo *sysi
logrus.Warnf("Your kernel does not support memory soft limit capabilities. Limitation discarded.") logrus.Warnf("Your kernel does not support memory soft limit capabilities. Limitation discarded.")
resources.MemoryReservation = 0 resources.MemoryReservation = 0
} }
if resources.MemoryReservation > 0 && resources.MemoryReservation < linuxMinMemory {
return warnings, fmt.Errorf("Minimum memory reservation allowed is 4MB")
}
if resources.Memory > 0 && resources.MemoryReservation > 0 && resources.Memory < resources.MemoryReservation { if resources.Memory > 0 && resources.MemoryReservation > 0 && resources.Memory < resources.MemoryReservation {
return warnings, fmt.Errorf("Minimum memory limit should be larger than memory reservation limit, see usage") return warnings, fmt.Errorf("Minimum memory limit should be larger than memory reservation limit, see usage")
} }

View file

@ -615,6 +615,11 @@ func (s *DockerSuite) TestRunWithMemoryReservationInvalid(c *check.C) {
c.Assert(err, check.NotNil) c.Assert(err, check.NotNil)
expected := "Minimum memory limit should be larger than memory reservation limit" expected := "Minimum memory limit should be larger than memory reservation limit"
c.Assert(strings.TrimSpace(out), checker.Contains, expected, check.Commentf("run container should fail with invalid memory reservation")) c.Assert(strings.TrimSpace(out), checker.Contains, expected, check.Commentf("run container should fail with invalid memory reservation"))
out, _, err = dockerCmdWithError("run", "--memory-reservation", "1k", "busybox", "true")
c.Assert(err, check.NotNil)
expected = "Minimum memory reservation allowed is 4MB"
c.Assert(strings.TrimSpace(out), checker.Contains, expected, check.Commentf("run container should fail with invalid memory reservation"))
} }
func (s *DockerSuite) TestStopContainerSignal(c *check.C) { func (s *DockerSuite) TestStopContainerSignal(c *check.C) {