写点什么

性能优化(1)

用户头像
wing
关注
发布于: 2020 年 11 月 08 日

本周是跟随李智慧老师学习架构师训练营的第七周,现将本周主要内容总结如下:

性能优化指标:响应时间、吞吐量、并发数、性能计数器(CPU IO MEMORY LOAD 等)等

HPS(每秒 http 请求数)、QPS、TPS

吞吐量 = (1000/响应时间 ms) * 并发数

常见性能测试分类:性能测试、负载测试、压力测试、稳定性测试

全链路压测:在线上特定业务场景下,将相关的链路串联起来同时施压,指导线上流量规划和性能优化。

数据隔离方法:

1.逻辑隔离:通过特殊标记和正常数据进行区分,可能污染线上数据,破坏线上数据的安全性

2.虚拟隔离:在需要写数据的地方进行 mock,不真正写数据,影响准确性

3.物理隔离:写数据地方进行流量识别,写到其他地方

性能优化的基本原则:测试要优化的软件、了解要优化的软件

方法:性能测试,指标分析、架构与代码分析、架构与代码优化、性能测试

分层思想:

1.机房与骨干网络优化:异地多活,专线网络,CDN

2.服务器与硬件:CPU,磁盘、网卡

3.操作系统:操作系统参数配置

4.虚拟机:虚拟机参数配置

5.基础组件:有事仅更换基础组件版本也能大幅提升性能

6.软件架构:缓存、异步、集群

7.软件代码:设计模式、并发编程、池化技术、异步、数据结构

进程与线程:处于运行期的进程数小于等于 cpu 核数

锁:CAS、偏向锁、轻量级锁、重量级锁、可重入锁,公平/非公平锁、独占锁、共享锁(一般指定共享数目)、读写锁,自旋锁(不阻塞,减少上下文切换,增加 cpu 计算),分段锁(CHM)


以下两题,至少选做一题

  1. 性能压测的时候,随着并发压力的增加,系统响应时间和吞吐量如何变化,为什么?

  2. 用你熟悉的编程语言写一个 Web 性能压测工具,输入参数:URL,请求总次数,并发

数。输出参数:平均响应时间,95%响应时间。用这个测试工具以 10 并发、100 次请

求压测 www.baidu.com。


1.我们假设一个理发店(服务器)有 3 个理发师(CPU),每个理发师服务一个客户需要 1s(响应时间),当有一个客户理发时,一个理发师就能处理,表现就是:系统并发 1,响应时间 1s,系统吞吐量 1,CPU 利用率是 1/3。同理 2 个客户理发时,需要两个理发师处理,表现是:系统并发 2、响应时间 1s,系统吞吐量 2。直到 3 个客户,随着并发数的增加系统的响应时间不变,吞吐量增加。当有 4 个客户理发时,有一个客户就需要等待,系统响应时间增加。并发进一步增加,例如到达 12 时,有些客户可能因为等待时间过长而选择离开,这就好比,超过了系统的最大响应时间,系统出问题了。


用户头像

wing

关注

还未添加个人签名 2018.05.13 加入

还未添加个人简介

评论

发布
暂无评论
性能优化(1)