草庐IT

jvm调优

全部标签

字节码调试的入口 —— JVM 的寄生插件 javaAgent 那些事

JavaInstrumentation包JavaInstrumentation概述JavaInstrumentation这个技术看起来非常神秘,很少有书会详细介绍。但是有很多工具是基于Instrumentation来实现的:APM产品:pinpoint、skywalking、newrelic、听云的APM产品等都基于Instrumentation实现热部署工具:Intellijidea的HotSwap、Jrebel等Java诊断工具:Arthas、Btrace等由于对字节码修改功能的巨大需求,JDK从JDK5版本开始引入了java.lang.instrument 包。它可以通过addTrans

尚硅谷-宋红康-JVM上中下篇完整笔记-JVM上篇_内存与垃圾回收篇

前言一.jvm及java体系结构1.Java及JVM简介TIOBE语言热度排行榜https://www.tiobe.com/tiobe-index/世界上没有最好的编程语言,只有最适用于具体应用场景的编程语言。java:跨平台的语言JVM:跨语言的平台随着Java7的正式发布,Java虚拟机的设计者们通过JSR-292规范基本实现在Java虚拟机平台上运行非Java语言编写的程序.Java虚拟机根本不关心运行在其内部的程序到底是使用何种编程语言编写的,它只关心"字节码"文件.也就是说java虚拟机拥有语言无关性,并不会单纯地与Java语言"终身绑定",只要其他编程语言的编译结果满足并包含Jav

形象谈JVM-第二章-认识编译器

我在上一章《形象谈JVM-第一章-认识JVM》提到的“翻译”,其实就是我们今天所说的“编译”的概念。上一章原文链接:https://www.cnblogs.com/xingxiangtan/p/17617654.html原文:【虚拟机的职责是将字节码翻译成对应系统能够识别并执行的机器码,比如在linux系统,java文件被javac编译器翻译成字节码文件(class文件),jvm将字节码文件翻译成linux能够识别并执行的机器码文件,这样java程序便能够被运行起来了。java文件是咱人类能看懂的文件,字节码文件是虚拟机能看懂的文件,机器码文件是CPU能看懂的文件。】本文将分为两个部分来展开,

Prometheus监控指标查询性能调优

一、背景在《SRE:Google运维解密》一书中作者指出,监控系统需要能够有效的支持白盒监控和黑盒监控。黑盒监控只在某个问题目前正在发生,并且造成了某个现象时才会发出紧急警报。“白盒监控则大量依赖对系统内部信息的检测,如系统日志、抓取提供指标信息的HTTP节点等。白盒监控系统因此可以检测到即将发生的问题及那些重试所掩盖的问题等”。为了完善系统的白盒监控,会员团队基于Prometheus+Grafana开源组件构建了监控告警平台。最近一段时间在查询监控指标时遇到了性能瓶颈,表现为一些监控页面的图表加载特别慢,查询近7天的监控数据就会失败,极大的降低了开发人员的工作效率。 二、排查1.初步排查 选

Elasticsearch 性能调优指南

目录1、通用优化策略1.1通用最小化法则1.2职责单一原则1.3其他2、写性能调优2.1基本原则2.2优化手段2.2.1增加flush时间间隔,2.2.2增加refresh_interval的参数值2.2.3增加Buffer大小,2.2.4关闭副本2.2.5禁用swap2.2.6使用多个工作线程2.2.7避免使用稀疏数据2.2.8max_result_window参数3、查询调优3.1读写性能不可兼得3.2优化手段3.2.1避免单次召回大量数据3.2.2避免单个文档过大3.2.3单次查询10条文档好于10次查询每次一条3.2.4数据建模3.2.5给系统留足够的内存3.2.6预索引3.2.7使用

Go性能调优及相关工具使用(四)——性能调优工具pprof的使用

文章目录一、本次学习重点内容:本堂课的知识要点有哪些?1、性能发现工具pprof2、性能调优案例二、详细知识点介绍:1、性能调优简介性能调优原则:2、性能发现工具pprof说明:pprof功能简介3、pprof排查实战CPU:使用任务管理器:使用pprof工具:调用关系可视化:命令:webHeap堆内存:进入可视化pprof:top视图:source视图:注释问题代码后:goroutine——协程查看协程数:进入可视化pprof:火焰图查看source视图:注释问题代码后:mutex——锁查看锁数:进入可视化pprof:source视图:注释问题代码后:block——阻塞查看阻塞数:进入可视化

【JVM】JVM内存模型详解

一、JVM是什么?JVM是JavaVirtualMachine(Java虚拟机)的缩写,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。由一套字节码指令集、一组寄存器、一个栈、一个垃圾回收堆和一个存储方法域等组成。JVM屏蔽了与操作系统平台相关的信息,使得Java程序只需要生成在Java虚拟机上运行的目标代码(字节码),就可在多种平台上不加修改的运行,这也是Java能够“一次编译,到处运行的”原因。二、JVM内存模型图三、JVM运行数据区详解JVM运行数据区分为虚拟机栈、本地方法栈、程序计数器、堆区、元空间(方法区)五部分。其中虚拟机栈、本地方法栈和程序计数器属于线程私有,而堆、元空间属

Flink 优化(六) --------- FlinkSQL 调优

目录一、设置空闲状态保留时间二、开启MiniBatch三、开启LocalGlobal四、开启SplitDistinct五、多维DISTINCT使用Filter六、设置参数总结FlinkSQL官网配置参数:https://ci.apache.org/projects/flink/flink-docs-release-1.13/dev/table/config.html一、设置空闲状态保留时间FlinkSQL新手有可能犯的错误,其中之一就是忘记设置空闲状态保留时间导致状态爆炸。列举两个场景:➢FlinkSQL的regularjoin(inner、left、right),左右表的数据都会一直保存在状

elasticsearch 一次性查询数据量过大 jvm内存快速占用满 导致集群无响应

近期因为生产上es集群出现了内存快速占用满、频繁gc、集群无响应的现象,查看集群日志和满查询日志,发现都是因为频繁gc集群无响应后出现的报错、gc高频的警告以及平时不慢的查询报文出现在慢查询日志里。看kibana的监控,发现内存几乎是在几秒内就占用满,并且满了以后,由于可用内存不足就开始频繁的fullgc,cpu居高不下,集群此时基本在无法响应的状态,有遇到这种情况,只能重启才能解决,无法自己恢复,内存虽然已经占用满,但是集群日志中没有OOM的异常,而且出现的概率比较随机。由于之前没有遇到过这个问题,所以想能不能通过prometheus的监控来看是不是在集群异常时有一些异常指标,没想到部署好以

elasticsearch 一次性查询数据量过大 jvm内存快速占用满 导致集群无响应

近期因为生产上es集群出现了内存快速占用满、频繁gc、集群无响应的现象,查看集群日志和满查询日志,发现都是因为频繁gc集群无响应后出现的报错、gc高频的警告以及平时不慢的查询报文出现在慢查询日志里。看kibana的监控,发现内存几乎是在几秒内就占用满,并且满了以后,由于可用内存不足就开始频繁的fullgc,cpu居高不下,集群此时基本在无法响应的状态,有遇到这种情况,只能重启才能解决,无法自己恢复,内存虽然已经占用满,但是集群日志中没有OOM的异常,而且出现的概率比较随机。由于之前没有遇到过这个问题,所以想能不能通过prometheus的监控来看是不是在集群异常时有一些异常指标,没想到部署好以