目录


吞吐量及响应时间

什么是调优

调优,从规划开始

优化环境


吞吐量及响应时间

①吞吐量:用户代码时间/(用户代码时间+垃圾回收时间)。吞吐量越大,说明干正经事的时间占比越高;

② 响应时间:STW(stop the world)越短,响应时间越好。

什么是调优

  1. 根据需求进行JVM规划和预调优

  2. 优化运行JVM运行环境

  3. 解决JVM运行过程中出现的各种问题

所谓调优,首先要确定追求的是啥?是吞吐量优先还是响应时间优先?或者是在满足一定的响应时间的前提下,要求达到一定的吞吐量?有的放矢才能做好调优这活!

如果是选择吞吐量优先,一般选择的是PS+PO这个组合

调优,从规划开始

  • 调优,从业务场景开始,没有业务场景的调优都是耍流氓 压测

  • 无监控,不调优

  • 步骤:

    1. 熟悉业务场景(没有最好的垃圾回收器,只有最合适的垃圾回收器)

      1. 响应时间、停顿时间 [CMS G1 ZGC] (需要给用户作响应)

      2. 吞吐量 = 用户时间 /( 用户时间 + GC时间) [PS]

    2. 选择回收器组合

    3. 计算内存需求(经验值 1.5G 16G)

    4. 设定年代大小、升级年龄

    5. 设定日志参数

      1. -Xloggc:/opt/xxx/logs/xxx-xxx-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCCause

      2. 或者每天产生一个日志文件

    6. 观察日志情况

  • 案例1:垂直电商,最高每日百万订单,处理订单系统需要什么样的服务器配置?

    这个问题比较业余,因为很多不同的服务器配置都能支撑(1.5G 16G)

    1小时360000集中时间段, 100个订单/秒

    经验值,

    专业一点儿问法:要求响应时间100ms

  • 案例2:12306遭遇春节大规模抢票应该如何支撑?

    12306应该是中国并发量最大的秒杀网站:

    号称并发量100W最高

    CDN -> LVS -> NGINX -> 业务系统 -> 每台机器1W并发 100台机器

    普通电商订单 -> 下单 ->订单系统(IO)减库存 ->等待用户付款

    12306的一种可能的模型: 下单 -> 减库存 和 订单(redis kafka) 同时异步进行 ->等付款

    减库存最后还会把压力压到一台服务器

    可以做分布式本地库存 + 单独服务器做库存均衡

  • 怎么得到一个事务会消耗多少内存?

    1. 弄台机器,看能承受多少TPS?是不是达到目标?扩容或调优,让它达到

    2. 用压测来确定

优化环境

  1. 有一个50万PV的资料类网站(从磁盘提取文档到内存)原服务器32位,1.5G 的堆,用户反馈网站比较缓慢,因此公司决定升级,新的服务器为64位,16G 的堆内存,结果用户反馈卡顿十分严重,反而比以前效率更低了 为什么? 如何优化?

  2. 系统CPU经常100%,如何调优?

JVM 调优实战--什么是调优及如何调优的思路相关推荐

  1. 从蚂蚁金服裸辞,京东三面遭调优猛击,闭关俩月啃完653页性能调优实战手册,拿到京东offer

    性能优化是很多 Java 程序员希望彻底掌握的一门技能.很多人都想学好性能优化,希望能够在自己的工作中灵活运用提高性能,从而为用户提供良好的用户体验.然而,很多人在设计技术方案或者编码时缺乏系统地.方 ...

  2. 《Java后端性能调优实战方案手册》,看完至少阿里P7

    之前有朋友说,"我们公司的系统从来都没有经过性能调优,集成测试没问题后就上线了,上线后也几乎没出现过性能问题."其实没遇到性能问题不代表程序不存在性能问题,只能说明系统的访问量有点 ...

  3. 上线半天下载量破100W!美团大佬的Java性能调优实战手册,超详细

    随着互联网的发展,高可靠.高并发以及降本增效,已成为各大公司面临的现实挑战,性能优化需求愈发迫切,大到分布式系统,小到代码块的算法优化,都已经成为你日常工作中必须要面对的事情.对于开发者而言,性能优化 ...

  4. python模拟退火(Simulated Annealing)参数寻优实战

    python模拟退火(Simulated Annealing)参数寻优实战 目录 python模拟退火(Simulated Annealing)参数寻优实战 模拟退火 模拟退火算法流程

  5. jvm性能调优实战 -33每日百亿数据量的实时分析引擎,如何定位和解决频繁Full GC问题

    文章目录 Pre 运行程序用的示例JVM参数 Code 基于jstat分析程序运行的状态 对JVM性能进行优化 小结 Pre jvm性能调优实战 - 27亿级数据量的实时分析引擎,为啥频繁发生Full ...

  6. jvm性能调优实战 - 32一个10万并发的BI系统,如何定位和解决频繁Young GC问题?

    文章目录 Pre 模拟代码的JVM参数设置 示例Code 如何在windows上执行命令? 通过jstat观察程序的运行状态 Pre jvm性能调优实战 - 26一个每秒10万并发的系统如何频繁发生Y ...

  7. JVM 性能调优实战之:使用阿里开源工具 TProfiler 在海量业务代码中精确定位性能代码...

    本文是<JVM 性能调优实战之:一次系统性能瓶颈的寻找过程> 的后续篇,该篇介绍了如何使用 JDK 自身提供的工具进行 JVM 调优将 TPS 由 2.5 提升到 20 (提升了 7 倍) ...

  8. JVM调优实战:to-space exhausted Evacuation Failure

    一次线上dubbo问题的定位,进行JVM调优实战. 问题 线上dubbo接口provider抛出异常: org.apache.dubbo.rpc.RpcException: Failfast invo ...

  9. jvm调优五:jvm调优工具和调优实战

    jvm调优工具和调优实战 jvm自带常用命令 JPS jps是用于查看有权访问的hotspot虚拟机的进程id. 当未指定hostid时,默认查看本机jvm进程id -l:输出完整jar名称 -v:输 ...

  10. 七、JVM调优实战——基本命令使用

    一.JVM类加载机制--自定义类加载器 二.JVM--对象内存分配机制 三.JVM内存模型 四.JVM垃圾收集算法和垃圾收集器 五.CMS垃圾回收器--三色标记算法 六.G1垃圾收集器 七.JVM调优 ...

最新文章

  1. ICLR 2022 under review|化学反应感知的分子表征学习
  2. 下一个大计算平台? Amazon Echo 研发幕后全揭露
  3. 积木赛尔号机器人_赛尔号11年,圣灵谱尼从章鱼变花臂少年,最终成为了老父亲...
  4. AdaBoosting 3
  5. Intel Realsense D435 python 如何获取(打印)所有摄像头序列号信息?
  6. EPOLL事件之EPOLLRDHUP
  7. java File类 打印目录树状结构(递归)
  8. ENS与Cloudflare合作推出改进的ETH.LINK服务
  9. 2010年11月51CTO壁纸点评活动获奖名单【已结束】
  10. samba服务器之无认证进入共享目录
  11. 20191114每日一句
  12. JavaSpring菜鸟教程,附Java面经
  13. 炫酷而不复杂,RDP报表就是这么实用方便
  14. 谈谈iOS多线程的锁
  15. html5%3chr%3e的样式,Vbs脚本编程简明教程
  16. 西电计算机学院在读博士刘潇,西电版博士研究生学术期刊目录(学科).doc
  17. MySQL字符集是什么
  18. shader三种变量类型(uniform,attribute和varying)
  19. C语言多文件编程详解
  20. C# 编辑器 Editor

热门文章

  1. 【论文解读】AAAI21最佳论文Informer:效果远超Transformer的长序列预测神器!
  2. 【数学基础】算法工程师必备的机器学习--线性模型(下)
  3. 2018-2019年度 AI方向Top10 综述
  4. AI基础:提供pdf打包下载了!(更新了25集)
  5. 喜大普奔,网易猪肉要到你碗里来了!
  6. 全球云计算大会起航,网易云阮良解读人工智能在产品中的创新实践
  7. Centos 6.9中PHPmyadmin 的搭建,WordPress的搭建,Discuz的搭建
  8. C#字数统计(字母、数字、汉字、符号)
  9. 再窥--单链表和顺序存储
  10. 文件上传利器SWFUpload入门简易教程