本文整理匯總了Golang中github.com/cloudfoundry-incubator/garden/warden.Container.LimitMemory方法的典型用法代碼示例。如果您正苦於以下問題:Golang Container.LimitMemory方法的具體用法?Golang Container.LimitMemory怎麽用?Golang Container.LimitMemory使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/cloudfoundry-incubator/garden/warden.Container
的用法示例。
在下文中一共展示了Container.LimitMemory方法的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1:
fakeConnection.WhenLimitingDisk = func(handle string, limits warden.DiskLimits) (warden.DiskLimits, error) {
return warden.DiskLimits{}, disaster
}
})
It("returns the error", func() {
err := container.LimitDisk(warden.DiskLimits{})
Ω(err).Should(Equal(disaster))
})
})
})
Describe("LimitMemory", func() {
It("sends a limit bandwidth request", func() {
err := container.LimitMemory(warden.MemoryLimits{
LimitInBytes: 1,
})
Ω(err).ShouldNot(HaveOccurred())
Ω(fakeConnection.LimitedMemory("some-handle")).Should(ContainElement(
warden.MemoryLimits{
LimitInBytes: 1,
},
))
})
Context("when the request fails", func() {
disaster := errors.New("oh no!")
BeforeEach(func() {
fakeConnection.WhenLimitingMemory = func(handle string, limits warden.MemoryLimits) (warden.MemoryLimits, error) {
示例2:
go streamNumbersTo(receivedNumbers, stream)
lastNum := 0
for num := range receivedNumbers {
Expect(num).To(BeNumerically(">", lastNum))
lastNum = num
}
close(done)
}, 10.0)
})
})
Describe("a memory limit", func() {
It("is still enforced", func() {
err := container.LimitMemory(warden.MemoryLimits{32 * 1024 * 1024})
Expect(err).ToNot(HaveOccurred())
restartServer()
_, stream, err := container.Run(warden.ProcessSpec{
Script: "exec ruby -e '$stdout.sync = true; puts :hello; puts (\"x\" * 64 * 1024 * 1024).size; puts :goodbye; exit 42'",
})
Expect(err).ToNot(HaveOccurred())
// cgroups OOM killer seems to leave no trace of the process;
// there's no exit status indicator, so just assert that the one
// we tried to exit with after over-allocating is not seen
stdout, _, exitStatus := readUntilExit(stream)
Expect(stdout).To(Equal("hello\n"))