软件测试--性能分析调优

测试开发----性能分析调优

高并发系统设计要求:

高可用性,高可靠性,可扩展性,运维能力

常用手段

1.空间换时间

内存缓存,利用内存用磁盘上获取数据,CPU直接从内存中获取数据。

2.时间换空间

空间成为瓶颈时,切分数据分批次处理,用更少空间完成任务

例如:上传大附件

3.分而治之

把任务切分,分开执行,方便并行执行提高效率。

例如:Hadoop的MapReduce和HDFS的原理

4.异步处理

业务上有任务耗时长,可拆分业务以减少阻塞影响

常见异步处理机制有消息队列(MQ)

5.并行

用多个进程或多个线程来处理任务,缩短业务处理时间

6.离用户更近

CDN技术,把用户请求静态资源放在离用户更近的地方

7.一切可扩展

业务模块化, 服务化(同时无状态化),良好的水平扩展能力

性能分析方法

1.自底向上

通过监控硬件及操作系统性能指标(CPU、内存、磁盘、网络等硬件资源的性能指标)来分析性能问题(配置、程序)

2.自顶向下

通过生成负载来观察被测试的系统性能(响应时间、吞吐量)然后从请求起点由外及里一层层分析,从而找到性能问题所在

关键:生成负载、监控性能指标

单机性能调优

结构

web->app->DB

性能关注点

系统资源(CPU,内存,存储介质等)

系统负载(任务队列长度)

系统连接数

缓存

数据库(慢查询,大事务,DB time 高,I/O等待时间,置入内存)

中间件(Tomcat ,JVM等,线程池,DB连接池),可用netstat命令查看线程池和DB连接池的连接数

应用程序

一般采用分层开发,常见SSH架构就是MVC模型,其中View展现层负责展现内容,Controller负责请求接收,前台逻辑跳转,Model层实现业务逻辑,返回数据

性能问题多叔在程序逻辑混乱,调用复杂,甚至是设计不合理(低效程序或者相对低效程序)

WEB服务

1.页面size,动态数据,CSS,JS,图片等大小

2.隐藏的无用的数据传输;为开发方便集成的一些基类,需要考虑成本,最好避免生成大对象;SQL查询时排除无用字段,减少数据传输

优化方向

1.页面静态化,减少DB负担

2.减少页面size

3.图片变得更小

4.CSS合并

5.JS清减等

6.压缩页面,砍掉无用请求,无用数据传输

7.异步处理,先处理优先级较高的任务

8.智能DNS和CDN加速,让响应数据离用户更近,回避缓解网络瓶颈

posted @ 2022-04-01 23:15  ShadowMurloc  阅读(117)  评论(0编辑  收藏  举报