【读书笔记】2016.12.10 《构建高性能Web站点》

本文地址

 

分享提纲:

  1. 概述

  2. 知识点

  3. 待整理点

  4. 参考文档

 

1.
概述


   1.1)【该书音讯】

    《构建高性能Web站点》:

      图片 1

      –
百度完善

      – 本书目录:   

图片 2图片 3

第1章 绪论
1.1 等待的真相
1.2 瓶颈在哪里
1.3 增加带宽
1.4 减少网页中的HTTP请求
1.5 加快服务器脚本计算速度
1.6 使用动态内容缓存
1.7 使用数据缓存
1.8 将动态内容静态化
1.9 更换Web服务器软件
1.10 页面组件分离
1.11 合理部署服务器
1.12 使用负载均衡
1.13 优化数据库
1.14 考虑可扩展性
1.15 减少视觉等待
第2章 数据的网络传输
2.1 分层网络模型
2.2 带宽
2.3 响应时间
2.4 互联互通
第3章 服务器并发处理能力
3.1 吞吐率
3.2 CPU并发计算
3.3 系统调用
3.4 内存分配
3.5 持久连接
3.6 I/O模型
3.7 服务器并发策略
第4章 动态内容缓存
4.1 重复的开销
4.2 缓存与速度
4.3 页面缓存
4.4 局部无缓存
4.5 静态化内容
第5章 动态脚本加速
5.1 opcode缓存
5.2 解释器扩展模块
5.3 脚本跟踪与分析
第6章 浏览器缓存
6.1 别忘了浏览器
6.2 缓存协商
6.3 彻底消灭请求
第7章 Web服务器缓存
7.1 URL映射
7.2 缓存响应内容
7.3 缓存文件描述符
第8章 反向代理缓存
8.1 传统代理
8.2 何为反向
8.3 在反向代理上创建缓存
8.4 小心穿过代理
8.5 流量分配
第9章 Web组件分离
9.1 备受争议的分离
9.2 因材施教
9.3 拥有不同的域名
9.4 浏览器并发数
9.5 发挥各自的潜力
第10章 分布式缓存
10.1 数据库的前端缓存区
10.2 使用memcached
10.3 读操作缓存
10.4 写操作缓存
10.5 监控状态
10.6 缓存扩展
第11章 数据库性能优化
11.1 友好的状态报告
11.2 正确使用索引
11.3 锁定与等待
11.4 事务性表的性能
11.5 使用查询缓存
11.6 临时表
11.7 线程池
11.8 反范式化设计
11.9 放弃关系型数据库
第12章 Web负载均衡
12.1 一些思考
12.2 HTTP重定向
12.3 DNS负载均衡
12.4 反向代理负载均衡
12.5 IP负载均衡
12.6 直接路由
12.7 IP隧道
12.8 考虑可用性
第13章 共享文件系统
13.1 网络共享
13.2 NFS
13.3 局限性
第14章 内容分发和同步
14.1 复制
14.2 SSH
14.3 WebDAV
14.4 rsync
14.5 Hashtree
14.6 分发还是同步
14.7 反向代理
第15章 分布式文件系统
15.1 文件系统
15.2 存储节点和追踪器
15.3 MogileFS
第16章 数据库扩展
16.1 复制和分离
16.2 垂直分区
16.3 水平分区
第17章 分布式计算
17.1 异步计算
17.2 并行计算
第18章 性能监控
18.1 实时监控
18.2 监控代理
18.3 系统监控
18.4 服务监控
18.5 响应时间监控
参考文献
索引

本书目录

      –
下载地址

      –【内容简介】:

  《构建高性能Web站点(修订版)》是畅销修订版,围绕怎么构建高性能Web站点,从两个地点、三个角度展开了完善的论述,大致涵盖了Web站点性能优化的保有情节,包含数据的网络传输、服务器出现处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。在这么些情节中尽量抓住实质并整合实施,通过通俗易懂的文字和生动有趣的配图,让读者丰硕并长远驾驭高性能架构的面目。

      –题外话:

      那本书,我是在
微信读书app上看的,感觉很正确。可以分享想法,有布置还会买纸质的书,好好研读。

       

 

 

2. 知识点


  

1) 【函数追踪】
  Xdebug的另一个要害跟踪功效便是函数跟踪,它可以按照程序在其实运行时的实践顺序,跟踪记录所有函数的举行时间,以及函数调用时的上下文,包蕴实际参数和重临值。没错,那听起来正是大家急迫须求的。

2) 【联合索引】
  因为一次询问对于一个数据表只可以选用一个目录

3) 【最左前缀】
  你势必已经听说过“最左前缀”这些组成索引的主旨尺度

 

4)【数据库锁机制】
  机制是震慑查询性能的另一个主要因素。当有三个用户并发访问数据库中某一资源的时候,为了保障并发访问的一致性,数据库必须经过锁机制来协调那一个访问。

5) 【第三范式】
  第三范式要求在一个数目表中,非主键字段之间不可能存在依靠关系

6)【不一致层的负荷均衡】
  事实上,在多少链路层(第二层)、网络层(第三层)以及传输层(四层)都落实不一样体制的载重均衡,但有所分化的是,这一个负载均衡调度器的做事务必由Linux内核来成功

7) 【独享带宽】

  那才叫独享带宽,它独享的是路由器的一片段出口带宽,而不是互换机的带宽,因为调换机本来就是各种端口独享带宽而互不影响。

8) 【中国互联网】
  中国,由中国联通运营的互联网,也就是大家常说的“中国宽带互联网(CHINANET)”,它的骨干网络基本节点位于首都上地电信数据主导,它经过一直接入包蕴首都在内的国内8个至关主要城市节点,进而连接二级网络,然后层层延伸扩张,平素到周边城市、IDC、家庭宽带接入等。

9)【Nmon】

  大家采纳Nmon工具监视服务器每秒上下文切换次数。Nmon是一个相当不错的Linux性能监视工具

10) 【Apache多进度模型】
  我们领略Apache那种多进程模型的付出限制了它的并发连接数,然而Apache也有自我的优势,比如从平安和包容性的角度看,多进度模型的优势正反映在它相对安全的单身进度,任何一个子历程的夭亡都不会影响Aapche本身,Apache父进度可以创设新的子进度

11) 【脚本解释器】
  脚本解释器平时运行在Web服务器的进度中(如Apache-prefork模型的子进度),或者以fastcgi进度的款式独立运行。

12)【PHP中引入Java】
  举个例证,对于有些PHP开发者来说,要想间接在Web应用程序中援引Java类库,就得在PHP中加载Java增加模块,

13) 【ESI】

  ESI是由W3C制定的业内,它的语法格外相近于SSI(Server Side
Includes),可以像SSI一样在网页中嵌入子页面,但区其余是,SSI是在Web服务器端组装内容,而ESI则是在HTTP代理服务器上组建内容,包含反向代理。

14) 【wordpress】
  比如用Wordpress搭建的一个blog,动态内容和数据库完全可以由此UNIX
Socket来建立尤其神速的数据交流。

15)【数据库状态】
  mysql> show status;

  mysql> show innodb status;
  show processlist命令
  比如大家经过dig命令看到www.sina.com.cn指向了16台服务器

16)【索引的数据结构】
  索引本身的数据结构(MySQL使用BTree、Hash以及RTree)决定了它们有着丰盛急迅的查找算法,大家大多不用操心那有些的支出

17) 【创造索引的动静】
  一般的话,假若一个字段出现在查询语句中基于行的取舍、过滤或排序条件中,那么为该字段建立目录便是有价值的

18)【最左原则】
  你一定已经听说过“最左前缀”那个组成索引的要旨尺度

19)【锁定和等候】
  机制是熏陶查询性能的另一个重中之重因素。当有两个用户并发访问数据库中某一资源的时候,为了确保并发访问的一致性,数据库必须通过锁机制来协调这么些访问

20)【反向代理nginx】

  大家通晓反向代理服务器工作在HTTP层面,对于所有HTTP请求都要亲身转

21)【粘滞回话】

  大家要求做的就是调整调度策略,让用户在两遍对话周期内的具有请求始终转载到一台一定的后端服务器上,这种体制也叫做粘滞会话(Sticky
Sessions),要兑现它的关键在于怎么样规划持续性调度算法。

22) 【持久性算法】
  还是能利用库克(Cook)ies机制来统筹持久性算法,比如调度器将某个后端服务器的编号追加到写给用户的库克(Cook)ies中,这样调度器便得以在该用户随后的呼吁中透亮应该转载给哪台后端服务器。那样做可以进一步细粒度地追踪到每一个用户,试想一下,当有不少用户隐藏在一个了然IP地址前面时,利用Cookies的持久性算法将显得尤其有效。

23)【最好与当地无关】
  在后端服务器上保留Session数据和本地化缓存,的确是一件不明智的事情,它使得后端服务器显得过于个性化,以至于和所有系统格格不入,倘若同意的话,咱们应当尽量防止那样的筹划,比如利用分布式Session或者分布式缓存等,让后端服务器的应用尽量与地面无关,也可更好地适应环境

24)【IP负载均衡】
  回想一下网络分层模型,事实上,在多少链路层(第二层)、网络层(第三层)以及传输层(四层)都可以兑现差别体制的负载均衡,但有所不一样的是,那一个负载均衡调度器的办事务必由Linux内核来完成

25) 【Iptables已毕负载均衡】
  说到iptables,最多的行使场景就是防火墙了,我大约为每台Linux服务器都坚决地举行iptables防火墙配置

26) 【一个网卡多少个IP】
  一个网络接口理所当然地拥有一个IP地址,可是除此之外,我们仍是可以为它配置越来越多少个IP地址,它们称为IP别名。那里的网络接口能够是情理网卡(如eth0、eth1),也得以是虚构接口(如回环网络接口lo)。依照规定,一个网络接口最多可以安装256个IP别名,没错,你可以把一个C类网段的享有IP地址都安装到一个网卡上,理论上未曾其它问题。
 
你可能已经张大了满嘴,一个网卡竟然可以设置七个IP地址,并且拥有相同的MAC地址,没错,它们得以很好地劳作。

27) 【LVS-DR.DNS-RR】
  幸运的是,对于LVS-DR,一旦调度器失效,你可以登时将LVS-DR切换到DNS-RR方式,那大致只需求伸张几条DNS记录,将域名解析到多台实在服务器的忠实IP地址即可。一旦调度器复苏后,你便可以再度修改DNS记录,将域名仅针对调度器,切换回LVS-DR。

28)【基于IP隧道的乞求转载】
  与LVS-DR的原理格外类似,基于IP隧道(IP
Tunneling)的负载均衡系统一样可以用LVS来贯彻,也称之为LVS-TUN。

29)【共享文件系统】
  对于共享文件系统的落到实处,常用的有NFS(Network File System)和山姆(Sam)ba

30)【RPC】
  对于传输层,RPC服务默许使用了UDP,

31)【SSH】
  提到SSH(Secure
Shell),大家并不生疏,它是手无寸铁在应用层和传输层基础上的安全磋商,可以用来传输任何数据,大家期望用它来落到实处文件复制,当然,那属于主动分发的主意。

32)【完毕文件分发的http增加协议 WebDAV】
  WebDAV的设计目标还包含了对于版本控制的支撑,还记得Subversion的HTTP工作措施吗?它便是使用WebDAV来落成的。

33)【更新上级目录时间】
  操作系统本身对于文本的改动并不会自动更新上级目录的修改时间,一些特定的应用程序会如此做,比如通过VI编辑某个文件并保存后,你会发觉它的保有上级目录都会自动更新修改时间。那么,对于文本同步,大家也非得想方法自己来落实。

34) 【下降开支,进步壮大】
  越是响应数据包远远超过请求数据包的劳务(如视频),就越应该下落调度器转移请求的支出,也就越可以加强总体增加能力,最后也就越依赖于WAN出口带宽

35)【MogileFS】

  MogileFS是一个开源的分布式文件系统,它拔取Perl编写,包含追踪器、存储节点,以及部分管理工具,除此之外,追踪器使用MySQL来储存分布式文件系统运行中的所有音信。

36)【MySQL主从复制】

  大家以MySQL为例,它协助主从复制,配置并不复杂,不难地说,你只须要做到以下两点:
  ● 开启主服务器上的二进制日志(log-bin)。
  ● 在主服务器和从服务器上分别进行简单的计划和授权。
  大家知道,MySQL的主从复制是按照主服务器的二进制日志举行的,也就是说主服务器日志中著录的操作会在从服务器上举行回看,从而完成复制,所以主服务器必须开启二进制日志,它会自动记录所有对数据库爆发更新的操作,也席卷潜在的换代操作,比如没有删除任何实际记录的DELETE操作。
精通,那种复制是异步进行

37)【数据库反向代理】

  使用数据库反向代理
  要是你在选取MySQL,那么可以尝尝MySQL
Proxy,它工作在应用程序和MySQL服务器之间,负责所有请求和响应数据的转会

38)【站点成长】

  事实上,很多科普的站点基本上都经历了从不难主从复制到垂直分区,再到水平分区的步调,那是一个必将的成材进度

39)【分区反向代理】
  分区反向代理
  还记得前边提到的MySQL
Proxy吗?它协助应用程序达成了读写分离,而在那里,另一个开源产品Spock
Proxy也起到了类似的成效,它可以帮助应用程序完结程度分区的造访调度,那代表大家不要求在应用程序中尊敬这一个分区对应提到了。

40) 【Gearman】
  Gearman是一个开源产品,它的初衷是用来兑现长途函数调用,那样一来,它便得以将统计转移到其他服务器上,而这一体都巧妙地躲藏在它提供的API中

41)【Map/Reduce】
  可是存在一定的并行计算框架,咱们来看随后介绍的Map/Reduce。

42)【Nmon】
  Nmon是一款工作在服务器本地的实时督查软件,它可以提供时间间隔为秒的系统监控

43)【监控宗旨】
  当然,大家还亟需建立监督中央,对这几个景况数据开展计算和展现。幸运的是,有为数不少开源产品得以辅助大家,那里我们最主要以Cacti为例,它完全可以帮助刚刚提到的这么些系统监控,并且绘制出相应的图形,便于大家浏览。
Cacti选择RRDtool作为监督数据的储存引擎,它是一种越发针对绘制坐标图而陈设的贮存格式,相对于其它存储结构来说要节约成千上万囤积空间,那为大家短时间监控多量服务器提供

 

 

**3. 待整理点**


 

 

 

**4.
参照文档**


 

网站地图xml地图