性能 化不是 局限于后优 仅
台
----Qzone 性能 化 告优 报
QQ 空 品中心间产
Qwang
Qzone 化概述优
存 化储优
日志重构
化访问优
接入层
逻辑层
表现层
日志重 前 分析构 问题
数据量增 快长过
数据量总 9T
日增 量长 约 20G
容需 行大量数据搬扩 进 迁
Cache 命中率低( 50% ), DB 力压
大
旧系统结构
模块
日志回复
日志标题
日志 数计
点优
CACHE 内存化,提升
性能
多 程号段分布 理进 处
步化业务异
缺点
CACHE 量有限,命中
率低,对 DB 的性能依
比 重赖 较
模 相互独立,容易造块
成数据不一致
Qzone 数据 化(日志重 )层优 构
与 品 理的产 经 Trade-off
区分近期日志与往期日志
区分活 数据、非活 数据和 史跃 跃 历
档数据归
二 存(内存级缓 + 文件)
个号 行路由针对单 码进
新系统结构
系 分三个模 :日志信息、日志 、 数统 块 标题 访问计
CGI 日志 、 数模 有层对 标题 访问计 块 读 / 写权限; 日志 模 只有对 标题 块 读
权限,其数据来源于日志信息模块
日志信息模块结构
日志重 后的特点构
将数据区分 活 数据、不活 数为 跃 跃
据和 史 档数据, 少历 归 减 Cache 数
据量,提升 Cache 命中率
Cache 根据数据 活 度 行访问 跃 进 扩
容
DB 根据存 容量 行 容储 进 扩
Qzone 日志重 前后数据 比构 对
  重构前 重构后
数据量
日志标题
Cache 10 台, 69G ,命中率 90% 10 台, 128G ,命中率 88%
DB 5 台, 340G 5 台, 600G
日志信息
Cache 20 台...
Qzone 速度慢访问
Http 求量大,下 数据量大请 载
用户 CPU 消耗高
用 常投 打不户经 诉 开 Qzone
Qzone 化前 速访问优 测
Qzone 提速 化访问 优
量化性能数据
路径 点关键 时间 统计
Yahoo 14 性能 化优 规则
1. Make fewer HTTP requests
2. Use a CDN
3. Add an Expires header
4. Gzip components
5. Put CSS at the t...
Qzone 化访问优
域名 化访问优
静 面与 数据分离态页 动态
少减 http 求请
降低 器浏览 CPU 消耗
Ajax 化优
Web Server 化优
域名相关
少减 *.qzone.qq.com 域名的使用,
降低动态 DNS 求查询请
走 校 网及北方城市, 双访 园 发现
ISP 的 local DNS 的问题
前置机通 域名 正被 定位的过 纠 错误
用户
静 面相态页 关
拆分静 面、 片、 式及态页 图 样 flash ,分散
至 imgcache.qq.com 等静 文件域名态
Imgcache.qq.com 的 CDN 外包
静 文件服 器 化态 务 优
支持 接长连
支持 gzip 压缩...
少减 http 求请
合并小 片 求图 请
合并 css 和 js 文件
合并 数据 求动态 请
数据支持动态 304
有效利用 器浏览 cache 和 js 量变 缓
存 数据动态
小 片的 求合并(图 请 css+ 背景 )图
合并 css 和 js 文件
合并 css 文件
入进 Qzone 只需要下载 2 个 css 文件
Css 文件合并工具
合并 js 文件
除无用字符(空格、 行等)删 换
Js 文件合并工具
合并 数据 求动态 请
合并多个模 的 数据 一个静块 动态 为
文件态
数据支持动态 304
大数据量的 求在存 上增加对 请 储层 时
戳间 浏览器请求cgi
读取数据时间戳
浏览器时间戳<数据时间戳
读取浏览器上报时间戳
读取数据
返回304返回200
Yes
No
利用 js 量和 器变 浏览 Cache
利用 js 量变
Js 将 取的 数据放入数 量获 动态 组变
每次 起 数据 求前 数 内发 动态 请 检查 组
是否保存了相 数据应
利用 器浏览 cache
取消了 Cache-Control: ...
器下 求量和数据量 比浏览 载请 对
  优化前
优化后(无
Cache )
优化后(部分
Cache )
优化后(全 Cache )
请求量 160 86 58 12
数据量 2.4M 1.5M 48K 8K
降低 器浏览 CPU 消耗
将 XML 修改为 JSON
降低 器浏览 Parse XML 的 CPU 消耗
支持跨域 求, 少请 减 proxy.html 求请
少减 iframe 的使用
尽可能使用 div
合理使用 cookie
器浏览 ...
Ajax 化优
行数据分 ,按 先 序 求进 级 优 级顺 请
数据
打开 Qzone 所需的数据 先加优 载
步化 求,尽量避免 器同域下异 请 浏览
个并 求的限制两 发请
片延 加图 迟 载
面 染相 的数据延 加页 渲 关 迟 载
尽可能多的 Para-Downloading
Web Server 化优
拆分 CGI 步异 逻辑
将可以 步化的 交 步异 逻辑 给异 app server
理处
配置文件内存化
Cgi 90% 的消耗在 取配置文件读
使用 gprof 等工具
使用 量轻 级 Web Server
放弃...
量轻 级 Web Server ( qzhttpd )
性能部分:
所有机器的 CPU 的 idle 都 持在维 90% - 93% 左
右
周末高峰期:最大 求量:请 900 左右,平 都时
持在:维 200-400 之间
原有服 和 有服 ...
Qzone 速(访问测 2007.10 )
Qzone 速(访问测 2007.11 )
Qzone 速(访问测 2007.12 )
和 控系运营 监 统
速平台的搭建测
自 化动 测试
自 化动 编译
模 用块间调
服 器打包 范务 规
布流程的 范发 规
性能 化不可缺少的因素优
的重领导 视
成立虚 目 性能 化拟项 组负责 优
性能 化成优 为 KPI
互 网 部可用性考核联 运营
兄弟部 的支持门
互 网 部、互 网研 部、 面联 运营 联 发 页
制作 、系 架 部、 技 中心组 统 构...
谢谢
The End
Upcoming SlideShare
Loading in...5
×

腾讯大讲堂17 性能优化不是仅局限于后台(qzone)

976

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
976
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

腾讯大讲堂17 性能优化不是仅局限于后台(qzone)

  1. 1. 性能 化不是 局限于后优 仅 台 ----Qzone 性能 化 告优 报 QQ 空 品中心间产 Qwang
  2. 2. Qzone 化概述优 存 化储优 日志重构 化访问优 接入层 逻辑层 表现层
  3. 3. 日志重 前 分析构 问题 数据量增 快长过 数据量总 9T 日增 量长 约 20G 容需 行大量数据搬扩 进 迁 Cache 命中率低( 50% ), DB 力压 大
  4. 4. 旧系统结构 模块 日志回复 日志标题 日志 数计 点优 CACHE 内存化,提升 性能 多 程号段分布 理进 处 步化业务异 缺点 CACHE 量有限,命中 率低,对 DB 的性能依 比 重赖 较 模 相互独立,容易造块 成数据不一致
  5. 5. Qzone 数据 化(日志重 )层优 构 与 品 理的产 经 Trade-off 区分近期日志与往期日志 区分活 数据、非活 数据和 史跃 跃 历 档数据归 二 存(内存级缓 + 文件) 个号 行路由针对单 码进
  6. 6. 新系统结构 系 分三个模 :日志信息、日志 、 数统 块 标题 访问计 CGI 日志 、 数模 有层对 标题 访问计 块 读 / 写权限; 日志 模 只有对 标题 块 读 权限,其数据来源于日志信息模块
  7. 7. 日志信息模块结构
  8. 8. 日志重 后的特点构 将数据区分 活 数据、不活 数为 跃 跃 据和 史 档数据, 少历 归 减 Cache 数 据量,提升 Cache 命中率 Cache 根据数据 活 度 行访问 跃 进 扩 容 DB 根据存 容量 行 容储 进 扩
  9. 9. Qzone 日志重 前后数据 比构 对   重构前 重构后 数据量 日志标题 Cache 10 台, 69G ,命中率 90% 10 台, 128G ,命中率 88% DB 5 台, 340G 5 台, 600G 日志信息 Cache 20 台, 68G ,命中率 50% 12 台, 3T ,命中率 80% DB 20 台, 9T 12 台, 10T 日志计数 Cache 10 台, 122G ,命中率 100% 10 台, 122G ,命中率 100% DB 4 台, 100G 4 台, 100G 访问量 日志标题 7100 次 / 秒 6000 次 / 秒 日志信息 5000 次 / 秒 4500 次 / 秒 日志计数 7000 次 / 秒 10000 次 / 秒
  10. 10. Qzone 速度慢访问 Http 求量大,下 数据量大请 载 用户 CPU 消耗高 用 常投 打不户经 诉 开 Qzone
  11. 11. Qzone 化前 速访问优 测
  12. 12. Qzone 提速 化访问 优 量化性能数据 路径 点关键 时间 统计
  13. 13. Yahoo 14 性能 化优 规则 1. Make fewer HTTP requests 2. Use a CDN 3. Add an Expires header 4. Gzip components 5. Put CSS at the top 6. Move JS to the bottom 7. Avoid CSS expressions 8. Make JS and CSS external 9. Reduce DNS lookups 10. Minify JS 11. Avoid redirects 12. Remove duplicate scripts 13. Turn off ETags 14. Make AJAX cacheable and small
  14. 14. Qzone 化访问优 域名 化访问优 静 面与 数据分离态页 动态 少减 http 求请 降低 器浏览 CPU 消耗 Ajax 化优 Web Server 化优
  15. 15. 域名相关 少减 *.qzone.qq.com 域名的使用, 降低动态 DNS 求查询请 走 校 网及北方城市, 双访 园 发现 ISP 的 local DNS 的问题 前置机通 域名 正被 定位的过 纠 错误 用户
  16. 16. 静 面相态页 关 拆分静 面、 片、 式及态页 图 样 flash ,分散 至 imgcache.qq.com 等静 文件域名态 Imgcache.qq.com 的 CDN 外包 静 文件服 器 化态 务 优 支持 接长连 支持 gzip 压缩 使用 expires Qzone http 总请求量 静态页面 动态数据 相册图片 其他静态数据 80 46 14 14 6
  17. 17. 少减 http 求请 合并小 片 求图 请 合并 css 和 js 文件 合并 数据 求动态 请 数据支持动态 304 有效利用 器浏览 cache 和 js 量变 缓 存 数据动态
  18. 18. 小 片的 求合并(图 请 css+ 背景 )图
  19. 19. 合并 css 和 js 文件 合并 css 文件 入进 Qzone 只需要下载 2 个 css 文件 Css 文件合并工具 合并 js 文件 除无用字符(空格、 行等)删 换 Js 文件合并工具
  20. 20. 合并 数据 求动态 请 合并多个模 的 数据 一个静块 动态 为 文件态
  21. 21. 数据支持动态 304 大数据量的 求在存 上增加对 请 储层 时 戳间 浏览器请求cgi 读取数据时间戳 浏览器时间戳<数据时间戳 读取浏览器上报时间戳 读取数据 返回304返回200 Yes No
  22. 22. 利用 js 量和 器变 浏览 Cache 利用 js 量变 Js 将 取的 数据放入数 量获 动态 组变 每次 起 数据 求前 数 内发 动态 请 检查 组 是否保存了相 数据应 利用 器浏览 cache 取消了 Cache-Control: No-cache 使用 url+ 随机数避免 器浏览 cache
  23. 23. 器下 求量和数据量 比浏览 载请 对   优化前 优化后(无 Cache ) 优化后(部分 Cache ) 优化后(全 Cache ) 请求量 160 86 58 12 数据量 2.4M 1.5M 48K 8K
  24. 24. 降低 器浏览 CPU 消耗 将 XML 修改为 JSON 降低 器浏览 Parse XML 的 CPU 消耗 支持跨域 求, 少请 减 proxy.html 求请 少减 iframe 的使用 尽可能使用 div 合理使用 cookie 器浏览 20 个同域 cookie 的限制 少因减 cookie 多造成的分包过 Item 文件 工具检查
  25. 25. Ajax 化优 行数据分 ,按 先 序 求进 级 优 级顺 请 数据 打开 Qzone 所需的数据 先加优 载 步化 求,尽量避免 器同域下异 请 浏览 个并 求的限制两 发请 片延 加图 迟 载 面 染相 的数据延 加页 渲 关 迟 载
  26. 26. 尽可能多的 Para-Downloading
  27. 27. Web Server 化优 拆分 CGI 步异 逻辑 将可以 步化的 交 步异 逻辑 给异 app server 理处 配置文件内存化 Cgi 90% 的消耗在 取配置文件读 使用 gprof 等工具 使用 量轻 级 Web Server 放弃 apache 、 化优 httpsvr 少共享内存加 解 的减 锁 锁 开销
  28. 28. 量轻 级 Web Server ( qzhttpd ) 性能部分: 所有机器的 CPU 的 idle 都 持在维 90% - 93% 左 右 周末高峰期:最大 求量:请 900 左右,平 都时 持在:维 200-400 之间 原有服 和 有服 的差 :务 现 务 别 周一 至 周四: httpsvr 程进 cpu 最大占用率: 10% qzhttpd 程进 cpu 最大占用率: 6% , 差 不大别 周末: httpsvr 程进 cpu 最大占用率: 20% qzhttpd 程进 cpu 最大占用率: 10% , 差 大别较
  29. 29. Qzone 速(访问测 2007.10 )
  30. 30. Qzone 速(访问测 2007.11 )
  31. 31. Qzone 速(访问测 2007.12 )
  32. 32. 和 控系运营 监 统 速平台的搭建测 自 化动 测试 自 化动 编译 模 用块间调 服 器打包 范务 规 布流程的 范发 规
  33. 33. 性能 化不可缺少的因素优 的重领导 视 成立虚 目 性能 化拟项 组负责 优 性能 化成优 为 KPI 互 网 部可用性考核联 运营 兄弟部 的支持门 互 网 部、互 网研 部、 面联 运营 联 发 页 制作 、系 架 部、 技 中心组 统 构 运营 术 、管理工程部……
  34. 34. 谢谢 The End
  1. Gostou de algum slide específico?

    Recortar slides é uma maneira fácil de colecionar informações para acessar mais tarde.

×