Web性能优化(第二版)
Web性能优化(第二版)
Patrick Killelea
谢文亮, 等 译
出版时间:2003年10月
页数:512
自从Web诞生以来,人们就一直在尽力让它跑得更快。今天,Web获得成功也意味着它拥有了更多用户、更多数据、更多功能……和更长时间的等待。因此,优化其性能就成为Web网站、特别是个人网站的“生杀之本始”。
本书讲述如何将Web性能调至最佳状态。书中不仅谈到了Web服务器软件的优化,而且还涉及到如何流水化处理Web内容,如何从浏览器端着手优化性能,如何调校客户端和服务器端的硬件,以及如何最大限度地使用网络本身的特性。
书中的内容涉及到影响性能好坏的本质,并为得到立竿见影的效果提供了具体建议。本书向您娓娓道出评价计算性能高低的准则,并在后半部分讲述从客户端、网络直到服务器这一链条中每个环节的薄弱之处,同时给出了加强巩固这些薄弱环节的金玉良方。
本书在第一版的基础上对内容进行了扩展,具体包括:
* 增加了有关Web站点结构、安全性、可靠性的新章节,讲述了这些方面对性能的影响
* 详细讨论了在有多个处理器的服务器上Java的可扩展性
* 增加了一些与Web性能相关的用于处理注册、cookie、SSL的Perl脚本
* 给出了如何使用Perl DBI和开源程序gnuplot来生成性能图表的详细指令
* 增加了rstat的有关内容,rstat是一种基于Unix的源代码开放的实用程序,其作用是远程地收集性能统计数据
除此之外,书中还有很多实际中可能遇到的性能问题的示例和图表,当然也提供了相应的解决方法。与第一版相比,书中的内容都“升级”到了Java 2。
如果您需要长时间地等待一个Web页面的显示,或者您所管理的服务器的速度慢得令人难以忍受,那么读一读这本书吧,它一定会对您有所帮助,使您的Web体验更上一层楼。
  1. 前言
  2. 第一部分 基础篇
  3. 第一章 首要问题
  4. 浏览器端的问题
  5. 服务器端的问题
  6. 关键性建议
  7. 第二章 Web站点体系结构
  8. 进行权衡
  9. 组成元素
  10. Web站点体系结构示例
  11. 趋势
  12. 示例配置
  13. 关键性建议
  14. 第三章 容量规划
  15. 算算账
  16. 相信数字,但更相信自己的眼睛
  17. 常见问题
  18. 你需要多大的带宽
  19. 你需要多快的服务器
  20. 你需要多大的内存
  21. 关键性建议
  22. 第四章 性能监控
  23. 性能参数
  24. 延迟和吞吐量
  25. 利用率
  26. 有效性
  27. 使用Perl监控Web性能
  28. 使用spocket自动生成监控脚本
  29. 使用关系型数据库存储和获取监控数据
  30. 使用rstat监控机器的使用情况
  31. 监控每一个进程的统计数据
  32. 根据ps数据生成图表
  33. 监控其他内容
  34. 制作一个系统面板Web页面
  35. 关键性建议
  36. 第五章 负载测试
  37. 负载测试的准备工作
  38. 权衡负载测试工具
  39. 编写你自己的负载测试工具
  40. 基准规范和基准测试
  41. 其他资源
  42. 关键性建议
  43. 第六章 性能分析
  44. 使用analysis.cgi找到瓶颈所在
  45. 使用sprocket探听HTTP
  46. 查看连接
  47. 日志文件分析
  48. 点击率
  49. 更多提示
  50. 关键性建议
  51. 第七章 可靠性
  52. 常见问题
  53. 相关性
  54. 处理故障
  55. 关键性建议
  56. 第八章 安全性
  57. HTTPS和SSL
  58. 防火墙
  59. 堡垒主机
  60. chroot
  61. 关键性建议
  62. 第九章 案例分析
  63. 数据库表无限制地增长
  64. 反向DNS查找降低了日志记载的速度
  65. 扭结的电缆
  66. 数据库连接池的增长限制了性能
  67. 关键性建议
  68. 第十章 原则与模式
  69. 优化性能的原则
  70. 改进性能的模式
  71. 关键性建议
  72. 第二部分 高级篇
  73. 第十一章 浏览器
  74. 浏览器的工作原理
  75. 浏览器的类型
  76. 最佳的浏览器
  77. 浏览器的速度
  78. 浏览器优化技巧
  79. 非浏览器的Web客户端
  80. 关键性建议
  81. 第十二章 客户端操作系统
  82. Windows
  83. Macintosh
  84. UNIX
  85. 关键性建议
  86. 第十三章 客户端硬件
  87. CPU
  88. 内存
  89. 高速缓存
  90. 总线
  91. 磁盘
  92. 显卡
  93. BIOS
  94. 关键性建议
  95. 第十四章 线路和终端器
  96. 超前和延迟
  97. 调制解调器 —— 信息的通道
  98. ISDN
  99. 电缆调制解调器
  100. xDSL
  101. 高容量线路
  102. 内联网
  103. 网络建模工具
  104. 因特网
  105. PTT
  106. 关键性建议
  107. 第十五章 网络协议
  108. 权力和协议
  109. 影响网络协议性能的因素
  110. Web协议
  111. 关键性建议
  112. 第十六章 服务器端硬件
  113. 把服务器看成线路上的设备
  114. 性能良好的I/O
  115. 多个总线
  116. 快速磁盘
  117. 大量内存
  118. 可扩展性
  119. 网卡
  120. 总线
  121. 内存
  122. 内存的特点
  123. CPU
  124. 对称多处理
  125. 磁盘活动和PID
  126. 关键性建议
  127. 第十七章 服务器端操作系统
  128. Unix和Web的起源
  129. Unix特色
  130. 系统调用和库调用
  131. 进程和内核
  132. 文件系统
  133. 窗口系统
  134. 版本和补丁
  135. 可配置的操作系统参数
  136. Unix操作系统监控工具
  137. 系统调用跟踪程序
  138. 网络探听工具
  139. 服务器可以处理多少个连接
  140. 服务器可以处理多少个进程
  141. 服务器派生新进程的速度能有多快
  142. UNIX与Windows NT的对比
  143. 外核
  144. 关键性建议
  145. 第十八章 服务器端软件
  146. Web服务器软件的发展过程
  147. Web服务器的系统调用
  148. 服务器连接是怎么失败的
  149. 配置Apache和Netscape的Web服务器
  150. 其他服务器
  151. 不具备的一些功能
  152. 代理服务器
  153. 分级缓存
  154. 关键性建议
  155. 第十九章 内容设计
  156. 内容的规模
  157. 努力做到最好
  158. 缓存技术和区别
  159. HTML及其压缩
  160. HTML制作者需注意的性能技巧
  161. 文档对象模型
  162. 图形
  163. 音频内容
  164. 视频内容
  165. 关键性建议
  166. 第二十章 自定义应用程序
  167. 程序员
  168. CGI编程
  169. CGI内幕及性能问题
  170. 常用的CGI技巧
  171. CGI语言特有的优化技巧
  172. 后台运行CGI
  173. CGI访问数据库的性能
  174. 日志
  175. NSAPI和ISAPI
  176. DOM
  177. JSP、ASP和PHP
  178. 关键性建议
  179. 第二十一章 Java
  180. 对于GUI应用程序来说,Java永远存在不足之处
  181. 对服务器端来说,Java提供了很多便利
  182. Java固有的性能问题
  183. 编码技巧
  184. 编译器
  185. 分析代码
  186. 反编译器
  187. 操作系统级分析工具
  188. JIT
  189. 静态编译器
  190. 虚拟机
  191. 运行时选项
  192. Java芯片
  193. Java基准
  194. 有Java性能信息的Web站点
  195. 关键性建议
  196. 第二十二章 数据库
  197. 你真的需要一个关系型数据库吗
  198. 性能优化技巧
  199. 数据库可以处理多少个连接
  200. 数据库何时会超载
  201. 分析
  202. 关键性建议
  203. 附录 有关Web性能的产品列表与回顾
书名:Web性能优化(第二版)
作者:Patrick Killelea
译者:谢文亮, 等 译
国内出版社:清华大学出版社
出版时间:2003年10月
页数:512
书号:7-302-07120-9
原版书出版商:O'Reilly Media
Patrick Killelea
 
Patrick Killelea目前就职于某大型在线经纪公司。Patrick大部分时间都用来编写用于监控和负载测试的工具。他认为,Web将会以其简单性、可移植性和性能方面的优势而成为真正意义上的前沿科技。在Patrick看来,在后端Microsoft是不可信赖的选择。Patrick知道,使用现有的开放协议,仍然可以实现Web性能的大幅度提高。他个人倾向于使用T/TCP,并希望有朝一日能建立一种连接,通过该连接可以将一个完整的Web页面以一个单独的数据包的形式交付用户。
晚上,Patrick会抽时间与他的妻儿嬉戏,尽享天伦之乐。他对语源学、宗教很感兴趣,爱吃的食物是混合了色拉的煎鲑鱼,佐以美味的Merlot(一种酒名)。Patrick很乐意人们通过Email的方式将有关Web和Java性能的问题告诉他,他的Web站点是http://patrick.net,Email地址:p@patrick.net。

---------------------

Patrick Killelea 目前在Sun Microsystems的专业服务部工作。在此之前,他在芝加哥的一个小型Internet开发公司担任Web开发员。他在许多著名的网站工作过,从事过系统设计、开发软件来做有用的事情,如定位货运列车、为你的发质选择香波、查找电影评论和向你报告昨夜的行李落在哪儿。在以前的生活中,Patrick是一个内置系统程序员,在摩托罗拉、英特尔和英国电信公司工作过。他进入密西根大学学习了很长时间,最终拿了三个学士学位。他还在Ann Arbor的Borders书店当过很多年的店员,在那里他第一次读到O'Reilly系列图书。

Patrick 喜欢收到关于Web和Java性能的技巧、本书中的错误、性能优化方面的问题和商业机会等方面的email。他活跃于旧金山海湾地区的咨询和教学领域。他和他的妻子
和儿子住在Palo Alto。请访问他的网站:http://patrick.net或给他发email:
webbook@patrick.net。
 
 
封面上的动物是刀嘴蜂鸟。大约有300多种蜂鸟,在美洲大陆方能看到这种鸟。这些蜂鸟都有着独特的长长的管状尖嘴和彩虹色的羽毛,这是识别它们的标志。羽毛呈现彩虹色是因为反射阳光的缘故,所以只有当阳光以特定的角度照在羽毛上时才会看到。从体积上来看,最小的蜂鸟叫吸蜜蜂鸟(bee hummingbird),最大的名曰大蜂鸟(great hummingbird)。吸蜜蜂鸟身长约2英寸,体重还不到1盎司;而大蜂鸟的身长通常约为8.5英寸。
蜂鸟之所以获此学名,是因为它们在飞行时会因翅膀的疾速扇动而发出嗡嗡的声响。蜂鸟振翼的平均频率是50次/秒;有些种类的蜂鸟甚至可以高达200次/秒。它们的翅膀非常灵活,而且向上振翼和向下振翼时都可以将身体向前推进,这是与大多其他鸟类的不同之处。得益于这种独特的灵活性,蜂鸟可以随心所欲地飞行,或盘旋、或左或右、或上或下。大多数蜂鸟的脚都非常小巧,这双小脚仅用于栖息,从不用于行走。即使只有几英寸的距离,蜂鸟也会“以飞代步”。
蜂鸟的体力支出很大,所以它们差不多每10分钟就需要进一次食。它们以花蜜为食,摄取其中的糖份,它们还吃一些小昆虫以获取必要的蛋白质。蜂鸟那长长的管状嘴使它们可以轻而易举地从花的深处饱尝芬芳的蜜汁。当蜂鸟采集花蜜时,它们头部和尾部会粘上很多花粉。然后,这些花粉被带到其他花朵上,在这些植物的繁殖过程中作用重大。
在美国土著的传说和神话中经常提及蜂鸟,它们是太阳的使者。根据一些民间说法,这种动物会给人们带来爱。
由于是欧洲人首先发现的这种美丽多彩的小鸟,所以它们还经常出现在东半球的艺术品和文献中。