Velocity 2010 Highlights 淘宝 - 核心系统研发 - 叔度 2010-07-09
Velocity大会介绍 由O’Reilly举办 顶级web公司参与 大牛云集 今年举办第三届 Google Facebook Yahoo Twitter … 大牛云集
性能是网站的第一要素 ——Larry Page,Google创始人
速度变慢,弹出率上升 source: http://www.webperformancetoday.com/2010/07/01/the-best-graphs-of-velocity/
速度变慢,访问的页面变少 source: http://www.webperformancetoday.com/2010/07/01/the-best-graphs-of-velocity/
速度变慢,转化率下降 source: http://www.webperformancetoday.com/2010/07/01/the-best-graphs-of-velocity/
首先,你要了解你的系统 网站类型 不同类型不同的需求 盈利/目的 监控什么? 服务时间 网络时间 客户/绘制时间 应用关键步骤
一些你需要知道的数字 Google统计的平均数据 平均网页大小320K 平均带宽1.8M bps 理论上1.4s,实际上5s 页面组成 使用44个资源 7次DNS查询 三分之一的内容没有压缩
性能优化的大方向 前端页面 应用与架构 服务器 负载均衡 数据库 … 系统与底层 硬件 协议
针对人优化——性能优化心理学 实际时间 != 感知的时间 情绪的影响 避免空等待 感觉变快 成功的任务 有回应 进度 有意义的信息提示 source: http://www.slideshare.net/stoyan/psychology-of-performance/
如何管理变更 所有的东西都应该在版本控制之下 变更要有记录(Facebook) 交换机的配置文件 路由器的配置文件 防火墙的配置文件 系统的配置文件 应用的配置文件 监视程序的配置文件 文档 程序代码 数据库表结构 所有一切 变更要有记录(Facebook) 每天/周更新 source: http://en.oreilly.com/velocity2010/public/schedule/detail/13103
如果故障无法避免 如何把它转化成正面反应 开放 & 透明化 响应而不是回避 建立信任 沟通渠道 公开的健康状况仪表盘 source: http://www.slideshare.net/lennysan/the-upside-of-downtime-velocity-2010-4564992
大网站如何运维? 部署 监控 & 工具 自动化,自动化,自动化 准备好应付故障 支持而不是阻止工程师的创新 Facebook和Twitter都使用BitTorrent Facebook:1分钟完成全球的部署(几百兆的文件、上万台服务器) Twitter :30~60秒更新超过1千台服务器(Python + libtorrent) 监控 & 工具 CFengine Puppet Chef Ganglia Nagios 编写适用于自己的 自动化,自动化,自动化 准备好应付故障 支持而不是阻止工程师的创新
运维角色的转变 不要仅仅是“系统管理员”(Twitter) 通过统计分析产生有意义的结果 以数据而不是直觉来做决策 使网站更快 改进现有架构并为将来做计划 规划好容量而不是做消防员
Javascript 确保DOMContentLoaded之前的交互性 并不是每个动作都需要Javascript 预测性加载 工具 这是加快性能与用户体验的一个机会 在底端加载Javascript吗? 动态加载的脚本不会阻塞页面加载 预测性加载 工具 Firebug JSMeter
CSS五大错误 没有gzip压缩(42%) 有2个以上的外部CSS文件(44%) CSS文件带有cookie(56%) 没有最小化(62%) 使用YUI Compressor CSS文件超过100K(21%)
百花齐放的前端诊断工具 YSlow Page Speed Closure Compiler Show Slow dynaTrace HttpWatch AOL Pagetest Speed Tracer Fiddler
不同的浏览器性能差别很大 Source: Gomez Real-User Monitoring Taobao ChinaCache IE6 MUST DIE! Source: Gomez Real-User Monitoring Real users around the world Broadband connections only 466 million page measurements 200+ sites source: http://en.oreilly.com/velocity2010/public/schedule/detail/15420
Web Server优化:关于gzip压缩 Proxy 安全软件 爬虫 强制gzip压缩 如果没有Accept-Encoding头 判断User-Agent是否是一个modern的浏览器 如果没有一个特殊的cookie 测试看其能否解压缩gzip内容 如果成功,则发送gzip的内容
尽可能早的刷出页面内容 source: http://en.oreilly.com/velocity2010/public/schedule/detail/11802
HTTP并行化,性能提升2倍 Facebook的BigPipe 页片(pagelet) 流水线(pipeline) 模板 JSON返回内容 刷新方式 singleflush pipeline parallel prepare 效果对比 http://www.facebook.com/home.php?big_pipe=pipeline http://www.facebook.com/home.php?big_pipe=singleflush source: http://en.oreilly.com/velocity2010/public/schedule/detail/14129
friendconnectdirectory.com/Food 别让第三方内容拖累网站速度 不要阻塞住绘制或者加载 Iframe Script tag 不要影响用户体验 第三方内容 发布网站 % 影响 Digg services.newsweek.com 14 realtalkny.uproxx.com 9 FriendConnect www.artinstructionblog.com 10 friendconnectdirectory.com/Food 30 FacebookConnect truveo.com 17 www.huffingtonpost.com 12 TribalFusion www.xe.com 53 www.wareseeker.com 31 source: http://en.oreilly.com/velocity2010/public/schedule/detail/15412
数据中心 钱去哪里了? 34%电力 8%网络 source: http://en.oreilly.com/velocity2010/public/schedule/detail/15429
电力传输中的损耗 source: http://en.oreilly.com/velocity2010/public/schedule/detail/15429
机房的温度到底多少合适? source: http://en.oreilly.com/velocity2010/public/schedule/detail/15429
廉价的存储方案 Openstoragepod.org backblaze source: http://design.maco.sk/pod
何时搭建自己的数据中心? 当买服务的钱大于建数据中心的钱的时候 Facebook 6万-10万服务器 第一个自建的数据中心 Oregon source: http://www.facebook.com/prinevilledatacenter
注意网络延时的影响 光速与距离 前面的几个包 传播不是没有代价的 保持Cookie小 让小的assets先下载 source: http://en.oreilly.com/velocity2010/public/schedule/detail/11792
TCP协议优化 对TCP的优化 TCP快速开始(加大初始拥塞窗口大小) Google提高了12%的性能 source: http://en.oreilly.com/velocity2010/public/schedule/detail/14371
SSL优化 False Start 减少握手中的一个来回 Google的SSL应用快了10%
使用SPDY来优化HTTP 头部压缩 流多路复用 快了25% source: http://en.oreilly.com/velocity2010/public/schedule/detail/14371
CDN缓存技术 软件 技术 Squid Traffic Server Cache Peering Cache-Control RFC 2186/2756 Cache-Control stale-while-revalidate Cache-Control: stale-if-error RFC 5861 source: http://www.slideshare.net/mnot/stupid-web-caching-tricks
数据存储方式的转变 MySQL NoSQL Drizzle,云时代的MySQL替换品 FlockDB Memcached Cassandra Hadoop
未来趋势:移动Web 18亿互联网连接点 46亿移动设备 这个差别在未来还会扩大 source: http://en.oreilly.com/velocity2010/public/schedule/detail/13063
移动设备上的特殊之处 浏览器与通常的不一样 并不是一个文档适合所有设备 尽可能的标准化 source: http://en.oreilly.com/velocity2010/public/schedule/detail/13063
Q & A