性能诊断与调优
文章平均质量分 88
深山猿
不断进化的深山猿
展开
-
lamada表达式、stream、collect整理
lamada表达式、stream、parallelStream、collect整理原创 2023-02-10 16:22:20 · 692 阅读 · 0 评论 -
pod的内存一直增加原因与解决
channel内存配置:6G-8G容器内top的结果:阿里云memory使用量:https://www.jianshu.com/p/c0d5a40fe9e8channel内存告警的原因:channel负责评测文件的读取,这个是频繁的操作。Linux下经常会遇到buff/cache内存占用过多问题,尤其是使用云主机的时候最严重,由于很多是虚拟内存,因此如果buff/cache占用过大的,free空闲内存就很少,影响使用;通常内存关系是:普通机器:t...原创 2022-02-07 13:58:51 · 14336 阅读 · 0 评论 -
sentinel、isitio、hystrix 限流熔断降级
限流:统计和限制访问次数熔断:服务出错或响应过慢时,直接返回错误信息,或者返回历史数据、默认数据等。降级:干掉次要功能,保留主要功能sentinel详细文档https://sentinelguard.io/zh-cn/docs/circuit-breaking.htmlistio文档https://istio.io/latest/docs/tasks/traffic-management/circuit-breaking/sentinel vs hystrix发展前景Netflix已原创 2021-11-17 14:56:16 · 4554 阅读 · 0 评论 -
rpc接口并发调用实例与方法内部声明线程池导致的oom
问题背景需要根据id通过rpc调用查询具体信息,因为没有提供批量查询的接口,所以做法是挨个遍历查询,那意味着:如果有100个id,就需要顺序进行100次rpc调用,假设每次rpc接口的调用时间是50ms(这个速度很快了),那单单rpc调用就要占用5s,所以接口的响应会非常慢。下面进行优化。优化方案:方案一:让服务方提供批量查询接口,需要服务提供方配合,这里暂不采用。方案二:rpc服务的调用由顺序调用修改为并行调用,采用线程池实现rpc的并发调用。具体实现如下:1)创建线程的类public原创 2020-10-21 09:32:11 · 3410 阅读 · 0 评论 -
机器内存过高定位与机器调整
api机器内存持续很高,60%-70%,成为服务器指标中最差的指标,按道理使用高峰期能达到这个值,低峰期减半(即低于30%)才合适1)内存使用过高定位过程top 找到mem使用最高的进程KiB Mem : 15731936 total, 2667520 free, 9458472 used, 3605944 buff/cacheKiB Swap: 0 total, 0 free, 0 used. 5953500 avail MemPID USE...原创 2020-08-12 15:31:19 · 478 阅读 · 0 评论 -
CPU飙升问题的解决实例
项目使用现象:web项目,页面打开特别慢,反正就是慢。平常打开页面需要0.5s,现在需要3-5秒进入服务器(4核8G内存)查看原因:top发现:但是cpu波动过大,使用平常在 10%左右,会突然飙升到100%、200%甚至300%jmap -heap pid jvm内存已使用99.9%。jstat 发现发生了大量的fullgc.所以即使存在OOM,也是响应很慢,不会停止提供服务...原创 2020-01-10 14:07:01 · 5420 阅读 · 1 评论 -
java安全 docker支持
jvm运行在docker之类的容器中会有哪些问题?Docker之类容器和虚拟机非常相似:Docker 并不是一种完全的虚拟化技术,而更是一种轻量级的隔离技术。如下图虚拟机会独立运行一个操作系统,容器则没有,仅仅是使用隔离的技术;所以容器省略了虚拟操作系统的开销,实现了轻量级的目标;Java 平台来说,容器带来了很多意外的困难,主要体现在几个方面:第一,容器环境对于计算资源的管理方式是全...原创 2019-10-31 22:28:27 · 222 阅读 · 0 评论 -
后台服务明显变慢?怎么诊断?
一直慢:系统资源:内存 cpu io是否被别的服务占用应用资源:内存耗尽:codeCache jit中的编译的代码结果无处存储,导致一直解释执行了受到了攻击,cpu被占用 如 dom数据量\用户量\接口调用次数增加偶尔突然变慢:GC导致,gc频率和时间发生了大量的异常,有异常日志分析网络原因,网络抖动如果还不能确定具体问题,对应用进行 Profiling 也是个办法,但因为...原创 2019-10-31 22:24:44 · 328 阅读 · 0 评论 -
top和iostat指令的使用,linux负载,swap与内存,io
怎么查看机器IO占用情况?iostat 或 sar怎么查看机器网络状况?dstattop指令一.信息显示Linux系统可以通过top命令查看系统的CPU、内存、运行时间、交换分区、执行的线程等信息。通过top命令可以有效的发现系统的缺陷出在哪里。是内存不够、CPU处理能力不够、IO读写过高….[root@foundation6 docker]# toptop - 21:...原创 2019-05-24 18:42:31 · 3177 阅读 · 0 评论