欢迎|

阳神

园龄:5年9个月粉丝:29关注:12

性能监控与调优(概述篇)

1.1. 大厂面试题

支付宝:

支付宝三面:JVM性能调优都做了什么?

小米:

有做过JVM内存优化吗?

从SQL、JVM、架构、数据库四个方面讲讲优化思路

蚂蚁金服:

JVM的编译优化

jvm性能调优都做了什么

JVM诊断调优工具用过哪些?

二面:jvm怎样调优,堆内存、栈空间设置多少合适

三面:JVM相关的分析工具使用过的有哪些?具体的性能调优步骤如何

阿里:

如何进行JVM调优?有哪些方法?

如何理解内存泄漏问题?有哪些情况会导致内存泄漏?如何解决?

字节跳动:

三面:JVM如何调优、参数怎么调?

拼多多:

从SQL、JVM、架构、数据库四个方面讲讲优化思路

京东:

JVM诊断调优工具用过哪些?

每秒几十万并发的秒杀系统为什么会频繁发生GC?

日均百万级交易系统如何优化JVM?

线上生产系统OOM如何监控及定位与解决?

高并系统如何基于G1垃圾回收器优化性能?

1.2. 背景说明

生产环境中的问题

  • 生产环境发生了内存溢出该如何处理?

  • 生产环境应该给服务器分配多少内存合适?

  • 如何对垃圾回收器的性能进行调优?

  • 生产环境CPU负载飙高该如何处理?

  • 生产环境应该给应用分配多少线程合适?

  • 不加log,如何确定请求是否执行了某一行代码?

  • 不加log,如何实时查看某个方法的入参与返回值?

为什么要调优

  • 防止出现OOM

  • 解决OOM

  • 减少Full GC出现的频率

不同阶段的考虑

  • 上线前

  • 项目运行阶段

  • 线上出现OOM

1.3. 调优概述

监控的依据

  • 运行日志

  • 异常堆栈

  • GC日志

  • 线程快照

  • 堆转储快照

调优的大方向

  • 合理地编写代码

  • 充分并合理的使用硬件资源

  • 合理地进行JVM调优

1.4. 性能优化的步骤

第1步:性能监控

  • GC频繁

  • cpu load过高

  • OOM

  • 内存泄露

  • 死锁

  • 程序响应时间较长

第2步:性能分析

  • 打印GC日志,通过GCviewer或者 http://gceasy.io 来分析异常信息

  • 灵活运用命令行工具、jstack、jmap、jinfo等

  • dump出堆文件,使用内存分析工具分析文件

  • 使用阿里Arthas、jconsole、JVisualVM来实时查看JVM状态

  • jstack查看堆栈信息

第3步:性能调优

  • 适当增加内存,根据业务背景选择垃圾回收器

  • 优化代码,控制内存使用

  • 增加机器,分散节点压力

  • 合理设置线程池线程数量

  • 使用中间件提高程序效率,比如缓存、消息队列等

  • 其他……

1.5. 性能评价/测试指标

停顿时间(或响应时间)

提交请求和返回该请求的响应之间使用的时间,一般比较关注平均响应时间。常用操作的响应时间列表:

操作 响应时间
打开一个站点 几秒
数据库查询一条记录(有索引) 十几毫秒
机械磁盘一次寻址定位 4毫秒
从机械磁盘顺序读取1M数据 2毫秒
从SSD磁盘顺序读取1M数据 0.3毫秒
从远程分布式换成Redis 读取一个数据 0.5毫秒
从内存读取 1M数据 十几微妙
Java程序本地方法调用 几微妙
网络传输2Kb数据 1 微妙

在垃圾回收环节中:

  • 暂停时间:执行垃圾收集时,程序的工作线程被暂停的时间。

  • -XX:MaxGCPauseMillis

吞吐量

  • 对单位时间内完成的工作量(请求)的量度

  • 在GC中:运行用户代码的事件占总运行时间的比例(总运行时间:程序的运行时间+内存回收的时间)

  • 吞吐量为1-1/(1+n),其中-XX::GCTimeRatio=n

并发数

  • 同一时刻,对服务器有实际交互的请求数

内存占用

  • Java堆区所占的内存大小

相互间的关系

以高速公路通行状况为例

  • 吞吐量:每天通过高速公路收费站的车辆的数据

  • 并发数:高速公路上正在行驶的车辆的数目

  • 响应时间:车速

本文作者:阳神

本文链接:https://www.cnblogs.com/lvxueyang/p/14833493.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   阳神  阅读(107)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.

作曲 : Reol

作词 : Reol

fade away...do over again...

fade away...do over again...

歌い始めの一文字目 いつも迷ってる

歌い始めの一文字目 いつも迷ってる

どうせとりとめのないことだけど

伝わらなきゃもっと意味がない

どうしたってこんなに複雑なのに

どうしたってこんなに複雑なのに

噛み砕いてやらなきゃ伝わらない

ほら結局歌詞なんかどうだっていい

僕の音楽なんかこの世になくたっていいんだよ

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.

目の前 広がる現実世界がまた歪んだ

目の前 広がる現実世界がまた歪んだ

何度リセットしても

僕は僕以外の誰かには生まれ変われない

「そんなの知ってるよ」

気になるあの子の噂話も

シニカル標的は次の速報

麻痺しちゃってるこっからエスケープ

麻痺しちゃってるこっからエスケープ

遠く遠くまで行けるよ

安定なんてない 不安定な世界

安定なんてない 不安定な世界

安定なんてない きっと明日には忘れるよ

fade away...do over again...

fade away...do over again...

そうだ世界はどこかがいつも嘘くさい

そうだ世界はどこかがいつも嘘くさい

綺麗事だけじゃ大事な人たちすら守れない

くだらない 僕らみんなどこか狂ってるみたい

本当のことなんか全部神様も知らない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

僕は気にしない 君は気付かない

何処にももういないいない

Everybody don't know why.

Everybody don't know why.

Everybody don't know much.

忘れていく 忘れられていく

We don't know,We don't know.