Soumettre la recherche
Mettre en ligne
微博Lamp性能优化之路(2014)
•
26 j'aime
•
13,158 vues
Xinchen Hui
Suivre
Weibo Lamp performance improvement
Lire moins
Lire la suite
Technologie
Signaler
Partager
Signaler
Partager
1 sur 31
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Weibo lamp improvements
Weibo lamp improvements
Xinchen Hui
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 ppt
Xinchen Hui
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
COSCUP 2016 Laravel 部署工作坊 - 生態圈介紹
COSCUP 2016 Laravel 部署工作坊 - 生態圈介紹
Shengyou Fan
Laravel - 簡介與環境設定
Laravel - 簡介與環境設定
Vincent Chi
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
使用 wagon + VS Code 輕鬆打造 Windows 平台 PHP/Laravel 開發環境
使用 wagon + VS Code 輕鬆打造 Windows 平台 PHP/Laravel 開發環境
Shengyou Fan
Recommandé
Weibo lamp improvements
Weibo lamp improvements
Xinchen Hui
China PHP Technology Summit 2011 ppt
China PHP Technology Summit 2011 ppt
Xinchen Hui
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
LaravelConf Taiwan 2017 單頁面應用與前後端分離開發
俊仁 陳
COSCUP 2016 Laravel 部署工作坊 - 生態圈介紹
COSCUP 2016 Laravel 部署工作坊 - 生態圈介紹
Shengyou Fan
Laravel - 簡介與環境設定
Laravel - 簡介與環境設定
Vincent Chi
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
[Modern Web Conf 2015] 給 PHP 開發者的 Composer 錦囊
Shengyou Fan
工作坊簡介
工作坊簡介
Shengyou Fan
使用 wagon + VS Code 輕鬆打造 Windows 平台 PHP/Laravel 開發環境
使用 wagon + VS Code 輕鬆打造 Windows 平台 PHP/Laravel 開發環境
Shengyou Fan
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
Shengyou Fan
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
美团点评技术团队
2021.laravelconf.tw.slides5
2021.laravelconf.tw.slides5
LiviaLiaoFontech
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
Laravel installfest 工作坊 投影片
Laravel installfest 工作坊 投影片
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
專案啟動與環境設定
專案啟動與環境設定
Shengyou Fan
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
StreamNative
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
Why to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
成為全能 php 攻城獅
成為全能 php 攻城獅
Shengyou Fan
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
StreamNative
wagon - 免安裝可攜的 Laravel 開發環境
wagon - 免安裝可攜的 Laravel 開發環境
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697
CAVEDU Education
Serverless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolong
StreamNative
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
Shengyou Fan
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
Nodejs & NAE
Nodejs & NAE
q3boy
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
Contenu connexe
Tendances
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
Shengyou Fan
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
美团点评技术团队
2021.laravelconf.tw.slides5
2021.laravelconf.tw.slides5
LiviaLiaoFontech
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Shengyou Fan
Laravel installfest 工作坊 投影片
Laravel installfest 工作坊 投影片
Shengyou Fan
課程簡介
課程簡介
Shengyou Fan
專案啟動與環境設定
專案啟動與環境設定
Shengyou Fan
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
StreamNative
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
Shengyou Fan
開發環境建置
開發環境建置
Shengyou Fan
Why to choose laravel framework
Why to choose laravel framework
Bo-Yi Wu
成為全能 php 攻城獅
成為全能 php 攻城獅
Shengyou Fan
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
StreamNative
wagon - 免安裝可攜的 Laravel 開發環境
wagon - 免安裝可攜的 Laravel 開發環境
Shengyou Fan
使用者認證
使用者認證
Shengyou Fan
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
Shengyou Fan
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697
CAVEDU Education
Serverless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolong
StreamNative
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
Shengyou Fan
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Andy Dai
Tendances
(20)
凌波微步:wagon + VS Code 的輕功哲學
凌波微步:wagon + VS Code 的輕功哲學
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
美团点评技术沙龙06 - 滴滴移动端测试解耦工具实践
2021.laravelconf.tw.slides5
2021.laravelconf.tw.slides5
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
[PHPConf Taiwan 2015] 跟著 Laravel 5.1 一起成為更好的 PHP 開發者
Laravel installfest 工作坊 投影片
Laravel installfest 工作坊 投影片
課程簡介
課程簡介
專案啟動與環境設定
專案啟動與環境設定
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
Improvements Made in KoP 2.9.0 - Pulsar Summit Asia 2021
給你一個使用 Laravel 的理由
給你一個使用 Laravel 的理由
開發環境建置
開發環境建置
Why to choose laravel framework
Why to choose laravel framework
成為全能 php 攻城獅
成為全能 php 攻城獅
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
The Evolution History of RoP(RocketMQ-on-Pulsar) - Pulsar Summit Asia 2021
wagon - 免安裝可攜的 Laravel 開發環境
wagon - 免安裝可攜的 Laravel 開發環境
使用者認證
使用者認證
View 與 Blade 樣板引擎
View 與 Blade 樣板引擎
LINE Messaging API with LinkIt 7697
LINE Messaging API with LinkIt 7697
Serverless Event Streaming with Pulsar Functions-xiaolong
Serverless Event Streaming with Pulsar Functions-xiaolong
選一個框架當好朋友,讓您成為開心攻城獅
選一個框架當好朋友,讓您成為開心攻城獅
該怎麼樣(認真的)部署你的 Python Web 應用程式?
該怎麼樣(認真的)部署你的 Python Web 應用程式?
Similaire à 微博Lamp性能优化之路(2014)
Nodejs & NAE
Nodejs & NAE
q3boy
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
大话Php之性能
大话Php之性能
liqiang xu
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
drewz lin
夸父通讯中间件
夸父通讯中间件
Open Party
Phalcon phpconftw2012
Phalcon phpconftw2012
Rack Lin
Phalcon the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯
Hash Lin
构建基于Lamp的网站架构
构建基于Lamp的网站架构
Cosey Lee
Erlang and HTML5
Erlang and HTML5
Witeman Zheng
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
FLASH开发者交流会
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
yp_fangdong
AI/ML O-RAN Cloud-Native Automation
AI/ML O-RAN Cloud-Native Automation
National Yang Ming Chiao Tung University
陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路
yingganfei
漫谈php和java
漫谈php和java
sulong
杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheel
drewz lin
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Dahui Feng
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
hugo
基于Erlang的
基于Erlang的
hnoutman
应用开发一般工作流程和注意
应用开发一般工作流程和注意
cucued
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Joshua Zhu
Similaire à 微博Lamp性能优化之路(2014)
(20)
Nodejs & NAE
Nodejs & NAE
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
大话Php之性能
大话Php之性能
徐晓 Qq空间技术架构之峥嵘岁月
徐晓 Qq空间技术架构之峥嵘岁月
夸父通讯中间件
夸父通讯中间件
Phalcon phpconftw2012
Phalcon phpconftw2012
Phalcon the fastest php framework 阿土伯
Phalcon the fastest php framework 阿土伯
构建基于Lamp的网站架构
构建基于Lamp的网站架构
Erlang and HTML5
Erlang and HTML5
轻量级Flash服务器开发框架(刘恒)
轻量级Flash服务器开发框架(刘恒)
Hbase在淘宝的应用与优化 修改
Hbase在淘宝的应用与优化 修改
AI/ML O-RAN Cloud-Native Automation
AI/ML O-RAN Cloud-Native Automation
陈桂鸿 Ak--手机qq hybrid-app优化新思路
陈桂鸿 Ak--手机qq hybrid-app优化新思路
漫谈php和java
漫谈php和java
杜嵩 Arch summit2012 dusong@freewheel
杜嵩 Arch summit2012 dusong@freewheel
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
Yupoo! (花瓣网/又拍云) 架构中的消息与任务系统
lua & ngx_lua 的介绍与应用
lua & ngx_lua 的介绍与应用
基于Erlang的
基于Erlang的
应用开发一般工作流程和注意
应用开发一般工作流程和注意
Hacking Nginx at Taobao
Hacking Nginx at Taobao
Plus de Xinchen Hui
A brief to PHP 7.3
A brief to PHP 7.3
Xinchen Hui
PHP7.1 New Features & Performance
PHP7.1 New Features & Performance
Xinchen Hui
The secret of PHP7's Performance
The secret of PHP7's Performance
Xinchen Hui
PHP7 - For Its Best Performance
PHP7 - For Its Best Performance
Xinchen Hui
A History of PHP
A History of PHP
Xinchen Hui
High Performance Solution for PHP7
High Performance Solution for PHP7
Xinchen Hui
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
Xinchen Hui
Php 5.4 performance
Php 5.4 performance
Xinchen Hui
Php performance
Php performance
Xinchen Hui
The Php Life Cycle
The Php Life Cycle
Xinchen Hui
Plus de Xinchen Hui
(10)
A brief to PHP 7.3
A brief to PHP 7.3
PHP7.1 New Features & Performance
PHP7.1 New Features & Performance
The secret of PHP7's Performance
The secret of PHP7's Performance
PHP7 - For Its Best Performance
PHP7 - For Its Best Performance
A History of PHP
A History of PHP
High Performance Solution for PHP7
High Performance Solution for PHP7
PHP7 - The New Engine for old good train
PHP7 - The New Engine for old good train
Php 5.4 performance
Php 5.4 performance
Php performance
Php performance
The Php Life Cycle
The Php Life Cycle
微博Lamp性能优化之路(2014)
1.
微博LAMP优化之路 - Laruence
2.
关于我 l 2005: PHP爱好者,
关注性能 l 2008: www.laruence.com l 2011: PHP开发组成员 l 2012年: 微博平台及⼤大数据部总架构师 l 2013: Zend公司外聘顾问 l Yaf, Yar, Yac, Lua(PHP), Taint作者 l Opcache, APC, Msgpack, CouchBase贡献者, 维护者 l PHP NG主要作者 2
3.
关于PHP 3 l 82.1%的Web服务端脚本语⾔言份额 l
社区活跃, 超过1000的优秀开发⼯工程师直接或间接为PHP贡献 l 版本发布持续, 新功能不断增加, 整体不断完善 l 稳定性不断提⾼高, 速度持续变快 l 最新版本5.6 l 最新开发版7
4.
关于PC微博 4 l 当时国内最⼤大的LNMP平台 l
每天20亿的PV, >50亿的Hits l 400台LNMP前端机 l 平均响应时间<300ms l 峰值每秒10W Hits
5.
最初PC微博 l March, 2012 l
Apache Prefork l PHP-5.2 + APC l Swift(Simplifi゙ed Kohana) l Smarty l BigPipe 5
6.
最初的PC微博 l 日访问量巨⼤大, 在业务⾼高速增长期,
架构⼀一直没变 l 响应时间越来越慢 l 用户效率, 服务成本, 新产品阻⼒力. l 代码量庞⼤大, 只做加法不敢做减法 l 开发成本⼤大, 开发周期长 l 开发效率, 新产品阻⼒力 l ⼯工作⽅方向 l 性能优化 – 提速 l 结构优化 – 解耦 6
7.
性能优化 - Yaf l
Yaf – Yet Another Framework l 第⼀一个C语⾔言扩展框架, 解决经典的是否使用框架争论 l 兼容PSR0的自动加载 l 基于命名空间的⽂文件目录组织 l ⾼高性能的PHP模板引擎 7
8.
性能优化 - Weibo
Ext l Weibo扩展 l Weibo Conf 1. 在Apache启动的时候Parse 2. Fork的时候利用COW, ⽽而避免使用共享内存 3. Lookup只需要⼀一个zval的复制(时间复杂度,空间复杂度 O(1)) l Weibo Utils 1. 运算密集型/PHP脚本⽆无法实现的功能 2. 业务⽆无关性 3. ID encode, At, Link, Topic … 8
9.
性能优化 - PHP
Templates l 弃用Smarty l Smarty太过庞⼤大 l 不兼容的自动加载规则 l 编译后的模板代码臃肿,低效 l Yaf的视图引擎 l PHP语⾔言本身就是⼀一个很好的模板语⾔言 9
10.
性能优化 10 l 响应时间下降 44% l
吞吐提升 78% l CPU利用率下降 l 内存占用率下降
11.
结构优化 – 解耦 l
解耦的基础 l Pagelet l Bigpipe l Pagelet服务化 l SOA(Service-Oriented Architecture)的实践 11
12.
结构优化 – Pagelets服务化 l
统⼀一的Pagelets开发,测试模式 l Pagelets独立开发, 上线, 运维 l Pagelets通过接⼝口对外提供数据 l Pagelets之间通过Cache共享数据 l 需要⼀一个极度⾼高效的RPC 12
13.
结构优化– Yar l Yar
- Yet Another RPC frmawork l 第⼀一个PHP并⾏行RPC框架 l ⾼高效, 轻量级, 易用的RPC框架 l 支持HTTP, Socket俩种⽅方式 l 支持Msgpack, Json 13
14.
结构优化带来的性能优化 - CBigpipe l
Yar - 并⾏行化的RPC l Curl Multi + Select(epoll) l Bigpipe + Yar = Concurrent Bigpipe l Pagelets并发渲染 l Fastest Pagelet Renderred fi゙rst 14
15.
CBigpipe – Concurrent
Bigpipe l CBigpipe l Pagelets并⾏行⽣生成, 谁快谁先到客户端渲染 l 各自独立容灾, 前面的PL失败不会影响后面的PL l ⽣生成时间缩短为”最耗时的PL”⽣生成时间 l 但是, 吞吐下降 l 1 变 M (M << N) 15
16.
结构优化 – 前端PHP后端C l
经典的服务架构 l Yar + C = Yar C framework l Master/Slaver l 异步模型 l Msgpack l 运维友好 16
17.
结构优化 – 前端PHP后端C l
业务面向统⼀一的Yar Client l PHP Service和C Service⽆无缝切换 l 前端PHP后端C的服务架构成型 l 关键词检测服务 l 白名单服务 l 策略服务 l 策略服务为例 l 单机每秒处理请求20K+ 17 0 5000 10000 15000 20000 25000 Yar C Nginx Lua
18.
基础优化 – LAMP到LNMP l
Nginx l 异步 – 单机承载更多连接, 弥补并⾏行化的吞吐下降, 有利于长连接 l 配置编程 – 更⾼高的配置灵活性 l ⼆二次开发 – 唯⼀一请求ID,替代部分7层功能 l PHP5.4 l 迁移代价小, 和5.2的兼容性好 l ⼤大量Bug修复, ⼤大量新特性(Closure, Slow log etc) l 性能提升 (30%) 18
19.
基础优化 – LAMP到LNMP l
替换的过程很漫长 l 小坑踩了不少 l Libmemcached l Bigpipe和gzip l Rewrite规则改写 l Request_time和lingering_close 19 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 25并发 50并发 Apache Nginx 响应时间对比
20.
基础优化 – O+替换APC l
O+不仅仅是Opcodes Cache l 常量表达式预先计算 l 常数散播 l Numeric offset转换 l Nop移除 l CFG dead block移除 l Literals合并 l 7 ~ 10% 快于APC 20
21.
基础优化 – O+替换APC l
替换的效果 l 7月26日全部替换完成 l 替换瞬间的服务器各项指标变化 21
22.
性能优化 – Yac l
Yac – Yet Another Cache l Zend O+没有User Data Cache l L0 Memcached的代价和维护成本 l 我们User Data Cache的特点 l 内容Cache和用户ID相关 l 内容Cache⼀一般⼤大小固定 l 内容Cache出错的代价 l 敏感位确定有规律 22
23.
性能优化 – Yac l
Yac l ⽆无锁的共享内存Cache l Last win l 随机LRU l 冲突的解决 23
24.
总瞰 – 首屏时间 l
数据填满用户浏览器的时间(800 * 600) l 建立连接时间 + 第⼀一个包处理时间 + 接收时间 + 渲染时间 l 数据来自第三⽅方统计机构 24 3.82 3.17 2.57 2.37 2.24 2.11 1.56 1.36 0.0 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 2011Q4 2012Q1 2012Q2 2012Q3 2012Q4 2013Q1 201306 201310
25.
微博⾼高性能LNMP框架 l 微博⾼高性能框架达成 25 H
F G F HGD H Access control . . F DHG B DH A M F . IG C CB C H G HH LH DD H CB F A CF F . F A CFA G D C C Yar C Service Yar PHP ServiceYar Java APICache EI GH D D D D & .
26.
移动Server优化 l 移动业务重要性不断提升 l 来自移动的请求已经占到了70%以上 l
每天80亿的Hits l 前端机有近1000台 l 爆炸式增长凸现MAPI的问题 •・ 服务器压⼒力⼤大 •・ 移动机房4月最低到5% 26 A C
27.
移动Server优化 l ⾼高性能服务统⼀一解决⽅方案 l PHP”异步”调用解决⽅方案 l
基于Flex和Bison实现的Jsond l 更加强⼤大的Zend Optimizer + l 运维优化 l KeepAlive l 会话保持 l 唯⼀一请求ID 27
28.
“异步”调用解决⽅方案 l Feed接⼝口依赖于俩个重型接⼝口, Feed和趋势(推荐) l
接⼝口有先后顺序依赖(未读数), ⽆无法并⾏行化 l 基于IO复用实现的”异步调用”实⾏行了”并⾏行化 l 基于IO复用(Curl Multi) l 依赖TCP可靠的传输应答机制 l 延时读取TCP栈数据 28 - - - /
29.
优化结果 l 平均TPS提升154%, 峰值TPS提升168% l
平均响应时间下降61% l 满载CPU负载下降10% 29
30.
上线以后 l 节省逻辑服务器777台 l 以⽹网通机房为例,
60台服务器, 替代了原来的300台服务器. l 实际下线实体机400台 l 服务器冗余度提升到~3倍 30 ⽹网通机房4月⼀一周平均负载 ⽹网通机房9月⼀一周平均负载
31.
以微博之⼒力, 让世界更美 ! weibo.com
Télécharger maintenant