第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. 应用中有使用本地缓存,且占用了大量的内存空间。

调优调什么?

  • 内存分配+垃圾回收选配。
相关推荐
码云之上12 分钟前
Prompt 拦不住 Chatbot 的安全问题:九大风险与分层防护
人工智能·架构·全栈
对讲机数码科普12 分钟前
从电路原理到协议栈:模拟对讲机与数字对讲机的技术内核拆解
运维·网络·架构·软件工程
一个有温度的技术博主14 分钟前
单点登录(SSO)到底怎么实现?怎么判断用户是否已单点登录?
架构
深入云栈1 小时前
Netty 4.2.x 源码深度解析 (十八):ChannelOutboundBuffer 写缓冲区 —— 发送队列与流量控制
java·后端·架构
代码山河2 小时前
第一个Java程序:Hello World从零编写与运行
java·学习·架构·教程·面向对象·项目
鶴哥只手遮天2 小时前
AFSIM 架构解剖(上):内核与运行机理
架构
鶴哥只手遮天2 小时前
AFSIM 架构解剖(下):专业领域与生态
架构
CoLiuRs2 小时前
订单不是一张表:订单聚合与状态机
数据库·架构
狂奔蜗牛(bradley)3 小时前
EtherCAT 主站拓扑判定的三级防护:从去抖到振荡检测
人工智能·嵌入式硬件·fpga开发·架构
WindrunnerMax3 小时前
以轻量 LoopAgent 替代 RAG 实现文档检索
人工智能·架构·github