Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
百度贴吧服务端性能优化实践
Search
Reeze Xia
August 13, 2014
Technology
1.8k
5
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
百度贴吧服务端性能优化实践
Reeze Xia
August 13, 2014
More Decks by Reeze Xia
See All by Reeze Xia
HHVM: A High Performance PHP Engine
reeze
3
140
百度贴吧HHVM应用实践
reeze
6
1.3k
百度贴吧LAMP架构
reeze
1
1.4k
Other Decks in Technology
See All in Technology
2026TECHFRESH畢業分享會 - Lightning Talk - 打造精準高效的 MCP 設計模式與測試實務
line_developers_tw
PRO
0
960
あなたの AI ワークスペースに、 専門コーダーを連れてくる - Amazon Quick Desktop 最新情報
kawaji_scratch
1
130
Socrates × Looker 〜セマンティックレイヤーで進化するデータ分析エージェント〜
hanon52_
3
2.3k
SONiCのLinuxベースを活かしたZabbix監視
sonic
0
140
プロダクト開発から業務改善コンサルまで。事業全体へ「染み出す」ことで広がるエンジニアの可能性
ham0215
0
120
2026 TECHFRESH 畢業分享會 - 開發日常大解密!從領域驅動到企業級上線
line_developers_tw
PRO
0
960
ACE-Step-1.5で見る 音楽生成AIのしくみと“破綻だけ直す”Retake機能の開発【zennfes spring 2026 登壇資料】
personabb
1
360
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
100
脆弱性対応、どこで線を引くか
rymiyamoto
1
380
AIの性能が向上しても未解決な組織の重大問題は何か?/An Unsolved Organizational Problem in the Age of AI
moriyuya
4
660
AGENTS.mdとSkillsで始めるAIエージェント活用
sonoda_mj
3
210
LLMにもCAP定理があるという話
harukasakihara
0
330
Featured
See All Featured
Unsuck your backbone
ammeep
672
58k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
370
Optimizing for Happiness
mojombo
378
71k
For a Future-Friendly Web
brad_frost
183
10k
The Curious Case for Waylosing
cassininazir
1
380
4 Signs Your Business is Dying
shpigford
187
22k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
840
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
540
Building Applications with DynamoDB
mza
96
7.1k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.2k
Visualization
eitanlees
152
17k
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
330
Transcript
百度贴吧服务端性能优化实践 夏绪宏
[email protected]
Web性能⼤大会 2014
About Me • 夏绪宏 • 百度贴吧:LAMP技术负责⼈人 • Weibo: @reeze •
http://github.com/reeze • Email:
[email protected]
Agenda 1. 性能优化简介 2. 贴吧服务端性能优化实践 3. 总结展望
Web Performance Matters TM
Performance is a Feature ” “ — Jeff Atwood
optimize to make sth as good as it can be.
['ɑptɪ.maɪz] v.
Web performance optimization Achieve better performance with limited resources by
doing less, do it faster, correctly. Better: faster, less resource consumption.
Web performance optimization All about Trade off. ! Most of
the time, you can’t get them all.
运⾏行效率 开发效率 运维效率 理想:Get them all. 现实:很难全局最优,Make your choice. 其他变量:资源成本,技术选型等
全局视⾓角,并⾮非只有运⾏行效率
Photo credit: 《High Performance Browser Networking》 Latency and Bandwidth 我们的优化重点
Server Lantency
优化⺫⽬目标 • ⽤用户体验:降低响应时间 • 节省资源:提⾼高吞吐,充分利⽤用资源
系统化视⾓角 • 性能问题从哪⾥里来? • 性能问题怎么定位? • 怎么发现性能衰减?事前、事后
系统化视⾓角 • 性能问题哪⾥里来? • 设计阶段:架构问题 • 开发阶段:实现问题 • 在线运⾏行:⼦子模块故障,流量上涨等 !
• 动态问题:随时间变化
层次化视⾓角 • 业务层 • 代码逻辑 • 算法层次 • 基础层 •
运⾏行层、交互层 • 系统层次 Nginx接⼊入 业务层 运⾏行层: PHP、Nginx MySQL/Cache/等 RPC交互层 操作系统/⺴⽹网络
怎么定位性能问题 • PIaaB: Performance Issue as a Bug :) !
! !
怎么定位性能问题 • Toolbox • xhprof、valgrind-callgrind、gperftools • jemalloc、HHVM AdminServer • systemtap…
etc… • 业务性能监控平台
百度贴吧 • 最⼤大的中⽂文社区 ! • 百亿级流量 • 业务增⻓长⻜飞速,规模⼤大:100+⼦子模块 • 业务120+
上线/天
贴吧层次架构 # %$! " # Nginx
%$! %$! %$! %$! %$! %$! %$! %$! " %$! %$! %$! %$! %$! %$! %$!
Nginx优化 • Nginx Cache • 内部数据接⼝口缓存 • 及早返回,提升响应速度 • 线上Cache命中率:
60% • 在适⽤用的场景使⽤用cache Cache DB
Nginx优化 • 内部调⽤用使⽤用⻓长连接 • 跨机房请求 ~ 2ms左右,同机房1ms以内 • 使⽤用⻓长连接避免连接性能损失 •
级联效应 Nginx接⼊入 RPC
业务优化 • 并⾏行化 • 后端调⽤用串⾏行变并⾏行 • 最理想情况下: 185ms -> 63ms
Nginx 业务层 RPC
业务优化 • 并⾏行的⽭矛盾:开发效率与效率的⽭矛盾 • 业务依赖关系,⽆无法全并⾏行 • 模块化设计:可并⾏行的难以并⾏行 • ⾃自动化并⾏行:开发效率⽆无法满⾜足 Nginx
业务层 RPC
业务优化-代码及逻辑优化 • 代码优化: • 使⽤用本地apc cache缓存配置 • 批量获取数据 • 业务逻辑优化
• ⽇日志打印优化 • etc… Nginx 业务层 RPC
业务优化-代码及逻辑优化 • 前端模板性能优化 • CPU密集型 • ⻚页⾯面性能瓶颈 Nginx 业务层 RPC
业务优化-代码及逻辑优化 • 热点函数函数扩展实现 • 性能提升17% • 响应时间降低 32.5%
业务优化-代码及逻辑优化 • Spider优化: • 帖⼦子⻚页 21%来⾃自爬⾍虫 • 针对Spider提供简版⻚页⾯面:平均响应时间下降11% • 带宽优化
• 使⽤用CDN,缩⼩小⻚页⾯面体积 • 节省 35% Nginx 业务层 RPC
RPC优化 • 700+后端配置 • 配置⽂文件⼤大⼩小:~ 5M • 变动频繁 ! •
实时加载配置不可⾏行,热加载 Nginx RPC交互层
RPC优化 • 避免重复加载 • PHP⽆无状态怎么办? • 扩展实现 • 独⽴立进程更新配置 RPC中间件V1
RPC优化 • 使⽤用共享内存 • 使⽤用更快的序列化格式 RPC中间件V2
RPC优化 ! ! ! ! • 使⽤用更快的序列化格式:msgpack > php serialize
> json 序列化(s) case1 case2 case3 case4 case5 PHP 0.216778 0.217359 0.253435 0.162621 0.214441 JSON 0.249784 0.205442 0.325695 0.124034 0.384287 Msgpack 0.218894 0.212432 0.250249 0.048074 0.096459
RPC优化 • 整体性能提升:24.6% ! • 其他尝试思路: • 更短的调⽤用路径,减少架构层次 • 内部使⽤用更⾼高效的协议,⽽而不是HTTP等
更快的PHP • 另⼀一个PHP实现:HHVM (HipHop PHP Virtual Machine) • Facebook开源项⺫⽬目 http://github.com/facebook/hhvm
• 解决PHP运⾏行效率问题 • 开发速度和效率兼得 Nginx 运⾏行层 RPC
更快的PHP %$" %$" #! %$"
更快的PHP • 我们的业务测试结果 ! ! ! !
为什么会快 • 类型推导 • JIT • 多级优化
真实业务数据
真实业务数据 • 响应时间下降:126ms • 平均提升:27%
进展 • 完成绝⼤大多数在线应⽤用的迁移 • 核⼼心服务性能提升平均40%+ ! • Conclusion: 尤其适合计算密集型业务
系统化思路 • 防治:线下性能监控 • 监控:线上性能监控 • 定位:性能问题分析 षؿ ҩ൫ ഈཌ
ᄎྛ ࡓ॥
系统化思路 • 防治:线下性能监控平台 • 业务拓扑关系复杂 • 线上线下环境差异⼤大 • 难以获得真实数据 •
难以⾃自动化
性能问题早发现 • 在线性能监控平台 • 性能变化早知道 • 和上线时间点关联 • 调⽤用拓扑关系
总结和展望 • 性能优化是个迭代过程 • 全局思考、有所取舍 ! • 提升在线性能问题定位效率 • 探索线下性能衰减发现有效⼿手段
• 全局优化:不⽌止Server端,底层操作系统,⺴⽹网络等。
Thank you