linux下oom排查 Arthas
2023-12-17 04:56:54
package com.lm.demo.arthas.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
@RestController
@RequestMapping("/test")
public class TestController {
@GetMapping("/test")
public String test() throws InterruptedException {
tst ();
return "ok";
}
void tst () throws InterruptedException {
long i =0;
ArrayList<HeapTest> heapTests = new ArrayList<>();
while (true){
heapTests.add(new HeapTest());
Thread.sleep(100);
System.out.println(++i);
}
}
}
下载运行Arthas
在命令行下面执行(使用和目标进程一致的用户启动,否则可能 attach 失败):
curl -O https://arthas.aliyun.com/arthas-boot.jar
java -jar arthas-boot.jar
很明显,因为方法不可能执行完,它的局部变量heapTests是不会释放的,但又在不停的new,它后面的一个个的new肯定也不会释放,最后肯定会OOM。
用dashbaord就可以看到大致在哪一行代码有问题
文章来源:https://blog.csdn.net/liuming690452074/article/details/134097472
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!