我目前正在使用 Prometheus 来监控系统指标,但最近我发现它因 OOM 而崩溃。
版本: prometheus-2.25.2.linux-amd64
我在 16GB
Ram 上运行它。 - 这还不够吗?
有没有办法限制这个作业使用的内存?我如何供应需要多少?
日志片段:
fatal error: runtime: out of memory
runtime stack:
runtime.throw(0x2b5e6f7, 0x16)
/usr/local/go/src/runtime/panic.go:1116 +0x72
runtime.sysMap(0xc368000000, 0x4000000, 0x4484378)
/usr/local/go/src/runtime/mem_linux.go:169 +0xc6
runtime.(*mheap).sysAlloc(0x4468a20, 0x3c00000, 0x42c0d7, 0x4468a28)
/usr/local/go/src/runtime/malloc.go:727 +0x1e5
runtime.(*mheap).grow(0x4468a20, 0x1c29, 0x0)
/usr/local/go/src/runtime/mheap.go:1344 +0x85
runtime.(*mheap).allocSpan(0x4468a20, 0x1c29, 0x430100, 0x4484388, 0x200000001)
/usr/local/go/src/runtime/mheap.go:1160 +0x6b6
runtime.(*mheap).alloc.func1()
/usr/local/go/src/runtime/mheap.go:907 +0x65
runtime.(*mheap).alloc(0x4468a20, 0x1c29, 0xc0ec240101, 0xc180109400)
/usr/local/go/src/runtime/mheap.go:901 +0x85
runtime.largeAlloc(0x3850428, 0x470101, 0x1)
/usr/local/go/src/runtime/malloc.go:1177 +0x92
runtime.mallocgc.func1()
/usr/local/go/src/runtime/malloc.go:1071 +0x46
runtime.systemstack(0xc06275e370)
/usr/local/go/src/runtime/asm_amd64.s:370 +0x66
runtime.mstart()
/usr/local/go/src/runtime/proc.go:1116
感谢您帮助解决问题。