摘要: Stream Stream是在Java SE 8 API添加的用于增强集合的操作接口,可以让你以一种声明的方式处理集合数据。将要处理的集合看作一种流的创建者,将集合内部的元素转换为流并且在管道中传输, 并且可以在管道的节点上进行处理, 比如筛选,排序,聚合等。元素流在管道中经过中间操作(interm 阅读全文
posted @ 2020-10-20 20:42 AI乔治 阅读(1480) 评论(0) 推荐(0) 编辑
摘要: 带着问题,看源码针对性会更强一点、印象会更深刻、并且效果也会更好。所以我先卖个关子,提两个问题(没准下次跳槽时就被问到)。 我们可以用ByteBuffer的allocateDirect方法,申请一块堆外内存创建一个DirectByteBuffer对象,然后利用它去操作堆外内存。这些申请完的堆外内存, 阅读全文
posted @ 2020-10-20 20:40 AI乔治 阅读(265) 评论(0) 推荐(0) 编辑
摘要: 在一台虚拟机上执行docker java应用,每隔一段时间就会出现java进程消失、而且没有任何jvm error log的情况。 略一寻思,应该是遇到网上常说的Linux OOM的情况:虚拟机10G,docker默认分配内存未做限制。 原因定位 去服务器上执行:dmesg | grep java, 阅读全文
posted @ 2020-10-20 20:38 AI乔治 阅读(528) 评论(0) 推荐(0) 编辑
摘要: 前言 最近在写一些业务代码时遇到一个需要产生随机数的场景,这时自然想到 jdk 包里的 Random 类。但出于对性能的极致追求,就考虑使用 ThreadLocalRandom 类进行优化,在查看 ThreadLocalRandom 实现的过程中,又追了下 Unsafe 有部分代码,整个流程下来,学 阅读全文
posted @ 2020-10-20 20:37 AI乔治 阅读(398) 评论(0) 推荐(0) 编辑
摘要: 背景介绍 某日下午大约四点多,接到合作方消息,线上环境,我这边维护的某http服务突然大量超时(对方超时时间设置为300ms),我迅速到鹰眼平台开启采样,发现该服务平均QPS到了120左右,平均RT在2秒多到3秒,部分毛刺高达5到6秒(正常时候在60ms左右)。 qps情况: rt情况 问题解决 该 阅读全文
posted @ 2020-10-20 20:35 AI乔治 阅读(652) 评论(0) 推荐(0) 编辑
摘要: 一、项目介绍 web_rec_comm_ctr 背景: 去年接手了一个排序服务,用于播单、声音、主播排序。接手以来处理过内存溢出问题,后面也没再出现过其他状况。但是最近该项目用于离线任务计算后,出现了问题。并且问题发生时间是在计算量扩量之后。 项目背景: 该项目与算法的配合方式:项目提供接口规范,涉 阅读全文
posted @ 2020-10-20 20:33 AI乔治 阅读(376) 评论(0) 推荐(0) 编辑
摘要: 现象 策划反应服务器进不去,远程看了一下进程消失了(crash),有时候也会出现能登录,但是无法执行操作(进程还在),无法被正常shutdown,进程根目录下出现了java_pid16298.hprof文件,一看到就是内存溢出了,觉得奇怪,应该不会是堆内存溢出,因为人数不多,初步怀疑是永久区溢出(J 阅读全文
posted @ 2020-10-20 20:31 AI乔治 阅读(807) 评论(0) 推荐(0) 编辑
摘要: 现象 最近接手了一个同事的项目,某一天接口的响应耗时突然增加了很多,由几十ms 增加到了几十秒。 首先查看机器上的日志,有调用第三方接口超时,查询数据库超时。立马查看第三方接口监控和数据库监控,一切正常。可能由于 GC 停顿造成统计的超时,这个时候我们通过 jstat -gcutil pid 查看 阅读全文
posted @ 2020-10-20 20:30 AI乔治 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 问题 无限循环的while会导致CPU使用率飙升吗? 经常使用Young GC会导致CPU占用率飙升吗? 具有大量线程的应用程序的CPU使用率是否较高? CPU使用率高的应用程序的线程数是多少? 处于BLOCKED状态的线程会导致CPU使用率飙升吗? 分时操作系统中的CPU是消耗us还是sy? 思路 阅读全文
posted @ 2020-10-20 20:29 AI乔治 阅读(563) 评论(0) 推荐(0) 编辑
摘要: 1. 问题背景 某核心JAVA长连接服务使用mongodb作为主要存储,客户端数百台机器连接同一mongodb集群,短期内出现多次性能抖动问题,此外,还出现一次“雪崩”故障,同时流量瞬间跌零,无法自动恢复。本文分析这两次故障的根本原因,包括客户端配置使用不合理、mongodb内核链接认证不合理、代理 阅读全文
posted @ 2020-10-20 20:28 AI乔治 阅读(328) 评论(0) 推荐(0) 编辑
摘要: 通过这一个多月的努力,将FullGC从40次/天优化到近10天才触发一次,而且YoungGC的时间也减少了一半以上,这么大的优化,有必要记录一下中间的调优过程。 对于JVM垃圾回收,之前一直都是处于理论阶段,就知道新生代,老年代的晋升关系,这些知识仅够应付面试使用的。前一段时间,线上服务器的Full 阅读全文
posted @ 2020-10-20 20:26 AI乔治 阅读(643) 评论(3) 推荐(2) 编辑

作者微信号:wm1106701116 (备注:博客园) 加入微信架构群,获取架构师学习资料。