问题排错

总结一下项目上线之后出现问题怎么排错

一下几种问题出现的比较多,其他的问题也会有 不过我不知道

  1. 进程退出
  2. OutofMemory
  3. CPU占用高
一 Java进程被kill

可以jps查看一下进程是否退出
进程退出有很多原因

二 oom

程序运行过程中 ,如果需要的内存超过了jvm分配的内存就会出现这个问题
JVM内存模型

可以搜一个JVM内存模型图

jvm分非堆内存(主要是程序启动就加载的类所存放的空间)、堆内存(这些是存放写程序时候创建对象的空间)、栈内存(线程占用的内存,可以规定每个线程占用多少内存)、堆外内存(类似C语言自己申请的内存,需要自己释放,不被gc管理),4个相加就是程序运行的最小内存
如果程序运行期间超过这个就会出现oom
堆内存分edan、survior、older ,老年代会根据回收机制发生GC
堆内存不够用的时候会经常发生GC
list map存在堆内存
如果使用很大的map可能会发生fullGC,如果是oom问题的话可以检查一下是不是使用了存很多数据的map。

三 cup过高

使用命令查看cpu使用情况 会显示us和sy

us高的情况主要有:

死循环的时候就会占用很高的cpu;
程序逻辑循环过多 复杂度过高;
出现FullGC。

sy高

io操作过多解决方法有:
可以使用缓存
异步io

你可能感兴趣的:(问题排错)