摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 在上篇文章中,介绍了使用tcmalloc或jemalloc定位native内存泄露的方法,但使用这个方法相当于更换了原生内存分配器,以至于使用时会有一些顾虑。 经过一些摸索,发现glibc自带的ptmall 阅读全文
摘要:
> 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 ### 问题现象 7月25号,我们一服务的内存占用较高,约13G,容器总内存16G,占用约85%,触发了内存报警(阈值85%),而我们是按容器内存60%(9.6G)的比例配置的JVM堆内存。看了下其它服务,同 阅读全文
摘要:
> 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 ### 简介 我们组有一个流量较大的Java服务,每次发代码时,服务都会有一小波接口超时,之前简单分析过,发现这些超时的case仅发生在服务刚启动时,少量请求会耗时好几秒,但之后又马上恢复正常。 ### 问题 阅读全文
摘要:
> 原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 ### 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写。其实SQL学起来简单,用起来也简单,但它还是能写出很多变化,这些变化读懂它不难,但要自己Get到这些变化,可能需要想一 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 在之前的OOM问题复盘之后,本周,又一Java服务出现了内存问题,这次问题不严重,只会触发堆内存占用高报警,没有触发OOM,但好在之前的复盘中总结了dump脚本,会在堆占用高时自动执行jstack与jmap 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 在之前的OOM问题复盘中,我们添加了jmap脚本来自动dump内存现场,方便排查OOM问题。 但当我反复模拟OOM场景测试时,发现jmap有时可以dump成功,有时会报错,如下: 经过网上一顿搜索,发现两种原因可 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 上个月,我们一个java服务上线后,偶尔会发生内存OOM(Out Of Memory)问题,但由于OOM导致服务不响应请求,健康检查多次不通过,最后部署平台kill了java进程,这导致定位这次OOM问题也变得困 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 问题发生 上上周,看到一位老哥找我们组同事联调接口,不知道是什么问题,两人坐一起搞了快1个小时,看起来好像有点复杂。 突然,老哥发出一声卧槽,"我传参里的+号,到你这怎么变成了空格!",这个声音很大,我明显的听到 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 问题发生 这周正在写代码,突然,旁边小哥问我个问题... 小哥:我这有个接口,自己调用没有问题,但别人调用就不行,这种问题该如何排查? 我:抓下包看看呢... 小哥:是这样使用tcpdump吗? 我:是的 待小哥 阅读全文
摘要:
原创:扣钉日记(微信公众号ID:codelogs),欢迎分享,非公众号转载保留此声明。 简介 现如今,有两种常见的软件资源几乎成了Java后端程序的标配,即线程池与连接池,但这些池化资源非常的重要,一旦不够用了,就会导致程序阻塞、性能低下,所以有时我们需要看看它们的使用情况,以判断这里是否是瓶颈。 阅读全文