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

1.
概述

      –
下载地址

19)【锁定和等候】
  机制是影响查询性能的另一个根本元素。当有两个用户并发访问数据库中某一资源的时候,为了保证并发访问的一致性,数据库必须通过锁机制来协调那么些访问

      –【内容简介】:

 

26) 【一个网卡三个IP】
  一个网络接口理所当然地有所一个IP地址,可是除此之外,大家还足以为它安顿更八个IP地址,它们称为IP别名。这里的网络接口可以是物理网卡(如eth0、eth1),也足以是虚构接口(如回环网络接口lo)。按照规定,一个网络接口最多可以设置256个IP别名,没错,你可以把一个C类网段的有所IP地址都安装到一个网卡上,理论上并未其余问题。
 
您或许已经张大了嘴巴,一个网卡竟然可以设置四个IP地址,并且具有同等的MAC地址,没错,它们能够很好地劳作。

      –
百度百科

10) 【Apache多进程模型】
  大家清楚Apache那种多进度模型的支出限制了它的并发连接数,但是Apache也有自身的优势,比如从平安和兼容性的角度看,多进度模型的优势正反映在它相对安全的独门进度,任何一个子进度的垮台都不会影响Aapche本身,Apache父过程可以创制新的子进度

2) 【联合索引】
  因为四遍查询对于一个数据表只好使用一个索引

      PHP 1

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

    《构建高性能Web站点》:

  大家需求做的就是调整调度策略,让用户在四次对话周期内的装有请求始终转载到一台一定的后端服务器上,那种机制也叫做粘滞会话(Sticky
Sessions),要促成它的关键在于怎么着安排持续性调度算法。

  《构建高性能Web站点(修订版)》是畅销修订版,围绕怎么构建高性能Web站点,从三个方面、几个角度展开了完美的阐发,大约涵盖了Web站点性能优化的拥有内容,包涵数据的网络传输、服务器出现处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。在那个情节中充足抓住实质并整合实践,通过通俗易懂的文字和生动有趣的配图,让读者充足并深入明白高性能架构的面目。

 

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

36)【MySQL主从复制】

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 响应时间监控
参考文献
索引

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

正文地址

25) 【Iptables已毕负载均衡】
  说到iptables,最多的拔取场景就是防火墙了,我几乎为每台Linux服务器都一挥而就地开展iptables防火墙配置

33)【更新上级目录时间】
  操作系统本身对于文本的修改并不会自动更新上级目录的改动时间,一些一定的应用程序会这么做,比如通过VI编辑某个文件并保留后,你会意识它的兼具上级目录都会自动更新修改时间。那么,对于文本同步,大家也非得想办法自己来贯彻。

 

本书目录

 

32)【落成公文分发的http增添协议 WebDAV】
  WebDAV的布署性目的还包罗了对于版本控制的支撑,还记得Subversion的HTTP工作办法吧?它便是应用WebDAV来完毕的。

  2. 知识点

40) 【Gearman】
  Gearman是一个开源产品,它的初衷是用来兑现长途函数调用,那样一来,它便能够将计算转移到其他服务器上,而那整个都巧妙地潜伏在它提供的API中

28)【基于IP隧道的央求转载】
  与LVS-DR的法则极度类似,基于IP隧道(IP
Tunneling)的载重均衡系统一样可以用LVS来完结,也称为LVS-TUN。

34) 【下跌费用,升高壮大】
  越是响应数据包远远当先请求数据包的服务(如视频),就越应该下落调度器转移请求的付出,也就越能够加强总体增添能力,最后也就越依赖于WAN出口带宽


  1. 概述

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

  我们以MySQL为例,它帮助主从复制,配置并不复杂,不难地说,你只必要形成以下两点:
  ● 开启主服务器上的二进制日志(log-bin)。
  ● 在主服务器和从服务器上个别开展简短的布局和授权。
  我们领悟,MySQL的主从复制是根据主服务器的二进制日志进行的,也就是说主服务器日志中著录的操作会在从服务器上实行重播,从而完成复制,所以主服务器必须拉开二进制日志,它会自动记录所有对数据库暴发更新的操作,也包括潜在的创新操作,比如没有去除任何实际记录的DELETE操作。
不问可知,那种复制是异步进行

  事实上,很多广阔的站点基本上都经历了从简单主从复制到垂直分区,再到水平分区的手续,这是一个早晚的成才历程

 

7) 【独享带宽】

      –题外话:

14) 【wordpress】
  比如用Wordpress搭建的一个blog,动态内容和数据库完全能够经过UNIX
Socket来树立更为便捷的数据沟通。

  我们运用Nmon工具监视服务器每秒上下文切换次数。Nmon是一个百般不利的Linux性能监视工具

      – 本书目录:   

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

9)【Nmon】

18)【最左原则】
  你肯定已经听说过“最左前缀”那几个组合索引的焦点标准

4)【数据库锁机制】
  机制是震慑查询性能的另一个生死攸关元素。当有八个用户并发访问数据库中某一资源的时候,为了保险并发访问的一致性,数据库必须透过锁机制来协调这么些访问。

13) 【ESI】

1) 【函数追踪】
  Xdebug的另一个要害跟踪功效便是函数跟踪,它可以根据程序在骨子里运行时的实践各类,跟踪记录所有函数的举行时间,以及函数调用时的上下文,包蕴实际参数和再次回到值。没错,那听起来正是大家热切须求的。

43)【监控中央】
  当然,我们还亟需建立监督大旨,对那么些景况数据开展计算和显现。幸运的是,有成千成万开源产品得以扶持我们,那里我们最首要以Cacti为例,它完全可以协助刚刚提到的这个系统监控,并且绘制出相应的图样,便于大家浏览。
Cacti选用RRDtool作为监督数据的存储引擎,它是一种专门针对绘制坐标图而规划的蕴藏格式,相对于任何存储结构来说要省去比比皆是囤积空间,这为大家长时间监控多量服务器提供

  3. 待整理点

 

21)【粘滞回话】

   1.1)【该书新闻】

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


6)【不一样层的载荷均衡】
  事实上,在数据链路层(第二层)、网络层(第三层)以及传输层(四层)都得以兑现分歧体制的载重均衡,但有所分裂的是,那一个负载均衡调度器的工作务必由Linux内核来成功

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

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

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


16)【索引的数据结构】
  索引本身的数据结构(MySQL使用BTree、Hash以及RTree)决定了它们有着充裕高效的追寻算法,大家基本上不用顾虑那有些的成本

  使用数据库反向代理
  借使您在动用MySQL,那么可以尝试MySQL
Proxy,它工作在应用程序和MySQL服务器之间,负责所有请求和响应数据的转化

39)【分区反向代理】
  分区反向代理
  还记得前边提到的MySQL
Proxy吗?它协助应用程序完结了读写分离,而在此处,另一个开源产品Spock
Proxy也起到了就如的效果,它可以协理应用程序落成程度分区的拜访调度,那象征大家不须求在应用程序中保养那么些分区对应涉及了。

2. 知识点

20)【反向代理nginx】

PHP 2PHP 3

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

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

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

 

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

 

**4.
参考文档**

38)【站点成长】

       


享用提纲:

31)【SSH】
  提到SSH(Secure
Shell),大家并不陌生,它是树立在应用层和传输层基础上的安全协议,可以用于传输任何数据,我们愿意用它来落到实处公文复制,当然,那属于积极分发的方法。

27) 【LVS-DR.DNS-RR】
  幸运的是,对于LVS-DR,一旦调度器失效,你可以及时将LVS-DR切换来DNS-RR格局,那大约只要求充实几条DNS记录,将域名解析到多台实在服务器的真正IP地址即可。一旦调度器復苏后,你便可以重新修改DNS记录,将域名仅针对调度器,切换回LVS-DR。

 

22) 【持久性算法】
  还足以应用Cookies机制来规划持久性算法,比如调度器将某个后端服务器的数码追加到写给用户的库克ies中,这样调度器便得以在该用户随后的伸手中驾驭应该转发给哪台后端服务器。那样做可以更加细粒度地追踪到每一个用户,试想一下,当有诸多用户隐藏在一个当着IP地址后边时,利用库克(Cook)ies的持久性算法将显示越发管用。

 

  ESI是由W3C制定的科班,它的语法相当类似于SSI(Server Side
Includes),可以像SSI一样在网页中嵌入子页面,但不相同的是,SSI是在Web服务器端组装内容,而ESI则是在HTTP代理服务器上组建内容,包蕴反向代理。

 

41)【Map/Reduce】
  然而存在一定的并行总结框架,我们来看随后介绍的Map/Reduce。

35)【MogileFS】

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

  4. 参照文档

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

37)【数据库反向代理】

  

**3. 待整理点**

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

相关文章