问题排错

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

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

  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

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 43,031评论 11赞 349
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,974评论 0赞 11
  • 张量(Tensor)是一个定义在的一些向量空间和一些对偶空间的笛卡儿积上的多重线性映射,其坐标是|n|维空间内,有...
    keaidelele阅读 2,829评论 0赞 51
  • 刚才来医院量体温的时候,又烧到38.8,眼泪没控制住,那是恐惧,当时涌上来一种特别绝望的情绪,就是那种我会不会死的...
    苏向晚阅读 276评论 0赞 0
  • 孤灯,背着书包从宿舍向教学楼走去,偌大的校园里没有几个学生,因为时间已经是晚上八点,大多数人都在图书馆或者教室,路...
    俞潜沉阅读 234评论 0赞 2

友情链接更多精彩内容