《大型网站性能优化指南——从前端、网络、CDN到后端、大促的全链路性能优化详解》读后感和一点思考

news/2024/5/20 4:35:37/文章来源:https://xduwq.blog.csdn.net/article/details/117715721

前言:这几天拜读了阿里的这本书,这本书全栈式地讲了一个成熟稳定的大型高并发高容量系统的优化过程,读下来很有收获,也有一些自己的思考。CDN-DNS、网络部分讲的挺精彩的,值得一读的一本书。由于我是后端方向,前端的部分就没出现在这篇文章里(因为看不懂)。

目录

先挑剔一下

本书整体结构

高性能网站建设指南 12条基本准则

用户体验性能指标

QPS相关公式

CPU利用率影响因素

压测的意义

QPS预估-二八法则

网络同步与异步模型

IO同步与异步模型

CDN基本工作流程

参考


先挑剔一下

这本书在豆瓣的评分并不高,还是有原因的。blog先斗胆里挑挑骨头吧~

  1. 数据库调优这部分讲的非常敷衍,其实我觉得数据库调优是后端优化中很重要的一部分,推荐《高性能MySQL》。
  2. 数据结构优化讲得比较片面,并且是基于Java,C++同学可以看看《effective stl》,很多调优和底层原理都在这本书里讲得很清楚。
  3. 对后端优化最有效的方法永远都是:加机器加机器加机器,加cache加cache加cache

本书整体结构

图源:https://blog.csdn.net/yuxiuzhiai/article/details/106701446

高性能网站建设指南 12条基本准则

  1. 尽量减少HTTP请求。
  2. 使用CDN。
  3. 静态资源使用Cache。
  4. 启用Gzip压缩。
  5. JavaScript脚本尽量放在页面底部。
  6. CSS样式表放在顶部。
  7. 避免CSS表达式。
  8. 减少内联JavaScript和CSS的使用,尽可能使用外部JavaScript和CSS文件。
  9. 减少DNS查询。
  10. 精简JavaScript。
  11. 避免重定向。
  12. 删除重复的脚本。

用户体验性能指标

  • 白屏
  • 首屏
  • 页面整体加载

QPS相关公式

(1)响应时间 = CPU线程时间 + 等待线程时间

(2)最佳线程数 = (响应时间 / CPU 时间)* CPU核数 * CPU利用率

(3)安达尔定理:S=1/(1-a+a/n)
                               S:加速比
                               a:并行计算部分所占比例
                               n:并行处理结点个数(处理器个数)

(4)古斯塔夫森定律

CPU利用率影响因素

  1. I/O能力:磁盘I/O和网络I/O
  2. 数据库连接池,并发能力
  3. 内存
  4. 共享资源的竞争,各种锁策略、阻塞队列
  5. 同步模型中的线程数或进程数
  6. 所依赖的其他后端

压测的意义

压测最主要的是测性能是否有变化,也能测试出一些漏洞,比如慢性内存泄漏。

QPS预估-二八法则

如果每天集群需要承载10亿数据请求,对于电商网站而言,一般0点到上午8点请求量很小。

使用二八法则估计:

  1. 80%的数据( 8亿)会在其余16个小时(8点-24点)涌入

  2. 而且8亿的80%的数据( 6.4亿)会在这16个小时的20%时间( 3小时内)涌入:

    QPS=6 4000 0000 / (36060)=60000

    即预估结果为Kafka集群需要在业务最高峰期抗住 60000/s 的 QPS。

网络同步与异步模型

网络模型的同步与异步常常指事件处理的同步与异步。比如一个网络交互分为第一步请求,第二步 响应。那么常常有俩种选择,第一种等对方返回结果了我们再进行接下来操作。第二种我们可以设置个回调函数,然后可以不阻塞等待对方返回结果,如果对方返回结果了,回调函数触发,这样就不会阻塞到等待结果那步了。那么这俩种第一种称为同步网络模型,第二种称为异步网络模型。

IO同步与异步模型

网络 I/O 的同步与异步跟网络模型的同步与异步不同。在网络 I/O 接口中,有阻塞、非阻塞、多路复用、信号驱动、异步I/O五中I/O模型。网络I/O分为俩步,第一步等待条件就绪,第二步进行真正的数据I/O也就是把socket接受的数据搬移到应用层buffer中。
那么这五中I/O模型中,前四种的第一步骤各有不同,但是第二个步骤都一样的都需要我们自己去I/O,但是异步I/O模型则不同它是由内核帮忙I/O然后通过信号通知程序,也就是当程序收到信号的时候我们就可以直接去处理数据了不用再去从socket中搬移数据到应用层buffer中了。

CDN基本工作流程

①当用户点击网站页面上的内容URL,经过本地DNS系统解析,DNS系统会最终将域名的解析权交给CNAME指向的CDN专用DNS服务器。

②CDN的DNS服务器将CDN的全局负载均衡设备IP地址返回用户。

③用户向CDN的全局负载均衡设备发起内容URL访问请求。

④CDN全局负载均衡设备根据用户IP地址,以及用户请求的内容URL,选择一台用户所属区域的区域负载均衡设备,告诉用户向这台设备发起请求。

⑤区域负载均衡设备会为用户选择一台合适的缓存服务器提供服务,选择的依据包括:根据用户IP地址,判断哪一台服务器距用户最近;根据用户所请求的URL中携带的内容名称,判断哪一台服务器上有用户所需内容;查询各个服务器当前的负载情况,判断哪一台服务器尚有服务能力。基于以上这些条件的综合分析之后,区域负载均衡设备会向全局负载均衡设备返回一台缓存服务器的IP地址。

⑥全局负载均衡设备把服务器的IP地址返回给用户。

⑦用户向缓存服务器发起请求,缓存服务器响应用户请求,将用户所需内容传送到用户终端。如果这台缓存服务器上并没有用户想要的内容,而区域均衡设备依然将它分配给了用户,那么这台服务器就要向它的上一级缓存服务器请求内容,直至追溯到网站的源服务器将内容拉到本地。

参考

  • https://www.cnblogs.com/crazylqy/p/7110156.html
  • https://blog.csdn.net/baichoufei90/article/details/106484092
  • https://blog.csdn.net/opensure/article/details/46714793

最后,感谢西电图书馆提供纸质书。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_733687.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站用户行为分析项目之会话切割(一)

文章目录0x00 教程内容0x01 项目分析1. 项目背景2. 学习收获3. 数据源介绍4. 项目总体流程5. 最终数据结构0x02 编程实现1. 构建Maven项目2. 编码前准备工作3. 实现源数据的获取4. 解析日志源数据5. 日志清洗操作0x03 思路回顾0xFF 总结0x00 教程内容 项目分析编程实现 基础知…

网站正在建设中_兰州网站建设中常见的布局种类有什么

网站是由网页构成,这点许多从事网站建设或者是接触过网站开发的应该都比较清楚,目前虽然许多的企业都想要建设网站,但是对于网站的布局了解并不清楚,下面随小编一起来了解一下兰州网站建设中几种常见的布局吧。1、区块型为了网站优…

做服务端用Java还是PHP_建站用php还是java

建站用php还是java?建站用php,因为php是常用的网站编程语言,有全球超过81.7%的公共网站在服务器端采用PHP。而Java是一门面向对象编程语言,更适于系统程序的开发。phpPHP即“超文本预处理器”,是一种通用开源脚本语言。…

百度爬虫爬到虚拟链接 网站被黑_什么是爬虫?如何提高爬虫爬取网页速度?...

什么是爬虫?网络爬虫也叫网络机器人和网络蜘蛛,它可以代替人工按照一定的规则自动地的在互联网中进行数据采集与整理。各大搜索引擎也都有各自的名字,如百度蜘蛛:BaiduSpider,谷歌蜘蛛:Googlebot&#xff0…

jmeter怎么监控网站服务器,Jmeter监控服务器资源

1. 前言之前用Jmeter做性能测试时总是通过其他工具来监控服务器资源,通过查找资料,发现Jmeter自带的监控工具能监控tomcat,这种情况只能监控Tomcat支持的资源使用部分,完全是不够用的,于是发现有第三方插件支持Jmeter监…

91pay.php,电商网站使用支付宝转账付款功能代替支付宝支付接口

现在支付宝商户对于商家接入支付宝即时到账接口管理比较严格,一般都是需要支付宝企业账户才能申请开通即时到账接口的。这对于大部分个人商家来说,无疑不利于快速回笼资金。本接口通过一个变通的方式,利用支付宝系统中的转账付款功能&#xf…

建站难?史上最全指南 — 教你使用WordPress搭建出属于自己的站点!

文章目录引言购买服务器购买域名解析域名部署WordPress安装nginx服务器安装PHP运行环境新建个人站点下载并安装WordPress安装主题网站备案SSL证书(HTTPS)页面伪静态网站类型选择结语引言 很多朋友都想拥有自己的个人网站,但事实如果自己从头搭…

网站中文乱码?三招解决

发布网站后&#xff0c;不少小伙伴都会碰到中文乱码问题。 碰到这种问题不用慌&#xff0c;三招就可以解决&#xff1a; 第一招&#xff1a;设置好页面的编码&#xff0c;建议用utf-8编码格式&#xff0c;一招鲜&#xff0c;吃天下。 <meta http-equiv"Content-Type&qu…

网站开发知识结构

网站开发知识结构 https://github.com/TeamStuQ/skill-map https://blog.csdn.net/fenglailea/article/details/52609188 转载于:https://www.cnblogs.com/iamspecialone/p/11203256.html

ctfhub——网站源码python脚本解法

1.打开题目页面如下&#xff1a; 2.编写脚本之前&#xff0c;先学习一下python request模块中正常访问页面代码怎么写 import requests url "http://42.192.212.170/" r requests.get(url) print (r,r.status_code,end" ") 输出结果&#xff1a; 3.下…

python爬虫——获取网站中的特定块元素内容(二)

一、实现的目标 目标&#xff1a;获取如图所示网站中块元素的内容 二、代码编写 import requests #导入request模块 import re #导入re模块 url "https://www.baidu.com/" #等会要爬的url地址 header {User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:9…

python爬虫——获取网站中的特定块元素内容(一)

一、实现的目标 目标&#xff1a;获取如图所示网站中所标的元素内容 二、代码编写 import requests import re import json url "https://open.weibo.com/" header {User-Agent:ozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0…

wordpress 搭建的博客: 增加网站备案信息

问题描述 使用阿里云的主机&#xff0c;搭建了一个基于wordpress的博客&#xff0c;因为注册的域名是.com&#xff0c;需要网站开启后&#xff0c;增加网站备案的信息搭建好 wordpress 博客后&#xff0c;发现没有地方配置【网站备案信息】 主题 我使用的是 wordpress 的一个…

图片优化_网站图片SEO优化应该怎么做

作为一名SEOer人员一定要学会图片SEO优化&#xff0c;现在百度对图片优化这块相当的看重&#xff0c;并且会抓取并收录图片&#xff0c;最直接的表现就是搜索某一个关键词点击【图片】的时候能看见一大堆的相关图片&#xff0c;由此可见搜索引擎对图片识别能力已经越来越强了&a…

效果图网站、外包平台接单平台有哪些?

作为一名设计师或画图员&#xff0c;设计方案、画图、收集素材、接单、学习充电等&#xff0c;都有哪些网站可以用到呢&#xff1f;下面我就整理了一下。 综合设计类网站 国外室内设计网站 https://www.houzz.com/ 国外优秀设计作品网站 https://www.behance.net/ 国外室内设计…

自定义表单提交筛选分页怎么做_如何优化网站的筛选页面?

网站设计的重要目标之一就是做好清晰的导航系统&#xff0c;这不论是对网站的信息结构、还是用户体验&#xff0c;都有着重要的影响。这也是网站SEO优化工作中需要考虑的重要因素之一。在导航系统当中&#xff0c;通过不同筛选条件组成不同网站页面的&#xff0c;就是分页导航&…

类似纪念碑谷的unity2d素材包_短视频文案怎么写吸引人?短视频文案素材网站有哪些?(纯干货)...

你会写短视频文案吗&#xff1f;有没有被那几十个字绞尽脑汁&#xff1f;你知道短视频文案怎么写吸引人吗&#xff1f;你是不是看了很多短视频文案怎么写吸引人的文章还是仍然不会写?.....你是不是也正在为这些问题愁眉不展&#xff1f;今天这篇文章就来说说短视频文案怎么写吸…

什么是seo(seo是什么意思?)

什么是seo(seo是什么意思?) SEO是就会实践才有发言权的&#xff0c;在不间断学习途中&#xff0c;敢于总括和创意&#xff0c;深信能让需要的seo推广取的非常好成效。如果您在学习了部分seo推广教程或者参加完相干培训学校以后&#xff0c;不能实践&#xff0c;只说不练&#…

seo网络培训机构(seo教育)

seo网络培训机构(seo教育) 再一个&#xff1a;常宁网络营销-小高seo是需要参加培训学习的&#xff0c;敢于掌握关键词优化分享对我们攀升百度排序排名绝对有益处,百度优化要按照网页如今的状态来定&#xff0c;按照状态应对&#xff0c;您能够实施百度优化和网站版面改动设计&a…

seo的优势与缺点(seo误区)

seo的优势与缺点(seo误区) 另一方面&#xff0c;真正的SEOer不只是为了追求收录、排名&#xff0c;快速的响应速度是提高用户体验度的基础&#xff0c;这对整个搜索引擎优化及营销都是非常有利的。&#xff0c;但随着搜索引擎的发展愈来愈全面&#xff0c;只针对搜索引擎喜好的…