性能测试优化

一、I/O优化

1、增加缓存,减少磁盘的访问次数。
2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。
3、设计合理的磁盘存储数据块,以及访问这些数据库的策略,这是在应用层面考虑的。例如,我们可以给存放的数据设计索引,通过寻址索引来加快和减少磁盘的访问量,还可以采用异步和非阻塞的方式加快磁盘的访问速度。
4、应用合理的RAID策略提升磁盘I/O。

二、Web前端调优

1、减少网络交互的次数(多次请求合并)
2、减少网络传输数据量的大小(压缩)
3、尽量减少编码(尽量提前将字符转化为字节,或者减少从字符到字节的转化过程。)
4、使用浏览器缓存
5、减少Cookie传输
6、合理布局页面
7、使用页面压缩
8、延迟加载页面
9、CSS在最上面,JS在最下面
10、CDN
11、反向代理
12、页面静态化
13、异地部署

三、服务降级(自动优雅降级)

拒绝服务和关闭服务

四、幂等性设计

有些服务天然具有幂等性,比如讲用户性别设置为男性,不管设置多少次,结果都一样。但是对转账交易等操作,问题就会比较复杂,需要通过交易编号等信息进行服务调用有效性校验,只有有效的操作才能继续执行。

(注:幂等性是系统的接口对外一种承诺(而不是实现), 承诺只要调用接口成功, 外部多次调用对系统的影响是一致的. 声明为幂等的接口会认为外部调用失败是常态, 并且失败之后必然会有重试.)

五、失效转移

若数据服务器集群中任何一台服务器宕机,那么应用程序针对这台服务器的所有读写操作都需要重新路由到其他服务器,保证数据访问不会失败,这个过程叫失效转移。

失效转移包括:失效确认(心跳检测和应用程序访问失败报告)、访问转移、数据恢复。

失效转移保证当一个数据副本不可访问时,可以快速切换访问数据的其他副本,保证系统可用。

六、性能优化

根据网站分层架构,性能优化可分为:web前端性能优化、应用服务器性能优化、存储服务器性能优化。

1、Web前端性能优化
浏览器访问优化:减少http请求;使用浏览器缓存;启用压缩;css放在页面最上面、javaScript放在页面最下面;减少Cookie传输
CDN加速
反向代理

2、应用服务器性能优化
分布式缓存(Redis等)
异步操作(消息队列)
使用集群(负载均衡)
代码优化

3、存储性能优化
机械硬盘vs固态硬盘
B+树 vs LSM树
RAID vs HDFS

七、代码优化

多线程(Q:怎么确保线程安全?无锁机制有哪些?)
资源复用(单例模式,连接池,线程池)
数据结构
垃圾回收

你可能感兴趣的:(性能测试)