一 网页文件的元素构成
- 文本
- JS
- css
- 多媒体文件(图片、视频、语音)
二 http的请求原理
http请求之旅
- 浏览器输入请求的url
- 将域名做dns解析
- 请求发送到服务器
- 服务器获得响应数据返回
- 到浏览器上解析渲染显示
这几个点我们要清楚
-
浏览器的并发请求
- 浏览器的并发请求数是针对域名维度
- 图片请求是不需要cookie信息的
- CSS和JS的加载是阻塞性的加载
- 页面要显示,必须要求CSS要加载解析完成
http请求头和响应头的认识
请求头Request Headers
响应头reponse Headers
怎么能够让页面今早的显示出来呢
减少http请求次数应该是一个办法
1.1 合并一些请求 css文件、JS文件是否可合并
1.2 页面上有多个图片,是否可生成一张图片地图增加域名
我们知道一个浏览器针对单个域名是有并发数限制的,那么我可否增加多个域名呢数据空间压缩
3.1 源码中不必要的空格,不必要的标签都去掉,增加代码规范
3.2 引用的JS或者css等文件,只要需要的那一部分就可以了,不要全部放进来
3.3 图片这类文件,在不影响用户体验的基础上,尽量做到压缩处理
3.4 数据在网络中传输,数据量越小耗时越小,在服务端配置返回文件为gzip形式缓存
4.1 那些不是经常改变的数据,我们加缓存,这样避免重复去请求数据...
测试工具
扩展阅读:
书籍:《构建高性能web站点》
后端性能
一套服务器的通用性架构
关注指标
- 网络(用户端到机房入口)
1.1 多线机房
北网通南电信,或者说如果我们的服务要提供给学校,就需要考虑到教育网专线
1.2 网络带宽
机房的网络的出口带宽是否足够支撑我们的并发业务,特别是涉及到流媒体业务带宽消耗比较高的服务 - 服务器资源
2.1 CPU
2.2 内存
2.3 磁盘
2.4 文件句柄 - 中间件
3.1 tomcat\nginx http连接数、JVM的参数配置、开启gzip等
3.2 memcache\redis
3.3 activemq\hornetq
3.4 mysql 缓存配置、连接数配置 - 数据指标
4.1 单场景下90%用户的响应时间
4.2 TPS
测试工具
- loadrunner\jmeter 压测工具
-
nomn 服务器资源数据收集工具
服务器上运行界面
生成的报告文件csv格式
- jconsole JVM内存监控工具
jconsole监控jvm
- jvisualvm分析程序资源消耗
jvisualvm
-
datafactory 批量写入数据工具
测试时,我们要关注什么
- 查看服务器日志,是否有报错
- 数据库慢日志
- 关注网络带宽瓶颈
扩展阅读
站点:7点测试
书籍:
《MySQL性能调优与架构设计》
《性能之巅:洞悉系统、企业与云计算》