怪兽大作战--解析网站打开慢的原因

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
日志服务 SLS,月写入数据量 50GB 1个月
云解析 DNS,旗舰版 1个月
简介: 在开始前,博主先百度下“为什么xx打开慢”,结果如下 传统巨头 百度 30,200,000   新浪 48,200,000   搜狐   4,420,000 新兴贵族 知乎 47,100,000   豆瓣   6,230,000   优酷   2,310,000 为什么互联网技术发展到今天,依然无法彻底解决网站打开慢的问题?这是IT行业的顽疾不可治愈吗? 从数据上可以看到 知乎虽然是新兴贵族,但其网站打开慢的次数却比传统巨头百度还要多,几乎和新浪并肩,新浪有数十年打开慢次数的积累,才险胜知乎,知乎作为后期只秀真是令人刮目相看。

在开始前,博主先百度下“为什么xx打开慢”,结果如下

传统巨头

百度 30,200,000   新浪 48,200,000   搜狐   4,420,000

新兴贵族

知乎 47,100,000   豆瓣   6,230,000   优酷   2,310,000

为什么互联网技术发展到今天,依然无法彻底解决网站打开慢的问题?这是IT行业的顽疾不可治愈吗?

从数据上可以看到 知乎虽然是新兴贵族,但其网站打开慢的次数却比传统巨头百度还要多,几乎和新浪并肩,新浪有数十年打开慢次数的积累,才险胜知乎,知乎作为后期只秀真是令人刮目相看。

而优酷则是出现打开慢次数最少的一家,可见 各大互联网公司在技术的储备和运用上还是有差别的。

用户打开浏览器,输入网址,页面就加载出来。这简简单单的背后到底隐藏这什么怪兽,让各大互联网势力忙的不可开交?

首先请看一张图,这是在浏览器打开一个页面,浏览器都干了些什么的时间表,

在高级浏览器例如chrome,可以通过js脚本window.performance.timing 拿到这些数据,oneapm 的Browser Insight 就是以此为基础开发出来的

c4bc83668f2ad472179d88f60ab3051a

看着一堆英文,你一定晕了,其实我也晕了。

通常诊断网站打开慢,把这个时间表可以简单的分为3个过程,来进行分析就好了 ,每个过程都包含一些细节

1 网络链接的时间 (fetchStart-responseStart)

2 浏览器接受数据构建页面(responseStart-domContentLoadedEventStart)

3 页面加载资源并渲染页面(domContentLoadedEventStart-loadEventEnd)

 

分身兽

导致网站打开慢的第一只怪兽必然是 网络链接时间,互联网公司中土豪勉强和这只怪兽打个平手,其他互联网公司均早早鸣金收兵。

因为这只怪兽竟然会分身,首先分身为电信网络和联通网络,然后又都分身为全国34个行政区,如果有时候你觉得你打开网站速度很快,但是某些地区的用户打开网站很慢,那一定是这个地区的怪兽太强了~,对付这只怪兽通常用的武器

1 dns 加速 例如 dnspod,加速你在全国的域名解析速度

2 网站镜像,解决多线路互通的问题,例如 联通 电信 移动

3 cdn加速,让你的资源距离用户更近一些,打开速度自然更快

遗憾的是 这3招都是烧钱的,一口气全用上,不是土豪根本用不起,所以要分析清楚自己的访客群在哪,有的放矢的花点银子

幻化兽

导致网站打开慢的第二只怪兽 就是接受数据的速度,在解决第一只怪兽后,能影响接受数据速度的主要是服务器的响应时间,尤其是当用户量比较大,数据比较多,业务比较复杂的时候,这只怪兽竟然 会跟着幻化,例如高并发下的分布式事务锁(电商),海量数据的快速检索(搜索),图片、视频快速加载(多媒体)

和这头怪兽作战,主要是靠人才和常年累月的技术积累,各大互联网公司也只一致的,均采取拥抱开源+垄断人才的措施,这就是为什么最近几年应届毕业生的价码越来越高,垄断人才的战斗从这里就开始了。

分裂兽

导致网站打开慢的第三只怪兽是最近几年才出现,以前页面比较简单,承载的业务也单一,随着时间的推移,一个页面越来越大,业务越来越复杂,进而问题也就跟着来了。

这是一只分裂兽,这只怪兽通常喜欢和用户呆在一起,却你玩做迷藏的游戏,现在主要分裂为 ie、火狐、chrome、各大浏览器的移动版 和国产手机上的国产浏览器,国产的太复杂就不一一列举了。

这里一 新浪微博为例,微博登录后的首页,累计发起了281个请求用来加载各种各样的资源,一个简简单单的发微博的页面都是如此的复杂,更不用说大家平时用其他系统了。

image

这是错误日志

image

 

各大互联网公司在同分裂兽作战的过程中,胜多败少,这样的战绩,中小公司难以望其项背

原因如下

1 一个页面都加载这么多资源,一个站点N个页面加载的资源更多遇到的问题也会更多,可见和分身兽交战是多磨灿烈,没有大量的技术人才,和准确的分析,难有胜算,一线互联网公司因为在这一块有着丰富的积累,所以平手居多,你看新浪也是用了近 10秒才完成所有资源的加载。

2 对这些资源进行管理需要用到 前端工程师,而网页变的复杂也是最近几年的事情,前端工程师的培养有个过程,除了老牌互联网公司有技术储备和人才储备能够稳住阵脚,其他公司都是疲于应战例如 随便打QQ商城   http://www.wanggou.com/  一个电子商务的首页, 就报js错误,至于这个错误影不影响业务,我就不清楚了

image

对js错误日志的收集和分析,也是一件复杂的事情,因为访问量越大,数据量越大,除了大公司,小公司做自己业务都人手不够,更不用说浏览器日志收集这些和业务无关的事情了。

服务器端可以随便打日志,看日志,而浏览器端只能闭着眼睛,猜!用户遇到什么故障了往往只有打电话吐诉后远程桌面,才能知道,效率十分低下。

test
相关文章
|
3月前
|
域名解析 网络协议 安全
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
在Linux中,想在命令行下访问某个网站,并且该网站域名还没有解析,如何做?
|
域名解析 弹性计算 运维
【运维】阿里云宝塔面板域名DNS解析(如何配置用域名访问网站)
【运维】阿里云宝塔面板域名DNS解析(如何配置用域名访问网站)
3563 0
【运维】阿里云宝塔面板域名DNS解析(如何配置用域名访问网站)
|
24天前
|
监控 网络协议 应用服务中间件
深入解析:如何确定网站使用的端口号
【10月更文挑战第21天】 在网络通信中,端口号是识别特定服务的关键。一个IP地址可以有多个端口,每个端口可能运行着不同的服务。当我们在浏览器地址栏输入一个网址时,实际上是通过特定的端口与服务器进行通信。本文将探讨如何确定一个网站使用的端口号,以及端口号在网络通信中的作用。
33 4
|
1月前
|
数据采集 XML 前端开发
Jsoup在Java中:解析京东网站数据
Jsoup在Java中:解析京东网站数据
|
1月前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
1月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
26 0
|
4月前
|
JSON 文字识别 数据格式
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
文本,文识11,解析OCR结果,paddOCR返回的数据,接口返回的数据有code,data,OCR返回是JSON的数据,得到JSON数据先安装依赖,Base64转换工具网站在21.14
|
3月前
|
缓存 网络协议 Linux
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
在Linux中,当用户在浏览器当中输入⼀个网站,计算机对dns解释经过那些流程?
|
4月前
|
编解码 JSON 文字识别
印刷文字识别使用问题之进行表格解析时年份和灰色部分没解析出来,网站体验能检测到,该如何优化
印刷文字识别产品,通常称为OCR(Optical Character Recognition)技术,是一种将图像中的印刷或手写文字转换为机器编码文本的过程。这项技术广泛应用于多个行业和场景中,显著提升文档处理、信息提取和数据录入的效率。以下是印刷文字识别产品的一些典型使用合集。
|
5月前
|
弹性计算 运维 Java
解决方案测评(高效构建企业门户网站方案)基于ecs&云效&云解析DNS&VPC结合的自搭建方案报告
该文档是一个关于使用ECS、云效、云解析DNS和VPC结合的自搭建方案报告。主要内容包括前言部分,可能详细探讨了如何集成这些阿里云服务以构建自定义系统。由于提供的内容有限,具体的实施方案和细节未在摘要中体现。
221 2

推荐镜像

更多