性能怎么调优,哪些参数,解决办法?

性能调优

1、怎么优化,根据哪些参数

1.1、影响性能的参考因素:
  • CPU、大量计算会长时间的占用CPU资源,代码递归导致无限循环,正则表达式回溯、JVM频繁的Full GC、多线程大量上下文切换。都会导致CPU资源繁忙
  • 内存
  • 磁盘I/O
  • 网络
  • 异常:抛出异常需要构建异常栈,对迎春进行捕捉处理这个过程非常消耗系统性能
  • 数据库
  • 锁竞争
1.2、衡量性能的几个参考因素:
  • 响应时间
    • 服务端响应时间:包括Nginx分发请求和程序执行时间
    • 网络延迟:是网络传输时间
    • 客户端时间:对于广大用户来说,这段可以忽略不计,如果客户端嵌入了大量逻辑,消耗时间就就有可能变长了。
  • 吞吐量:比较接口的事务处理量(TPS)
    • 磁盘吞吐
    • 网络吞吐:网卡、光纤、防火墙
  • 计算机资源分配率:CPU占比率、内存使用率、磁盘I/O、网络I/O这几个参数需要合理分配
  • 负载承受能力

但是在项目开始阶段,没有必要过早的介入性能优化,只需要在编码的时候保证其优秀、高效,以及良好的程序设计

2、如何制定优化策略

测试-分析-调优 三步走

2.1、常见问题
  • 热身问题:第一遍程序是需要经过编译,才能执行,随着代码执行次数增多,虚拟机发现某方法和代码特别频繁时,会认定为(Hot Spot Code)热点代码,会将其存储在内存中。
  • 测试结果不稳定:多搞两次
  • 多 JVM 情况下影响:多个Java程序部署在不同Tomcat下,任意一个JVM拥有整个系统的资源使用权,要避免这种情况做测试
2.2、解决方案
  1. 优化代码
  2. 优化设计:单利模式等
  3. 优化算法:降低时间复杂度
  4. 时间换空间:String中 intern 方法
  5. 空间换时间:分库分表
  6. 参数调优:调整JVM参数
  7. 兜底策略:保证系统稳定
    1. 限流,设置最大访问量,采取熔断措施,友好返回失败请求
    2. 智能化横向扩容,当访问量超过某个阈值,系统根据需求自动新增服务
    3. 提前扩容,适用于高并发系统(每年双十一淘宝等电商服务)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiang想`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值