今天开发小伙伴给我说,哥,你帮我看下吧,系统无缘无故的宕机了。之前跑了一个多月好好的。 我问了下这台机器的配置是啥? 虚拟机:1核2G jvm配置:xms:1gxmx:1g 我就开始着手查看 监控指标怎么样?    监控系统这两天在升级,暂时看不了;   开发反馈,load在1左右,cpu高峰也就80%,我先信了。 现场有无保留(堆栈信息)?    没有OOM的输出 gc日志有没有?   有,gc看着都正常 jvm的errorFile呢? 没有配置。 好吧…

2021/06/08 0条评论 897点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 基于springcloud的灰度实现方案(一) 基于springcloud的灰度实现方案(二) 前两篇介绍了灰度方案以及灰度的实现,这篇从feign底层调用上分析一下是如何实现的。 首先,我们在feign调用时,使用了FeignClient注解。 #接口调用@FeignClient("demo-service")public interface DemoServiceFeginClie…

2021/05/20 0条评论 1575点热度 1人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 基于springcloud的灰度实现方案(一) 该项目已经上传到github上,地址如下: https://github.com/yxkong/springboot-gray 项目说明 通过eureka的扩展元数据,标记服务是灰度服务 重写Ribbon的RoundRobinRule轮训算法实现灰度路由 项目结构说明 必须有一个eureka lb-common 公共包 com.yxkon…

2021/05/19 0条评论 990点热度 0人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 前言 目前所有的服务都是基于springboot/springcloud体系,注册中心使用eureka。 背景: 新的功能上线后,特别是大版本上线,不能完全保证新功能的质量,特别是对历史用户,数据差异性比较大,又无法复现; 为了测试哪套流程的转化率比较高; 想要的效果 这里就会有以下几个问题: 如果识别是灰度用户?  如何识别是灰度服务? 如何让灰度用户走灰度服务? 如何让灰…

2021/05/18 0条评论 967点热度 0人点赞 阅读全文

问题回顾 4月2日 开发发现专有云的用户rds实例链接数报警,并于中午发起了数据库配置变更申请; 4月8日14:00 某云在场运维巡检,发现该实例有中断的任务,尝试补偿执行失败; 4月8日14:23 某云在场运维直接手动操作跳过一些步骤,将中断任务继续执行; 4月8日17:30,许久没消息的报警群,突然收到一堆报警,用户系统提示:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException,其他系统提示调用用户系统Read timed out,后续又报Connect…

2021/05/07 0条评论 893点热度 0人点赞 阅读全文

业务系统从公有云在迁移到专有云后,有几台服务器一直有问题,直接导致迁移进度无进展。通过 jstat -gcutil pid 5000 查看,发现应用程序的老年代已满,fullgc一直在增长,反而ygc很小。 猜测: 对象生成没有经过年轻代,直接进了老年代,程序里有大对象; 年轻代里没有连续的空间,导致无法创建数组直接进入老年代; 然后 jmap -heap pid 查看到应用的堆有2g,但是新生代只有167MB,新生代太小,不符合1:2的配置 Server compiler detected.JVM version…

2021/04/26 0条评论 974点热度 0人点赞 阅读全文

项目地址:https://github.com/yxkong/agent 目前已实现对线程池、jvm的监控; 主要是在线程池创建时,对线程池进行增强,将线程池强引用到bootstrap-load-client-0.1.jar中的ThreadPoolMonitorData里。 使用此包的前提是线程池是固定资源,启动后不会销毁,如果动态创建线程池并销毁,需要调用shutdown或者shutdowNow,这块已实现对对强引用的解除,否则因为这块强引用导致资源无法释放,没法被gc回收 bootstrap-load…

2021/04/21 0条评论 890点热度 2人点赞 阅读全文

5ycode 被管理耽误的架构师。工作、学习过程中的知识总结与分享,jvm,多线程,架构设计,经验分享等。 28篇原创内容 公众号 读了Java线程池实现原理及其在美团业务中的实践 后,我就想一个问题,如果让我去做这个线程池的监控,我该怎么做? 要对线程池进行监控,首先得明白,我们监控线程池的目的是什么? 监控是为了防患于未然,防止生产事故的发生。或者能在未发生时就进行入状态。 出问题线程池的现象: 线程池异步处理,消费速度过慢,导致任务积压,响应过慢,或者队列有限,导致提交被拒绝; 使用线程池做并行请求…

2021/04/20 0条评论 875点热度 0人点赞 阅读全文

事故一,jvm相关 大对象(运营商数据;数据库查询未加查询条件,结果集过大;第三方接口或异步消息);来回转化 死循环; 推文并发量大 String.intern() 导致oom static字符串拼接 导致oom 堆内存过小 ConcGCThreads 线程过多,stw,导致性能上不去 jvm配置问题,堆、对象晋升(进入老年代过快或过慢) 额度服务因stw停顿过长导致程序性能不稳定 堆外内存过大; 堆外内存,人脸ocr服务,照片上传 排查方法: jmap -heap 查看进程jvm的使用情况jmap -histo …

2021/04/07 0条评论 1065点热度 0人点赞 阅读全文

这几天玩了下消息公众号,写了几篇文章,也群发了下,用了以后发现和我想象的不太一样。 先把我在这个过程中的问题回想一下吧。 公众号不群发不会对外展示; 公众号预览为什么有有效期,还限制访问人?; 公众号群发后,修改消息保存,信息不会同步到已群发的消息里; 已群发的消息不能撤回,只能删除; 上图分析下。 经过分析得出以下结论: 1,对外展示的都是生成的静态页面; 2,预览是生成了有有效期的缓存,过期失效; 3,除了修改错别人,工作号不允许修改内容(可能是静态文件生产以及cdn加速的成本较高); 4,撤回对于接收消息的用…

2021/04/07 0条评论 884点热度 0人点赞 阅读全文
123458