您的位置:首页 > 运维架构 > 网站架构

网站性能测试基本概念

2018-01-29 10:52 369 查看
注:引用李智慧教授的架构核心原理书籍;若有不足地方欢迎指出

一 系统性能测试的指标

 1:响应时间  及一个操作到返回的时间;包括从发出请求开始到收到最后响应数据所需要的时间;这个指标直接放映了系统的反应的快慢。

 2:并发数 指的是系统同时处理请求的数目,这个数字放映了系统的负载特性。

 3:吞吐量  指的是单位时间内系统处理的请求数;体现系统的整体处理能力,常用的指标有请求数/秒或者页面数/秒,但一般常用tps及每秒事物数;系
4000
统并发数由小变大的过程中,系统的吞吐量先是逐渐增大,当达到一个极限值后,吞吐量就会随着并发数的增加而减小,当达到吞吐量极限后系统崩溃点。

 4: 性能计算器 包括system Load(即系统负载,表示正在被cpu执行的线程数和等待被cpu执行的线程数),机器的CUP使用,内存使用,对象线程数,磁盘与网络的IO;对这些指标设置报警阀值;

二:性能测试的细化

 性能测试是个总称,具体细化是性能测试,负载测试,压力测试,稳定测试。发

 1:性能测试 以系统规划前的性能指标为预期指标,对系统不断施压压力,验证在资源范围内是否达到预期效果;

2:负载测试 对系统不断施压,其各项指标达到安全值临界点

3:压力测试 对系统不断施压,直到系统崩溃
4:稳定测试 在不同的生产环境,不同的时间点,压力不均匀等条件下测试系统;



三 性能优化策略
1:前端优化   减小http请求,使用缓存,使用异步,反向代理
2: 服务端优化
 a: 分布式缓存 主要存放那些读写比很高,很少变化的数据;应用程序一般读取数据先到缓存中读取,如果读取不到或者
数据已经失效,再到数据库中读取;对于使用缓存要注意下面几点:
频繁修改的数据;对于频繁修改的数据最好不好用缓存,如果保存的是频繁修改的数据,就会出现
数据写入缓存后,应有服务还来不及读取,数据就已经失效的情景,徒增系统负担,一般来说,数据的读写比在2:1以上,即写入
一次缓存,在数据更新前至少读取两次,缓存才有有意义;
 没有热点数据
: 内存资源宝贵而有限,不可能把所以的数据都缓存起来,只有将最新访问的数据缓存起来;如果

数据不遵守二八定律,即大部分数据访问并没有集中在小部分数据中;利用缓存就没有意义了。
数据不一致和脏读:一般会对缓存的数据设置失效时间,一旦超过失效时间,就会从数据库中重新加载,因此应用要容忍一定
时间的数据不一致,如卖家已经编辑了商品属性,但需要经过一段时间才能看到;有一种策略是数据更新时候立即更新缓存,不过会带来
更过的业务开销;
缓存预热:缓存中存放的是热点数据,就是启动的时候先把热点数据加载好;
缓存穿透:以为不恰当的业务,所有的请求都落在了数据库中,对数据库造成很大的压力
b: 采用异步操作
使用消息队列将调用异步化, 在不使用消息队列的情况下,用户的请求直接写入数据库,在高并发的情况下会对数据库造成巨大的压力
同时也是用相应延迟加据;再使用消息队列后,用户的请求数据发送给消息队列后立即返回,再由消息队列的消费者进程写入到消息队列中
C: 使用集群 :采用集群分发q请求
d: 代码优化
 1:多线程 多用户并发访问网站可以采用多线程,多线程的优点比进程更轻,更少的占用系统资源,切换代价少;对于

线程启动个数一般考虑cpu核数和io阻塞时间,与cpu核数成正比,与io堵塞时间成反比;如果是计算型任务,那么线程数
最多不要超过cpu核数,因为启动多线程,CPU也来不及调度;相反如果任务是等待磁盘操作,网络相应,那么多启动线程
有助于提高任务并发度;
2:资源复用 系统运行时候,要尽量减少那些开销很大的资源的创建和销毁;比如数据连接,网络通信连接,复杂对象;从
编程角度,资源复用主要有两种模式:单例模式和对象池
3:数据结构
4:垃圾回收
3 存储性能优化
 机械硬盘和固态硬盘

  

 

       

   

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息