首页 > 系统相关 >直播平台搭建,Java 内存溢出的排查方法

直播平台搭建,Java 内存溢出的排查方法

时间:2023-12-16 14:11:42浏览次数:24  
标签:Java 直播 内存 query test MyClass com

直播平台搭建,Java 内存溢出的排查方法

JDK 自带命令

jstat -gcutil 33816 250 20 # 监控 jvm 的内存使用情况
jps -ml # 输出虚拟机启动时传递给主类 main() 的参数,输出主类的全名
jmap -F -dump:live,format=b,file=dump.bin 85962 # dump 堆内存
# 分析方法
# 可以使用 VisualVM,主要查看是否存在大对象,然后分析为什么没有被回收
jstack -F -l -m 85962 # 显示虚拟机快照
jstack -l PID >> test.txt
jmap -histo pid # 实时查看JVM对象大小的排序结果,但无法看到对象的具体内容

 

Arthas

# 找到最耗CPU的方法
thread -n 5
# 观察方法的返回
watch com.test.MyClass query returnObj
# 反编译类
jad com.test.MyClass
# 监控调用情况
monitor -c 5 com.test.MyClass query
# 查看分段的调用时间
trace com.test.MyClass query
# 查看方法完整的调用链
stack com.test.MyClass query
# 记录调用现场
tt -t com.test.MyClass query

 

参数检查

-Xms 初始堆大小
-Xmx 最大堆大小
-Xmn 新生代大小
XX:MaxMetaSpaceSize 元数据区大小
Survivor Eden与Survivor区的大小比值

 

以上就是直播平台搭建,Java 内存溢出的排查方法, 更多内容欢迎关注之后的文章

标签:Java,直播,内存,query,test,MyClass,com
From: https://www.cnblogs.com/yunbaomengnan/p/17904784.html

相关文章

  • 直播软件搭建,java代码获取内存信息
    直播软件搭建,java代码获取内存信息一、获取堆外内存@GetMapping("/panama")publicMap<String,Object>panama(){ByteBufferbuffer=ByteBuffer.allocateDirect(1*1024*1024);Map<String,Object>map=newHashMap<>();......
  • java接口自动化系列(01):自动化测试框架设计(入门版)
     本系列汇总,请查看这里:https://www.cnblogs.com/uncleyong/p/17883399.html前言想必很多测试小伙伴自动化都是用的python吧?从当前测试招聘要求可以看到,测试开发就是全栈要求,要想在职场有竞争力,就得多个技术方向逐个提升;而和自动化、测开、性能、白盒等都相关的语言就是java,......
  • Java 字符串、数组、ArrayList转换
    Java字符串、数组、ArrayList之间的相互转换 数组转字符串importjava.util.Arrays;publicclassTest02{publicstaticvoidmain(String[]args){int[]scores1=newint[]{10,20,30,40,50};int[]scores2={10,20,30,40,50};//数......
  • 无涯教程-Java - byte getBytes()函数
    此方法使用平台的默认字符集将此String编码为字节序列,并将输出存储到新的字节数组中。bytegetBytes()-语法publicbyte[]getBytes()bytegetBytes()-返回值此方法返回输出字节数组。bytegetBytes()-示例importjava.io.*;publicclassTest{publicstaticv......
  • java智慧校园物联网平台源码
    智慧校园特征综合运用物联网、大数据、人工智能等新兴技术;构建智能感知环境,构建新式的教务课堂空間,智能识别老师学生群体的学习、工作场景和个体特性;促进教课、学习、管理、生活和文化的流程优化与体统重构;提升教育人才培养质量和教育管理决策水平;建立“可认知、可诊断、可分......
  • 无涯教程-Java - boolean equals(Object anObject)函数
    此方法将此字符串与指定对象进行比较。当且仅当参数不为null并且是一个String对象,表示与此对象相同的字符序列时,输出为true。booleanequals-语法publicbooleanequals(ObjectanObject)这是参数的详细信息-anObject  - 与此字符串进行比较的对象。booleanequals......
  • Java实现文件分片上传、大文件秒传
    一、说说文件上传在Servlet阶段,对于文件上传真的算是噩梦,需要我们自己从request请求作用域中解析formItem,判断是不是表单字段,是的话进行文件上传,不是的话当做正常的数据字段Spring阶段呢,配置文件解析器,我们使用解析好的MultipartFile,很方便,复杂的逻辑Spring帮我们做了但是这两......
  • 前端JavaScript中,对obj对象进行劫持的方式主要有以下几种:
    前端JavaScript中,对obj对象进行劫持的方式主要有以下几种:原型劫持:通过改变对象的原型(prototype)来实现劫持。当一个对象被创建时,它的原型会被存储起来,以便在需要时进行查找。通过将一个对象的原型改为另一个对象或null,可以控制该对象的属性和方法。属性访问劫持:通过在属性访问时......
  • 无涯教程-Java - boolean equalsIgnoreCase(String anotherString)函数
    此方法将此String与另一个String进行比较,而忽略大小写考虑。booleanequalsIgnoreCase-语法publicbooleanequalsIgnoreCase(StringanotherString)这是参数的详细信息-anotherString  - 与该字符串进行比较的字符串。booleanequalsIgnoreCase-返回值如果参数......
  • helloword执行过程,cpu从内存中读取数据
    1.cpu通过地址总线发出指令告诉内存控制器,我要操作哪块内存2.cpu通过控制总线向内存控制器发出读/写指令3.cpu通过数据总线,操作内存鼠标点击HelloWorld运行过程:1.点击鼠标,鼠标会发一个机器变更号---->usb控制器把信号传给---->系统总线---->南桥----->北桥---->cpu......