内容简介 · · · · · ·
本书围绕如何构建高性能Web站点,从多个方面、多个角度进行了全面的阐述,涵盖了Web站点性能优化的几乎所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。在这些内容中充分抓住本质并结合实践,通过通俗易懂的文字和生动有趣的配图,让读者充分并深入理解高性能架构的真相。同时,本书充分应用跨学科知识和科学分析方法,通过宽泛的视野和独特的角度,将本书的内容展现得更加透彻和富有趣味。
作者简介 · · · · · ·
郭欣,曾在腾讯网基础平台研发团队,负责诸多Web应用的开发和技术管理,并致力于性能研究和实践推广.在加入腾讯之前,获得国家系统分析师职称.目前在工作之余从事独立研究,其中包括高性能Web架构和Web敏捷开发框架,并且积极投身开源事业,同时在为SmartcDeveloper系列进行创作.
目录 · · · · · ·
第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 响应时间监控
参考文献
索引
· · · · · · (收起)
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站点"试读 · · · · · ·
推荐序 你很幸运能拿到这本书,更重要的是,你的网站用户也会很幸运。郭欣在这本书里深入而系统地分享了构建高性能网站技术的方方面面。从后台到前台,从网络传输到数据存储,涉及诸多技术原理和实现细节。通俗的语言,亲切的叙述,仿佛作者在耳边轻轻细语,然而又蕴含着一种技术思想和力量,并且融合了人文思想。 我曾经代表公司面试过许多开发人员,在问...
· · · · · · (查看全部试读)
豆瓣成员常用的标签(共133个) · · · · · ·
喜欢读"构建高性能Web站点"的人也喜欢 · · · · · ·
按有用程度 按页码先后 最新笔记
-
第396页
yunweidragon (养默而后知多言之为噪。)
带宽,(动态内容,opcode)缓存(有效期,命中率),吞吐率,反向代理服务器Nginx Squid Varnish HAProxy,监控Cacti,分布式缓存memcached(内存),数据库优化(索引,Innodb行锁,mysqlreport,key-value数据库MemcacheDB), WEB负载均衡(DNS负载均衡(负载均衡调度器),反向代理负载均衡(权重),IP负载均衡(NAT负载均衡(Netfilter iptables),IPVS ipvsadm,LVS-NAT(带宽瓶颈)),直接路由)。 共享文件系统 samba NFS.. (更多)带宽,(动态内容,opcode)缓存(有效期,命中率),吞吐率,反向代理服务器Nginx Squid Varnish HAProxy,监控Cacti,分布式缓存memcached(内存),数据库优化(索引,Innodb行锁,mysqlreport,key-value数据库MemcacheDB),WEB负载均衡(DNS负载均衡(负载均衡调度器),反向代理负载均衡(权重),IP负载均衡(NAT负载均衡(Netfilter iptables),IPVS ipvsadm,LVS-NAT(带宽瓶颈)),直接路由)。共享文件系统 samba NFS。webdv scp rsync。分布式文件系统MogileFS, Hadoop。Mysql R/W Splitting,垂直分区,水平分区Sharding。分布式计算 Gearman,MemcacheQ。并行计算 Map/Reduce。监控 Nmon,Cacti。 (收起)2012-02-02 23:39:53 回应
-
第1页
magic (stay hungry, stay foolish)
1.mod_status模块 <Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from all </Location> www.colorfulcloud.com/server-status ps和top命令 2. apache ab命令进行压力测试 ab -n1000 -c10 http://localhost/ 3. keepalive KeepAlive On http://www.phpv.net/html/1570.html (更多)1.mod_status模块<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from all</Location> www.colorfulcloud.com/server-statusps和top命令2. apache ab命令进行压力测试ab -n1000 -c10 http://localhost/3. keepaliveKeepAlive Onhttp://www.phpv.net/html/1570.html (收起)2011-02-25 20:01:51 1回应
-
第10页
等待的真相 响应时间:数据从某主机开始发送一直到另一端主机全部接收所消耗的总时间。 吞吐率:每秒处理的请求数。 浏览器计算和渲染的时间。 瓶颈在哪里 瓶颈指影响性能的关键因素,这个因素会随着系统的运行又会发生不断的变化或迁移,比如由用户习惯所造成的不同时段瓶颈各不相同、浏览器增长到不同级别时所出现的新的瓶颈。 减少视觉等待 实在不行就给用户一些提示吧!要意识到用户也许只是希望你不要不理他... (更多)等待的真相响应时间:数据从某主机开始发送一直到另一端主机全部接收所消耗的总时间。吞吐率:每秒处理的请求数。浏览器计算和渲染的时间。瓶颈在哪里瓶颈指影响性能的关键因素,这个因素会随着系统的运行又会发生不断的变化或迁移,比如由用户习惯所造成的不同时段瓶颈各不相同、浏览器增长到不同级别时所出现的新的瓶颈。减少视觉等待实在不行就给用户一些提示吧!要意识到用户也许只是希望你不要不理他而已 :-) (收起)2011-05-10 20:52:47 回应
-
第35页
压力测试 在具有多个变量的模型中寻求最优结果是非常困难的,一般都先简化模型,选择特定的具有代表性的请求进行压力测试,然后根据需要,对多种请求的吞吐率按照比例计算加权平均值。 Web服务器的并发能力强弱的关键在于如何针对不同性质的请求来设计最优并发策略。 压力的描述一般包括并发用户数、总请求数、请求资源类型3个条件。 CPU并发计算 进程 进程的目的就是担当分配系统资源的实体。同时,进程也可以.. (更多)压力测试在具有多个变量的模型中寻求最优结果是非常困难的,一般都先简化模型,选择特定的具有代表性的请求进行压力测试,然后根据需要,对多种请求的吞吐率按照比例计算加权平均值。Web服务器的并发能力强弱的关键在于如何针对不同性质的请求来设计最优并发策略。压力的描述一般包括并发用户数、总请求数、请求资源类型3个条件。CPU并发计算进程进程的目的就是担当分配系统资源的实体。同时,进程也可以理解为记录程序实例当前运行到什么程度的一组数据。每个进程都有自己独立的内存地址空间和生命周期。进程由fork()创建轻量级进程内核直接管理它们,进程间允许共享一些资源,比如地址空间、打开的文件等。轻量级进程由clone()创建。线程用户态线程(POSIX的接口pthread):切换时它比进程和轻量级进程开销都要少些,但它在多处理器(SMP)的服务器上表现较差,因为只有内核的进程调度器才有权利分配多个CPU的时间片。内核级线程库(POSIX的LinuxThreads):它将线程和轻量级进程进行一对一关联,这样就可以利用SMP的能力,但是线程切换开销相对于用户态线程要多一些。进程调度器Linux2.6的进程调度器更加偏爱I/O操作密集型的进程,因为这些进程在发起I/O操作后通常都会阻塞,不会占用太多CPU时间。Linux上的CPU的时间片长度一般为10ms。系统负载系统负载是指在单位时间内运行队列中就绪等待的进程数平均值。查看/proc/loadavg获取系统负载情况1.63 0.48 0.21 10/200 17145第1到3个数值表示最近1、5、15分钟的系统负载。第4个数值表示此时运行队列中的有10个进程,而总进程数为200。最后一个表示到目前为止最后创建的一个进程ID。进程切换挂起某个进程,同时恢复某个以前挂起的进程,这种行为称为进程切换,也叫“上下文切换”。一个进程被挂起的本质就是将它在CPU寄存器中的数据暂存在内核态堆栈中,而一个进程被恢复的本质就是将它的数据重新装入CPU寄存器,这段装入和移出的数据我们称为“硬件上下文”。Nmon是一个非常不错的Linux性能监视工具。IOWaitCPU空闲且等待I/O操作完成的时间比例,它是一个耐人寻味的指标。锁竞争独占资源使用锁来控制使用权,锁的本质让我们意识到尽量减少并发请求对于共享资源的竞争,比如在允许的情况下关闭Web服务器访问日志。系统调用用户态和内核态是Linux为进程设计两种运行级别,进程可以在两种模式之间切换,这也需要一定的开销。进程通常在用户态,此时可以使用CPU和内存,当进程需要对硬件外设进行操作时,就必须切换到内核态,完成后又切换回用户态。这种用户态和内核态的分离,动机主要在于提高系统底层安全性以及简化用户态程序开发模型。减少不必要的系统调用也是优化Web服务器的一个方面。比如Apache的.htacess就会增加系统调用。内存分配Apache使用内存池策略,一开始运行时便一次性申请大片的内存作为内存池,这样在随后需要的时候只要在内存池中直接获取,从而免去了频繁的内存分配和释放所引发的内存整理。Nginx使用多线程来处理请求,线程间可以共享内存资源。它使用分阶段内存分配策略,按需分配,及时释放,使得内存使用量保持在很小的数量范围。持久连接Keep-Alive有时候也称为长连接,它本身是TCP通信的一种普通方式,即在一次TCP连接中持续发送多份数据而不断开连接,与它相反的方式为短连接。从性能的角度看,建立TCP连接的操作本身便是一项不小的开销,所以在允许的情况下,连接次数越少越有利于性能的提升。I/O模型有人说,比特天生就是用来被复制的,数据的生命意义便在于输入/输出。I/O模型的本质区别在于CPU的参与方式。PIO与DMAPIO:读取磁盘文件到内存中,数据要经过CPU存储转发。DMA(Direct Memory Access):不经过CPU而直接进行磁盘和内存的数据交换。同步阻塞I/O指当进程调用某些涉及I/O操作的系统调用或库函数时,比如accept()、send()、recv()等,进程便暂停下来,等待I/O操作完成后再继续运行。同步非阻塞I/O进程发现I/O操作的数据未准备就绪时会接着执行其他I/O操作,然后使用轮询的办法来尝试先前的数据是否就绪。多路I/O就绪通知允许进程通过一种方法来同时监视所有文件描述符,并可以快速获得所的就绪的文件描述符,然后只针对这些文件描述符进程数据访问。多路I/O就绪通知有很多不同的实现:select最早出现于1983年的4.2BSD中,而TCP/IP则诞生于4.1BSD。它几乎在所有的平台上都支持,这是它所剩不多的优点之一。单个进程能监视的文件描述符的数量存在最大限制,在Linux上为1024,可以通过修改宏定义或重新编译内核的方式提升这一限制。select所维护的大量文件描述符的数据结构,随着数量的增大,其复制的开销也线性增长。poll诞生于1986年System V Release 3,它和select在本质上没有多大区别,更多是因为不直接沿用BSD的select而重新实现了一遍,但是poll没有最大文件描述符限制。select()和poll()将就绪的文件描述符告诉进程后,如果进程没有对其进行I/O操作,那么下次调用它们俩时将再次报告这些文件描述符,所以它们一般不会丢失就绪的消息,这种方式称为水平触发(Level Triggered)。SIGIOLinux2.4提供了SIGIO,它只将文件描述符就绪的消息通过实时信号(Real Time Signal)告诉进程一遍,以后就不说了。这种方式称为边缘触发(Edge Triggered)。SIGIO几乎是Linux2.4下性能最好的多路I/O就绪通知方法。它的缺点是代表事件的信号由内核中的事件队列来维护,信号按顺序进行通知,这可能导致当一个信号到达的时候,该事件已经过期,它所描述的文件描述符已经关闭。/dev/epoll随后,名为/dev/epoll的设备以补丁的形式出现在Linux2.4上,它提供了类似/dev/epoll的功能,而且增加了内存映射(mmap)技术。epoll直到Linux2.6才出现了由内核直接支持的实现方法,它几乎具备了之前所说的一切优点,被公认为Linux2.6下性能最好的多路I/O就绪通知方法。它同时支持水平和边缘触发,理论上边缘触发的性能要更高一些,但代码实现相当复杂,困为任何的事件丢失事件都会造成请求处理错误。kqueueFreeBSD中实现了kqueue,它像epoll一样可以设置水平或边缘触发,同时kqueue还可以用来监视磁盘文件和目录。kqueue和epoll的性能非常接近。内存映射Linux内核提供一种访问磁盘文件的特殊方式,它可以将内存中某块地址空间和我们要指定的磁盘文件相关联,从而把我们对这块内存的访问转换为对磁盘文件的访问,这种技术称为内存映射(Memory Mapping)。分共享型和私有型两种内存映射。前者可以将任何对内存的写操作都同步到磁盘文件,而且所有映射同一个文件的进程都共享任意一个进程对映射内存的修改;后者映射的文件只能是只读文件,所以不可以将对内存的写同步到文件,而且多个进程不共享修改。共享型内存映射的效率偏低,因为多进程映射需要对修改进行同步。直接I/O在Linux2.6中,内存映射和直接访问文件没有本质上差异,因为数据都要经过两次复制:磁盘与内核缓冲区、内核缓冲区与用户态内存。引入内核缓冲区的目的在于从全局出发提高磁盘文件的访问性能,读文件时可以利用内核缓冲区中已有的数据,而写数据时通过一定的策略进程延迟。Linux在open()系统调用中增加参数O_DIRRCT,用它打开的文件便可以绕开内核缓冲区而直接访问。类似的还有O_SYNC参数,但它只对写数据有效。sendfile在Linux2.4内核中,引入了一个称为khttpd的内核级Web服务器程序,它只处理静态文件请求,开发者通过sendfile()系统调用使用它。引入它的目的在于内核希望请求的处理尽量在内核完成,减少切换和数据复制开销。一般称这种为“零拷贝”。OpenBSD和NetBSD中没提供对sendfile的支持。对于请求较大的静态文件,sendfile带来性能提升是显著的;而对于请求较小的静态文件,sendfile发挥的作用便显得不那么重要。异步I/O指进程主动请求数据后便可以继续处理其他任务,随后等待I/O操作完毕的通知。服务器并发策略一个进程处理一个连接,非阻塞I/O这种模型的开销限制了它的并发连接数,优势是它独立的进程相对安全。一个线程处理一个连接,非阻塞I/O使用大量的线程(轻量级进程)代替进程,切换带来的开销依然存在,实际使用中处境尴尬。一个进程处理多个连接,非阻塞I/O此策略中多路I/O就绪通知模型显得很重要,当存在大量非活跃连接时,epoll的优势不言而喻。Worker进程的数量要根据实际需要来选择,是同时以慢速服务更多的人还是快速服务较少的人。同时多进程带来的上下文切换也是一笔开销。一个线程处理多个连接,异步I/O目前很少有Web服务器支持这种真正意义上的异步I/O,理论上在某种特定的场景中它的性能要比sendfile更加出色,但是对于大量小文件的并发请求,文件传送可能不是关键,而多路I/O通知方法的性能更加重要。目录正在开发的Lighttpd 1.5试图使用Linux的AIO实现。 (收起)2011-05-10 20:56:11 回应
-
第396页
yunweidragon (养默而后知多言之为噪。)
带宽,(动态内容,opcode)缓存(有效期,命中率),吞吐率,反向代理服务器Nginx Squid Varnish HAProxy,监控Cacti,分布式缓存memcached(内存),数据库优化(索引,Innodb行锁,mysqlreport,key-value数据库MemcacheDB), WEB负载均衡(DNS负载均衡(负载均衡调度器),反向代理负载均衡(权重),IP负载均衡(NAT负载均衡(Netfilter iptables),IPVS ipvsadm,LVS-NAT(带宽瓶颈)),直接路由)。 共享文件系统 samba NFS.. (更多)带宽,(动态内容,opcode)缓存(有效期,命中率),吞吐率,反向代理服务器Nginx Squid Varnish HAProxy,监控Cacti,分布式缓存memcached(内存),数据库优化(索引,Innodb行锁,mysqlreport,key-value数据库MemcacheDB),WEB负载均衡(DNS负载均衡(负载均衡调度器),反向代理负载均衡(权重),IP负载均衡(NAT负载均衡(Netfilter iptables),IPVS ipvsadm,LVS-NAT(带宽瓶颈)),直接路由)。共享文件系统 samba NFS。webdv scp rsync。分布式文件系统MogileFS, Hadoop。Mysql R/W Splitting,垂直分区,水平分区Sharding。分布式计算 Gearman,MemcacheQ。并行计算 Map/Reduce。监控 Nmon,Cacti。 (收起)2012-02-02 23:39:53 回应
书评 · · · · · · (共44条) 我来评论这本书
热门评论 最新评论
卖弄国学已经成了国产技术书籍的通病
-
- 那谁(Stay Hungry,Stay Foolish) 拿到这本书几天了,正在看,还没有看完。就目前阅读到的部分而言,还算是一本靠谱的书,里面很多测试,说明等都有数据,抓包,strace查看调用情况等来进行说明。并且涉及的面挺广,从服务器模型,到前端,数据库,缓存都有讲到,不过呢,web架构这个主题我个人觉得过于宽泛了,或者这么说,这是一个需要知识面很广的领域,而且很多知识...... (31回应)2009-11-26 39/44有用
不论是高手还是菜鸟都适合阅读
-
- rock 这本书刚出来的时候就第一时间阅读了。 本来是没想着写书评的。但最近向很多同学推荐这本书的时候,得到的回答却都是说看上去感觉太高阶了。 其实不然,这本书确实是适合各个层次的读者阅读的。 虽然全书涉及到了Web开发、操作系统和计算机网络等诸多方面,但作者的描述非常明晰而且富有吸引力。 同时作者用到了大量......2010-10-01 7/7有用
不管你是初学还是进阶,都能有所收获。强力推荐给所...
-
- 冰冰子(才貌双全无敌女飞侠) 这是一本一周就可以读完的技术书籍,并不是因为它的简单,而是因为它很吸引我,很多的地方讲的非常好,例如服务器的IO模型以及缓存使用的各个环节。非常可贵的是作者的很多测试数据是非常真实的,是的可以更好的定量的去看问题。...... (6回应)2009-09-03 5/7有用
只能给个中间分,不好不差
-
- MrROY 总的来说这是一本偏向于“拿来就用”的书,对原理涉及不多,类似于一本cheat sheet。着急改进项目的话可以拿来当资料书翻一下,如果想要提高内功,这本书就没必要了。 ====================== 评论有必要很长么,为什么简单扼要写好就OK了。......2012-01-06
读 构建高性能web站点
-
- 永福 工作一年,正式接手运维工作六个月。看到这本书如获至宝,知道了很多新概念,解除了很多困惑。 整本书有结构合理,思路清晰,数据说话。 本书从构建web站点的基础及概念入手,通过形象的比喻,告诉我们需要注意的事项。web站点的模型及传输模式。服务器的瓶颈。介绍了测试方法及模型。 1、缓存技术:动态内容缓存,...... (1回应)2011-07-02
评论构建高性能Web站点
-
- innoj 内容很多,对于象我这样初学web“架构”的人很有帮助,能一下接触很多东西,再深入进去也能有个方向,非常值得一看。也是值得多看几遍的书。看得时候记了很多笔记,虽然很好懂,但是要完全掌握并且灵活运用还是很难的。......2011-06-18
互联网开发人员的必备技能
-
- LOST 高可用,可扩展,高性能是每一个网站所追求的目标,而构建这样的站点,也是每一位互联网开发人员必备的技能。 郭欣的这本《构建高性能Web站点》,则勾勒出一幅高性能站点的全景图。对一些知识点的描述可以说事无巨细。一开篇就介绍了数据的网络传输和服务器并发处理能力,弥补国内开发人员基础不牢的弱点;再由浅入深的讲解了Web应用优......2011-03-16 2/2有用
"构建高性能Web站点"的论坛 · · · · · ·
在哪儿买这本书? · · · · · ·
以下豆列推荐 · · · · · · (全部)
- 网络技术 (何其低俗啊)
- 研究生读书计划---计算机基础 (衫秋南)
- 计算机理论 (mashan_snail)
- web startup library 互联网创业 (近乎想象)
- 我策划的书 (冰冰子)
谁读这本书?
喜欢这本书的人常去的小组 · · · · · ·

- MongoDB (2146)

- 分布式技术与系统软件 (679)

- Python编程 (19002)

- 博文视点交流组 (420)

- 大型网站开发 (1978)

- node.js (964)

- Vim (6198)

- Django (3834)
喜欢这本书的人关注的活动 · · · · · ·
订阅关于构建高性能Web站点的评论:
feed: rss 2.0











