《构建高性能web站点》读后笔记

《构建高性能web站点》读后笔记

1 绪论

1)增加带宽

2)减少网页中的HTTP请求

3)加快服务器脚本计算速度

4)使用动态内容缓存

5)使用数据缓存

6)将动态内容静态化

7)更换web服务器软件

8)页面组件分离

9)合理部署服务器

10)使用负载均衡

11)优化数据库

12)考虑可扩展性

13)减少视觉等待

2 数据的网络传输

带宽:单位是“bit/s

响应时间 = 发送时间 + 传播时间 + 处理时间

3 服务器并发处理能力

吞吐率:我们一般使用单位时间内服务器处理的请求数来描述其并发处理能力,单位是“reqs/s

并发用户数、并发连接数

持久连接

4 动态内容缓存

5 动态脚本加速

操作码缓存

代码跟踪分析

6 浏览器缓存

缓存协商:(1Last-Modified 第一次请求返回带修改时间的响应,第二次请求时浏览器带回If-Modified-Since,如果没有修改则服务器返回304。(2ETag方法 给每个文件标记一个ETag值。

彻底消灭请求:浏览器缓存截止期Expires

7 Web服务器缓存

8 反向代理缓存

传统代理服务器:用户隐藏在代理服务器之后

反向代理服务器:web服务器隐藏在代理服务器之后


9 Web组件分离

使用现有站点的二级域名,使其指向不同web组件服务器,能够提高浏览器并发下载数,因为浏览器并发下载限制只是对同一域名的。

10 分布式缓存


11 数据库性能优化

索引:全表扫描、索引扫描

12 Web负载均衡

1)基于重定向的负载均衡:用户访问统一进入主站,由主站调度程序进行分发,分到不同的实际服务器上去

2)基于DNS的负载均衡:进行dns设置,使其指向多台服务器

可以根据用户IP地址选择就近服务器

Dig www.bilibili.com命令可以分析网站DNSA记录

3)基于反向代理的负载均衡

Nginx作为负载均衡调度器

RR调度策略:轮询调度

反向代理服务器可以配置探测器:检测后端服务器是否正常

粘滞会话:让用户在一次会话周期内的所有请求都转发到一台特定的后端服务器上

4)基于NAT的负载均衡

5)基于路由的负载均衡:工作在数据链路成(第二层),修改目标包的MAC地址


13 共享文件系统

NFS:存在单点性能的局限性

14 内容的分发与同步

如:图片资源从图片服务器分发或同步(复制)到多台后台服务器上。

主动分发复制(SCPWebDAV)、被动同步复制(rsync)

多级分发

15 分布式文件系统

如:MogileFSHadoop

存储节点与追踪器,追踪器扮演存储节点的访问调度器,实现存储节点的负载均衡,这使得存储节点可以非常容易地进行水平扩展;

在分布式文件系统中,复制是一项重要的工作;

16 数据库扩展

简单主从复制—>垂直分区—>水平分区

主从复制:从主服务器复制到多台从服务器上

读写分离:将更新操作指向主服务器,将读操作指向从服务器(如:Mysql Proxy)

使用数据库反向代理:均衡工作量

垂直分区:当采用主从复制和读写分离呈现边际效益递减时,当有大量的写操作时。比如我们将用户的博客数据库和好友数据库分别转移到独立的数据库服务器上,这种方式称为垂直分区。

水平分区:意味着我们可以将同一数据表中的记录通过特定的算法进行分离,分别保存在不同的数据表中,从而可以部署在不同的数据库服务器上。

分表:在考虑分区之前,我们一般会对数据库进行分表。

分区索引字段:如userId

17 分布式计算

异步计算:

对于很漫长的计算任务,可以通过分布式计算,将其放在后台异步进行

分布式消息队列:如GearmanMemcacheQ

并行计算:对计算任务再次拆分,并将它们散列到更多的服务器上同时进行


18 性能监控

实时监控:如:Nmon是一款工作在服务器本地的实时监控软件

监控代理:如:SNMP监控远程服务器,你只需要在被监控的服务器上开启SNMP服务
监控中心:对数据进行统计和呈现,如Cacti

响应时间监控:监控宝www.jiankongbao.com








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
此文档一共两部分,此下载链接为第1部分。 第1章 绪论 1.1 等待的真相 1.2 瓶颈在哪里 1.3 增加带宽 1.4 减少网页中的HTTP请求 1.5 加快服务器脚本计算速度 1.6 使用动态内容缓存 1.7 使用数据缓存 1.8 将动态内容静态化 1.9 更换Web服务器软件 1.1 页面组件分离 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 Hash 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 服务监控 参考文献 索引

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值