面试总问的jvm调优到底是要干什么?

本文探讨了压力测试的重要性,强调了关注业务场景下的性能指标而非官方数据。解释了如何分析服务的性能瓶颈,如TPS、错误率、响应时间和线程数。同时,讨论了JVM调优的目标是保证服务稳定,而非单纯提升性能,并分享了遇到的实际案例。文章还提到了常用的压力测试工具和性能诊断难点,并指出在资源分配决策中要考虑成本和优化空间。
摘要由CSDN通过智能技术生成

1. 压力测试的理解,xxx的性能10w/s,对你有意义么?

没有那家卖瓜的会说自己家的不甜,同样,没有哪个开源项目愿意告诉你在对它条件最苛刻的时候压力情况是多少,一般官网号称给你看的性能指标都是在最理想环境下的,毫无参考意义。

举个栗子,Redis官网压测的例子,256字节的读速度11w/s,写速度8.1w/s,都知道redis优点是多变的数据结构,string、List、hash、set、sortset,实际工作稍微复杂的环境往往都是各种结构混合使用,字符串长度各异,你需要的是真正在你的工作环境下,即:你混合使用的数据结构下,你的访问压力下,你的字符串长度下redis的x响应性能。这个值往往跟官方公布的差异很大。我的经验,我们是视频行业,相对字符串长度较长,在压缩序列化之后,主要使用String和List,性能在访问client=200-400左右,qps相应能到5w,超过这个client值,qps下降而且服务器负载上扬,容易引起服务器雪崩效应,这个5w,才是真正基于我们业务使用下redis的性能瓶颈。

我这个服务压力2000tps,你觉得很牛逼?

看着很牛逼对不对,好像tps值越高显得能力越强一样,其实很可笑,如果性能好只是比这个,那写一个1 1=2的程序估计是无敌了吧。具体问题要具体分析,你牛逼你要说明你牛逼在哪里,在什么条件下,什么样子的背景,才能说你的tps是多少,这样才有意义。

反正线上没出现过问题,我们撑得住,你确定?

线上没出现过问题,不代表流量不会增加,流量不会增加不代表业务不会复杂,业务复杂性能下降是很有可能的,没有压力测试做保证,出问题就是大问题。

压力测试都是qa在做,有问题会反馈给我,你的服务极限到底在哪里?

你应该关注一下qa是怎么做压力测试的,无论从服务的角度还是从个人发展的角度。qa只能给你测试结果,不会告诉你性能瓶颈在哪里。

2.压力测试到底要关注什么

压测不是玩笑,你的4个9的指标呢

好的服务都会有一项指标,叫4个9,即99.99%得服务可靠性。这是衡量一个服务是否优秀的普世标准,压力测试的好坏最直观的影响4个9的保障。压力测试就是用来确保服务的稳定,给出服务稳定极限条件。稳定指的是服务负载,cpu利用率,接口的响应时长,网络的延迟,结果准确性等等都在你的标准之内。而这些指标又相互影响。

条件,用尽量多的已知去推测未知,模拟仿真,你要做的预测未来

硬件条件:服务器cpu核数、内存大小、网络条件、同宿主机下其他服务影响,软件条件:虚拟访问用户数、gc的稳定程度,响应时长要求,第三方依赖的可用程度

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值