![](/img/trans.png)
[英]Kubernetes Pod memory usage does not fall when jvm runs garbage collection
[英]Kubernetes pod memory usage programatically
我有一个用例,在我的 jax-rs rest api 中暴露将执行内存密集型操作,例如生成 pdf 并将其作为响应发送。 我想在开始执行业务逻辑之前检查 pod 内存使用情况,如果当前内存使用率 > 50% ,我想向用户发送错误响应,要求他稍后再试。 我如何检查我的 rest api 中的 kubernetes pod 内存使用情况。 甚至有可能吗?
我当前的代码有点像下面。
@Path("/doSomeMemoryStuff")
@Produces("text/plain")
public Response doStuff(){
int memoryUsage = getPodCurrentMemoryUsage(); //Get pod current memory usage
if( memoryUsage <= 50 ) {
//do Some memory intensive operation
}
else{
//memory usage is more than 50 % , return error
return Response.ok("Try again later.").build();
}
}
如何从我的 rest api 中找出 pod 的当前内存使用情况。 提前致谢。
严格来说,我们可以将您的陈述解释为“自动使用 Kubernetes pod 内存” ,因为如果您的进程不时消耗大量需要释放的资源,您可以使用Vertical Pod Autoscaler 。
一些有趣的参考资料:
当一个进程或另一个进程的资源需求非常不同时,使用 VPA 是合适的。
如果不是这种情况(或多或少所有请求将使用已知数量的资源)或者即使您使用 VPA,建议您限制您的服务不接受请求,如果它们正在处理昂贵的操作,Kubernetes 将根据负载自动增加或减少 Pod 的数量,您的用户将收到 503 错误,这正是表明他们现在无法提供服务,应该稍后再试。
也就是说:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.