hive性能调优实战pdf_极客-Java性能调优实战笔记jike

hive性能调优实战pdf_极客-Java性能调优实战笔记jike本文倒序 作者 金山软件西山居技术经理 刘超 09 结束语丨栉风沐雨 砥砺前行 结束 nothing 08 模块七 实战演练场 4 讲 43 丨记一次双十一抢购性能瓶颈调优 1 限流实现优化 nginx 包含了两个限流模块

大家好,我是讯享网,很高兴认识大家。

本文倒序。

作者:金山软件西山居技术经理 刘超

09-结束语丨栉风沐雨,砥砺前行!

结束nothing

08-模块七 实战演练场(4讲)

43丨记一次双十一抢购性能瓶颈调优

1.限流实现优化

nginx 包含了两个限流模块:ngx_http_limit_conn_module和ngx_http_limit_req_module 前者限制单个ip单位时间内的请求数量,后者是用来限制单位时间内所有皮的请求数量。

配置:

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {

location / {

limit_conn addr 1

}

}

http {

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

server{

location / {

limit_req zone=one burst=5 nodelay;

}

}

在网关层,可以tongueolua编写OpenResty来实现一套限流功能,也可以通过现成的Kong安装插件来实现。

还可以基于服务才能实现接口的限流,通过Zuul RateLimit 活Guava RateLimiter实现。

42丨如何使用缓存优化系统性能? 无重点

1.前端缓存

本地缓存

If-Modified-Since 字段与返回头部中的 Last- Modified 字段实现,也可以基于请求头部中的 If-None-Match 字段与返回头部中的 ETag 字段来实现。前者基于时间,后者基于唯一标示。

网关缓存

CDN

2.服务器缓存技术

Guava cache

Redis

41丨电商系统的分布式事务调优 重要

1.分布式事务实现方式有多种,例如

XA协议实现的二阶段提交 2pc

DTP 模型,该模型规范了分布式事务的模型设计。DTP 规范中主要包含了 AP、RM、TM 三个部分,其中 AP 是应用程序,是事务发起和结 束的地方;RM 是资源管理器,主要负责管理每个数据库的连接数据源;TM 是事务管理器,负责事务的全局管理,包括事务的生命周期管理和资源的分配协调等。

三阶段提交3pc

3pc把2pc的准备阶段分为了准备阶段和预处理阶段。

第一阶段只是询问各个资源节点是否可以执行事务。

第二阶段 所有的几点反馈可以执行事务,才开始执行事务。

第三阶段 执行提交或回滚操作。RM、TM都引入了超时机制。

缺点:无法解决在最后提交全局事务时,由于网络故障无法通知到一些节点的问题,特别是回滚通知,会导致事务等待超时从而默认提交。

XA规范实现的事务提交,由于阻塞等性能问题,低性能、低吞吐。

TCC补偿性事务:最常用的分布式事务解决方案

分别在不同服务上连接数据源,提交数据库操作。

采用最终一致性的方式实现了一种柔性分布式事务,基于服务层实现的一种二阶事务提交。

三个阶段:

Try

Confirm

Cancel

缺点:对业务侵入性非常大,实现和维护成本高。

需要在设计的时候考虑预留资源;

需要编写大量业务性代码

考虑每个方法的幂等性

2.业务无侵入方案-Seata(Fescar)

40丨如何设计更优的分布式

1.数据库分布式锁

2.zookeeper分布式锁

3.Redis实现分布式锁

4.Redlock算法 redisson

07-模块六 数据库性能调优(6讲)

39丨答疑课堂:MySQL中InnoDB的知识点串讲 略,可以单独加强InnoDB 内容


讯享网

1.缓存池:不仅缓存了索引页和数据页,还包括了undo页、插入缓存、自适应哈希索引以及InnoDB的锁信息。

2.后台线程

Master Thread 主要负责将缓冲池中的数据异步刷新到磁盘中,初次之外还包括插入缓存,undo页的回收等。

IO Thread 是负责读写 IO 的线程,而 Purge Thread 主要用于回 收事务已经提交了的 undo log

3.存储文件

4.InnoDB 逻辑存储结构

InnoDB 逻辑存储结构分为表空间(Tablespace)、段 (Segment)、区 (Extent)、页 Page) 以及行 (row)。

表空间:

5.InnoDB 事务之 redo log 工作原理

6.LRU淘汰策略

InnoDB 则是将数据放在一个 midpoint 位置,通常这个 midpoint 为列 表长度的 5/8。避免一些不常查询的操作突然将热点数据淘汰出去。

38丨数据库参数设置优化,失之毫厘差之千里 略

1.SWAP 页交换:SWAP 分区在系统的物理内存不够用的时候,就会把物理内 存中的一部分空间释放出来,以供当前运行的程序使用。被释放的空间可能 来自一些很长时间没有什么操作的程序,这些被释放的空间的数据被临时保 存到 SWAP 分区中,等到那些程序要运行时,再从 SWAP 分区中恢复保存 的数据到内存中。

2.redo log 主要是为了解决 crash-safe 问题而引入的。

3.InnoDB Buffer Pool(IBP)是InnoDB存储引擎的一个缓冲池。

innodb_buffer_pool_size :默认128M,推荐配置IBP的大小为服务器内存的80%。

innodb_buffer_pool_instances:IBP被划分了多个实例,只有上面1G时才有用。

innodb_log_file_size:1g

innodb_log_buffer_size:InnoDB重做日志缓冲池的大小,默认8M

innodb_flush_log_at_trx_commit:控制重做日志从缓存写入文件刷新到磁盘中的策略,默认1

37丨电商系统表设计优化案例分析

1.平时不用看,面试可略一眼

36丨什么时候需要分表分库 看笔记即可

1.分布式事务,两阶段提交(2PC)以及补偿事务提交TCC.

2.中间件:Spring 实现的JTA,Fescar(seata)

3.跨节点JOIN查询问题

冗余基础表或者个别字段

4.跨节点分页查询问题

两套存储: 一套数据库,一套Elasticsearch

5.全局主键ID

uuid:性能差

redis分布式锁实现一个递增的主键ID,有一定性能损耗

Twiitter开源的分布式ID生产算法:snowflake。

6.扩容问题

2的倍数设置表数量

7.表分区,是指根据一定规则,将数据库中的一张表分解成多个更小的,容易管理的部分。从逻辑上看,只有一张表,但是底层却是由多个物理分区组成。

分表:指的是通过一定规则,将一张表分解成多张不同的表。比如将用户订单记录根据时间成多个表。

分表与分区的区别在于:分区从逻辑上来讲只有一张表,而分表则是将一张表分解成多张表。

ALTER TABLE erp_bill_index PARTITION by RANGE(to_days(billdate))

35丨记一次线上SQL死锁事故:如何避免死锁?

1.我们可以在 information_schema 数据库 中查询到具体的死锁情况

2.此节值得关注。

3.查看运行中事务:select * from information_schema.innodb_trx

当前出现的锁: select * from information_schema.innodb_locks

锁等待的对应关系 select * from information_schema.innodb_lock_waits

4.非唯一索引,RR事务隔离级别,for update 加锁类型为 gap lock。

34丨MySQL调优之索引:索引的失效与优化

1.回表

基于主键查询可以直接获取到行信息,而基于辅助索引作为查询条 件,则需要进行回表,然后再通过主键索引获取到数据。

2.建立和使用索引 的调优方法

A覆盖索引优化查询

B自增字段作主键优化查询

C前缀索引优化

减小索引字段大小,可以增加一个页中存储的索引想,有效提高索引的查询速度,但又一定局限性,order by 无法使用前缀索引,无法吧前缀索引作为覆盖索引。

D防止索引失效

对索引进行函数操作或者表达式计算也会导致索引的失效

33丨MySQL调优之事务:高并发场景下的数据库事务调优

1.行锁通过索引实现,如果不同过索引条件检索数据,行锁会升级到表锁。

2.优化高并发事务

结合业务场景,使用低级别事务隔离

避免行锁升级为表锁

控制事务的大小,减少锁定的资源量和锁定的时间长度。

7255ef6de355925b5ee60e13872924a1.png
小讯
上一篇 2025-03-12 19:08
下一篇 2025-03-24 14:14

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/64530.html