第4节:项目性能优化(完)

数据库调优

请问这两条SQL语句有什么区别?

复制代码
# SQL01 - 效率更好
select id from tb_sku where name='华为 HUAWEI 麦芒7 6G+64G 魅海蓝 全网通 前置智慧 双摄 移动联通电信4G手机 双卡双待';

# SQL02 - 效率更好
select id from tb_sku where spu_id=10000018913700;

为什么需要进行数据库调优:

  • 提升网站整体吞吐量,优化用户体验;
  • 后端性能优化性价比最高的一种方式;

什么影响数据库性能?

  • Mysql:表结构设计,效率低下的sql语句,超大表,大事务,数据库相关配置,数据库架构;
  • 服务器:OS,CPU,memory,network。

数据库调优到底调什么?

  • 优化SQL语句,数据库表结构;
  • MYSQL配置调优:最大连接数,连接超时,线程缓存,查询缓存,排序缓存,连接查询缓存等;
  • DB服务器硬件优化:多核CPU,更大内存。

OpenResty调优

OpenResty是一个基于Nginx与Lua的高性能web平台,其内部集成了大量精良的Lua库,第三方模块以及大多数的依赖项。用于方便的搭建能够处理超高并发,扩展性极高的动态web应用,web服务和动态网关。

OpenRestry调优:反向代理集群服务;

调优结论:OpenRestry调优之后,TPS会在原有的基础上再翻倍。

JVM调优

为什么需要进行JVM调优:

  • 调优的最终目的都是为了应用程序使用最小的硬件消耗来承载更大的吞吐量;
  • 更少的内存,更低的延迟,更大的吞吐量,减少应用的GC暂停时间;
  • GC暂停会在高并发常见下,P99百分位的响应时间会产生影响。

什么时候进行JVM调优:

  1. 系统吞吐量与响应性能不高或者下降;
  2. Heap内存(老年代)持续上涨达到设置的最大内存值;
  3. Full GC次数频繁;
  4. GC停顿时间过长(1秒);
  5. 应用出现OutOfMemory等内存异常;
  6. 应用中有使用本地缓存,且占用了大量的内存空间。

调优调什么?

  • 内存分配+垃圾回收选配。
相关推荐
Hello.Reader2 小时前
Flink Materialized Table 完整部署与运维指南:架构、SQL Gateway、Catalog Store、调度刷新一站式落地
运维·架构·flink
谢尔登2 小时前
React的Fiber架构
前端·react.js·架构
虫小宝3 小时前
淘客返利app数据中台设计:打通多平台数据的统一数据服务架构
架构
helloworddm3 小时前
GetDirectoryReference 远程代理创建机制详解
服务器·架构·c#
云边有个稻草人3 小时前
深度解析金仓数据库MongoDB兼容能力:架构、性能与高可用实践
数据库·架构·金仓数据库·kes
大千AI助手4 小时前
Kaldi:开源语音识别工具链的核心架构与技术演进
人工智能·机器学习·架构·开源·语音识别·kaldi·大千ai助手
自由生长20244 小时前
请求洪峰来了,怎么使用消息队列削峰? 我们来深入的聊一下
后端·架构
ZFJ_张福杰6 小时前
【技术深度】金融 / 钱包级 Android 安全性架构(毒APP)
android·安全·金融·架构·签名证书
没有bug.的程序员13 小时前
单体 → 微服务演进路径:一个真实电商项目的渐进式转型
jvm·微服务·云原生·架构·电商·gc调优