性能基本理论

场景分为两大类:
1、目标场景:在调优结束或者验收测试的时候使用,不适用测试验证过程
2、手动场景:适用于测试过程,并发现定位问题

单场景业务:定位具体问题,当复合场景有问题时,可以通过单场景跑来定位问题;或者通过跑完单场景后确保没有问题之后,再跑复合场景

复合场景业务:定位系统问题

用户比例的控制():
1.当用户基数接近时,可以通过用百分比的模式来设置,达到配比的要求
2.当用户基数差距很大时,我们需要用用户模式进行设置,当使用这种模式的时候,运行时间一定要够长,才能模拟少量用户多请求的情况(30分钟)
3.通过组的形式来保证业务执行的顺序

最终目标:在一段时间内,到达服务器的请求数与用户行为一致

脚本退出的方式:
1.return 0 或者正数,正常退出
2.return 负数,正常退出,但是在场景中会被标识为失败的事务
3.exit -1 lr_exit 表示退出脚本


一次性加载用户数和逐渐用户数的区别:
对性能测试结果没有影响,主要考虑到负载机的性能问题,在测试分析时,我们把前面逐步加载的时间去掉


只有在强并发的情况加才需要集合点,比如说秒杀活动

资源疾控分为两大类:
1.业务资源:
TPS:直接反应服务器处理能力的指标
响应时间:用户最直观的感受
用户数:产生压力的来源
成功率:保证业务的精确度
HITS(点击率):产生压力的来源
稳定性:保证产品质量
中间件、缓存、Redis、mq(队列三剑客)等应用业务资源(什么是队列,为什么要用队列二部直接用协议)

2.服务器资源:
CPU 
CPU核数:在一颗物理CPU上可以规划、容纳的数量。目前都是双核的
物理CPU:一棵物理的CPU(散装、盒装)
逻辑CPU:物理CPU*CPU核数
超频:强制把CPU核数加倍,不建议用,很耗性能
*使用率(系统使用率:CPU的调度等自身活动所占用的时间、用户使用率:建议低于70%(空闲的来做冗余,应对突发事件))一般关注用户使用率

中断(是一组信号,告诉CPU你要休息(软中断,时间片到了)或者有更重要的事情(硬中断))
时间片:CPU工作的最小单元

*队列:当前等待CPU处理的业务长度
*LOAD:队列等待
top命令中的load值多少有问题?

eg:假设一个红绿灯10S换一次灯(10S为一个时间片),假设每辆通过红绿灯需要的时间为1S,如果你是第6辆车,那么你的load是多少?0
如果你是第16辆车,你的load是多少?1,如果是第26辆则load为2,依次的你的load多大值取决于你的忍受力。

*通常情况下load值不应该大于CPU核数*3


(CPU与内存通过线程交互)
内存   (内存与IO之间是通过总线来交互的):监控主要只看swap其次是利用率
原则:Linux和Windows对内存的管理机制是不一样的
Linux:内存能用就用,好处:当启动一个旧线程时可以直接使用原来的数据(除非内存不够用时才会处理buffer和cache的数据释放内存)
Windows:能省则省,好处:当启动一个新线程时,不需要回收内存

cache :程序未处理,从硬盘中刚读取出来的数据
buffuer:程序处理完,准备写入硬盘的数据

buffer和cache可以手动释放,有命令

Linux下:内存的使用 = use-cache-buffer
         未使用的内存 = free+cache+buffer
*利用率:建议低于70%(空闲的来做冗余,应对突发事件)
内存利用率高并不代表有问题,还需要结合swap的值来看,主要看swap的值是高还是低。才知道内存够不够。

*swap:在硬盘上划出一个区域使用相关的技术把读写速率提上来,当做内存来使用(速率介于内存和硬盘);
      (swap的值小说明内存没有问题,如果且只有值大才说明内存有问题);如果内存不够用首先清buffer和cache,buffer和cache不够用才会用swap;
       发现内存有没有问题只要关注swap的大小就行,只有swap大才反应内存不够有问题


为什么需要内存?
因为硬盘的速度跟不上CPU。(机械工艺导致的),内存使用电容,但是缺点是遗失,一断电就丢失


页(2K,4K,8K,16K,32K,)
页:是内存的最小管理单元
伙伴关系?分页机制?
没有被使用到的页就是次缺页。
page error(次缺页)

IO(基于机械硬盘来讲的)(监控过程只需要关注读写速率和繁忙程度)
影响硬盘性能因素有哪些?
转速 服务器10000转左右、扇区
最小读写块  8K

*读写速率(IOPS ):要参考对应的硬盘指标的80%左右
*繁忙程度  idel%(是否使用了磁盘阵列)《70%》
ps:磁盘阵列:几个磁盘拼在一起,使用磁盘阵列相当于几个磁盘同时读写,速度比单个块很多,所以需要*拼了多少块

顺序/随机IO:硬盘在储存数据时的位置关系

队列:

影响IO的因素:
你在超市准备付钱,你怎么选择队伍?
1、有多少个窗口(线程)
2、队伍前面有多号人?(队伍长度)
3、队伍里每个人手上的东西有多少


繁忙程度高,并不代表读写速来高,需要在具体的看下线程的状态

NET(监控:网络只关心吞吐量)
网卡的型号(百兆网卡,还是千兆网卡)
单位的换算:网卡的单位是bit 监控工具一般是byte

上下行的问题:丢出去的是上行,接收到的是下行
上行+下行=总的网络流量《70%

ps:上下文切换是线程相关的东西


监控工具的选择:
原则:选你熟悉的一到两款就可以了。

Windows下:系统自带的监控工具


Linux下:
galnces(推荐)
nmon
第三方的框架工具  zabbitx
spotlight 系列
linux自带的命令  top iostat vmstat iftop free

猜你喜欢

转载自blog.csdn.net/qq_35381464/article/details/81942066
今日推荐