WEB前端性能(页面+接口)
- 前端性能渲染过程
- Blocked时间
- Connect时间
- Send时间
- Waiting时间
- TTFB
- Receive时间
- 响应时间
- OS相关指标
- idle
- iowait
- us
- sy
- swap
- memory
前端性能渲染过程
Blocked时间
是浏览器查看本地有没有缓存的资源,不会与服务器进行交互,性能中可以忽略
Connect时间
TCP/IP三次握手
长连接:请求发送链接保持,其他图片等资源还可能重复使用
短连接:请求发送后就断开链接
使用场景:一般WEB项目都是长链接,因为要重复时间一些图片、样式等一些静态资源,减少了建立及关闭连接的消耗与延迟,接口一般是短连接,不需要依赖页面资源
长、短连接设置:一般是在nginx、apache、iis等web服务器上设置
使用长连接条件:需要client与server都需要设置允许长连接
Send时间
取决于向服务器发送数据量的大小
GET请求小,POST请求大
Waiting时间
等待服务器的处理时间
TTFB
服务器向客户端返回的第一个字节Byte(第一个Buffer)的时间
价值:衡量网络和服务器的灵敏度
TTFB=Connect+Send+Waiting+第一个返回字节时间
Receive时间
下载时间(文件大小、贷款、是否开启压缩)
两种下载策略:
1、压缩-》下载-〉解压缩 一般文本文件像word、excel压缩比例比较高适合压缩
2、直接下载 像媒体文件mp4压缩比例低
是否开启压缩根据文件类型设置规则:
开启:html、css、js文本类资源
不开启:多媒体、图片
响应时间
FFTB+Receive
OS相关指标
idle
真正空闲,cpu是真正的没有事儿可做。
iowait
空闲,cpu除了等待IO操作以外,没有事情可干, 如果iowait很高,说明网络或者磁盘严重拥堵了。
进程与线程几乎不消耗cpu,io操作很消耗cpu 。
us
用户态–应用程序在执行代码中所消耗的时间,比如腾讯会议、打开的这些软件所消耗的时间。
sy
系统态–sy的值高时,说明系统内核消耗的CPU资源多。
正常应该随着压力增大消耗在us(用户态)上的越多,属于良性表现。
例如:买手机,什么软件都没装,手机本身系统就已经消耗了很大资源,这种不是一个良性表现。
swap
当内存不足时,会采用交换空间的方式,通过swap space 释放不用的物理内存给需要内存的程序使用
如上图,物理内存空间实际4G,程序通过malloc申请实际内存5G,malloc程序申请的内存不会直接操作物理内存,通过A001调用红圈位置的1001间接操作物理内存,当程序需要更多的内存,物理内存不够用的时,会启用交换空间swap space,通过swap out将物理内存中不使用的内存存放到swap space中,再通过swap in方式提供给程序,进行交换,此交换操作通过磁盘进行读写,读取速度要比内存慢很多。一般出现交换空间说明内存已经严重不足,没有足够的物理内存。
memory
cache(读缓存):当内存比较多的时候,linux会缓存最近使用比较多的数据到缓存里面来 ,方便于后面的请求就不用去访问磁盘了,极大的提高了性能。
buffers(写缓存): 例如往数据库里插入10条数据,每次插入的时候都需要访问磁盘,如果内存空间足够大,数据库每次先插入到缓存,等插到10条统一再访问磁盘,这样减少访问磁盘的次数 。
如果发现内存不足,buff cache的数值就会减小,反之说明物理内存充足。
查看内存是否够用:
1.查看是否用上swap si so
2.查看available可用内存:free+buff/cache
程序最大使用内存(虚拟内存)=物理内存+交换空间内存