一.
1.开发人员和用户看待性能的角度不同
2.性能测试指标
1).响应时间
送发出请求到收到响应所经过的时间
2).并发数
单位时间同时处理请求数
3).吞吐量
单位时间处理请求数
4).性能计数器
描述服务器或操作系统性能的一系列数据指标
3.性能测试方法
1).性能测试
处理能力与并发数成正比
2).负载测试
处理能力增长缓慢,达到最大负载点
3).压力测试
处理能力反而下降,达到崩溃点
4).稳定性测试
长时间不均匀地对系统施加压力
4.前端性能优化
1).减少http请求
2).使用浏览器缓存
3).启用压缩
4).使用正确的文件加载方式
5).减少cookie传输
6).CDN加速(缓存)
部署在网络运营商机房(网路第一跳)
7).反向代理(缓存)
5.应用服务器性能优化
1).分布式缓存(网站性能优化第一定律:优先考虑使用缓存)
缓存的基本原理:
1.将数据存储在较高访问速度的存储介质中
2.本质是一个 内存(读取速度快吗不是)Hash表(查询速度快吗不是)
合理使用缓存:
1.不要缓存频繁修改的数据
2.要遵循二八定律,不要缓存低命中的数据
3.要注意 缓存的时效性 引起的问题
缓存可用性:
1.通过将缓存数据分布在集群中,当一台缓存服务器宕机时,从而防止全面更新缓存引起的性能消耗
2.对于已知的热点数据直接加载好(缓存预热),而不需使用LRU不断筛选预热
3.预防缓存穿透(攻击者不断请求某个不存在的数据,从而穿透缓存服务器,对数据库服务器造成极大的压力)
分布式缓存架构(分为两类):
1.数据相同,同步更新(JBoss Cache)
2.Memcached:
简单的通讯协议(缓存客户端与缓存服务器)
丰富的客服端(支持多种语言)
高性能网络通信(支持事件触发)
高效内存管理(固定空间分配)
互不通信的服务器集群架构(客户端路由算法: 一致性Hash算法)(无限制线性伸缩)
2).异步操作
使用 消息队列 将 调用 异步化
1.用户的数据在发送给消息队列服务器后 立即返回
2.消息队列服务器 中的消费者进程从消协队列中获取数据异步写入数据库
3.达到了削峰作用(削平高峰时期的并发任务)
4.无法在返回时告知用户成功信息
3).使用集群
在网站高并发访问的场景下,使用负载均衡技术为一个应用构建一个由多太服务器组成的服务器集群,将并发请求分发的多台服务器上处理,避免单一服务器因负载压力过大而响应缓慢,使用户具有更好的响应延迟特性
4).代码优化
多线程
1.利用多线程io阻塞与执行,可最大限度地利用cpu资源
注意:
1.将对象设计为无状态对象
2.使用局部对象
3.并发访问资源时使用锁
资源复用
1.单例模式
2.对象池(减少对象创建删除引起的资源消耗)
3.合适的数据结构
4.合理的GC
6.存储性能优化
硬件技术
存储结构技术
磁盘读写技术