1. 故障排除oom记录

    在完成这个项目的时候涉及了oom问题的线上排查,是这样的:我把项目上传到了新的更大内存的服务器上运行后反应文章接口无法正常使用,收到第一次的报错后我首先排查了网络连通性能,没有问题,然后我把微服务重启了一次,接口就恢复了但是过了大约十分钟时间就再次挂掉,避免问题影响扩大,我首先改了注册中心的地址,将服务指向原有ip 因为上线的时候在启停脚本中增加了dump参数,把日志记录到了app.dump中然后我在日志中搜索了一下发现有若干出出现了内存溢出错误,但是最要命的一点在于每次oom的错误位置不一样: 我依次排查了以下原因:内存加载数据量过大 例如不受行数限制的数据库查询语句,或者不限制字节数的文件读取等,事故系统显然没有这些情况; 内存泄漏(资源未关闭/无法回收) 当系统存在大量未关闭的 IO 资源,或者错误使用ThreadLocal等场景时也会发生OOM,经排查,也不存在这种情况; 都不是我继续排查了机器内存大小发现8g的服务器java只占用了4g 最后我再排查启停脚本的时候发现了问题:因为升级了服务器内存我错把jvm堆区内存结构设计为-Xms4g -Xmx4g -Xmn4g -Xmn参数设置成与-Xmx参数一样的大小导致了服务器在以下情况中不停的触发fullgc: 当堆区被 Young Gen 完全挤占,又有对象想要升代到 Old Gen 时,发现 Old 区空间不足,于是触发 Full GC,触发 Full GC 以后呢,通常又会面临两种情况:

    2024/05/15

  2. Kafka消息队列

    Kafka消息队列

    2024/03/28

  3. Springboot

    SpringBoot

    2024/01/29

  4. Spring aop

    Spring-AOP面向切面与Spring事务

    2024/01/07

  5. Redis分布式缓存

    Redis分布式缓存

    2024/01/01

  6. Goodbye,2023

    Goodbye,2023

    2023/12/31

  7. Spring注解开发

    Spring_day02

    2023/12/27

  8. Spring_ioc与di

    Spring IOC,DI与纯注解开发

    2023/12/26

  9. SpringCloud|SpringCloud微服务

    SpringCloud01|微服务

    2023/12/15 Java

  10. Springcloudnacos注册中心与集群搭建

    SpringCloud|Nacos注册中心与集群搭建

    2023/12/15