一、网站性能测试
1.1、不同视觉下的网站性能
1.2、性能测试指标
从开发和测试人员的视角,网站性能测试的主要指标有响应时间、并发数、吞吐量、性能计数器等。
1、响应时间
指应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。
2、并发数
指系统能够同时处理请求的数目,这个数字反应了系统的负载特性。
3、吞吐量
指单位时间内系统处理的请求数量,体现系统的整体处理能力。
TPS(每秒事务数)是吞吐量的一个常用量化指标。
4、性能计数器
SystemLoad即系统负载,指当前正在被CPU执行和等待被CPU执行的进程数目总和,是反映系统忙闲程度的重要指标。
1.3、性能测试方法
*性能测试
*负载测试
*压力测试
*稳定性测试
1.4、性能测试报告
1、性能测试
2、性能优化
分为Web前端性能优化、应用服务器性能优化、存储服务器性能优化。
二、Web前端性能优化
2.1、浏览器访问优化
1、减少http请求
减少HTTP的主要手段是合并CSS、合并JavaScript、合并图片。
2、使用浏览器缓存
3、启用压缩
在服务器端对文件进行压缩,在浏览器端对文件解压缩,可有效减少通信传输的数据量。
4、CSS放在页面最上面、JavaScript放在页面最下面
浏览器下载完全部CSS之后才对整个页面渲染,在加载JavaScript后立即执行。
5、减少Cookie传输
2.2、CDN加速
CDN能够缓存的一般是静态资源,如图片、文件、CSS、Script脚本、静态网页等,但是这些文件访问频率很高,将其缓存CDN可极大改善网页的打开速度。
2.3、反向代理
反向代理具有安全功能,也可以通过配置缓存功能加速Web请求。此外,反向代理也可以实现负载均衡的功能。
三、应用服务器性能优化
应用服务器就是处理网站业务的服务器。
3.1、分布式缓存
网站性能优化第一定律:优先考虑使用缓存优化性能。
1、缓存的基本原理
缓存是指数据存储在相对较高访问速度的存储介质中,以供系统处理。缓存的本质是一个内存Hash表,计算KV对中Key的HashCode对应的Hash表索引,可快速访问Hash表中的数据。
应用程序读取数据时,先到缓存中读取,如果读取不到或数据已失效,再访问数据库,并将数据写入缓存。
2、合理使用缓存
3、分布式缓存架构
分布式缓存指缓存部署在多个服务器组成的集群中,以集群方式提供缓存服务,其架构方式有两种,一种是以JBossCache为代表的需要更新同步的分布式缓存,一种是以Memcached为代表的不互相通信的分布式缓存。
JBossCache的分布式缓存在集群中所有服务器中保存相同的缓存数据,当某台服务器有缓存数据更新时,会通知集群中其他机器更新缓存数据或清除缓存数据。JBossCache通常将应用程序和缓存部署在同一服务器上,应用程序可从本地快速获取缓存数据,但是这种方式带来的问题是缓存数据的数量受限于单一服务器的内存空间。
4、Memcached(是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载)
(1)简单的通信协议
(2)丰富的客户端程序
(3)高性能的网络通信
(4)高效的内存管理
(5)互不通信的服务器集群架构
3.2、异步操作
任何可以晚点做的事情都应该晚点再做。
3.3、使用集群
在网站高并发访问的情景下,使用负载均衡技术为一个应用构建一个由多台服务器组成的服务器集群,将并发访问请求分发到多台服务器上处理,避免单一服务器因为负载压力过大而响应缓慢,使用户请求有更好的响应延迟特性。
3.4、代码优化
1、多线程
2、资源复用,单例模式和对象池
3、数据结构
4、垃圾回收
四、存储性能优化
4.1、机械硬盘vs.固态硬盘
固态硬盘又称作SSD或Flash磁盘,SSD具有更小的功耗和更少的磁盘震动与噪声。
4.2、B+树vs.LSM树
4.3、RAIDvs.HDFS
RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力。通过使用RAID技术,实现数据在多块磁盘上的并发读写和数据备份。
RAID技术在传统关系数据库及文件系统中应用比较广泛,但是在大型网站比较喜欢使用的NoSQL,以及分布式文件系统中,RAID技术却遭到冷落。
HDFS(Hadoop分布式文件系统)。
上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理。