https://blog.csdn.net/u014730165/article/details/81984523(详情链接)
1.通过top指令查看各进程cpu和内存的使用情况
2.查询当前java进程详情,利用 jinfo pid 5511
Command line 可以看出JVM 用户输入参,对整个jvm的信息进行消息的描述
3.查看当前gc情况: jstat gcacuse 5511
4.查看当前jvm 内存分配: jmap -heap 5511
从JVM的分配可以看出,新生代分配:capacity = 628162560 (599.0625MB),Eden Space:capacity = 558432256 (532.5625MB),老年代分配:capacity = 5744558080 (5478.4375MB)。从数据分析出,新生代设计过小,导致新生代频繁gc。其次,新生代设计过小,导致大对象无法分配,直接分配到老年代。导致老年代空间占用过大,从而占用整个系统内存空间。可能导致其他服务内存不足。
5.线上手动GC,查看GC后的JVM详情信息