Suche senden
Hochladen
了解应用服务器
•
Als PPTX, PDF herunterladen
•
10 gefällt mir
•
1,501 views
Feng Yu
Folgen
了解应用服务器
Weniger lesen
Mehr lesen
Technologie
Melden
Teilen
Melden
Teilen
1 von 24
Jetzt herunterladen
Empfohlen
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
Feng Yu
了解集群
了解集群
Feng Yu
Erlang开发实践
Erlang开发实践
Feng Yu
高级服务器设计和实现3
高级服务器设计和实现3
Feng Yu
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
Feng Yu
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
Feng Yu
MySQL和IO(下)
MySQL和IO(下)
Feng Yu
Empfohlen
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
Feng Yu
了解集群
了解集群
Feng Yu
Erlang开发实践
Erlang开发实践
Feng Yu
高级服务器设计和实现3
高级服务器设计和实现3
Feng Yu
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
Feng Yu
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
Feng Yu
MySQL和IO(下)
MySQL和IO(下)
Feng Yu
利用新硬件提升数据库性能
利用新硬件提升数据库性能
Feng Yu
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
Feng Yu
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术团队
高级服务器设计和实现2
高级服务器设计和实现2
Feng Yu
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
美团点评技术团队
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
高性能数据库
高性能数据库
dhlzj
SSD在淘宝的应用实践
SSD在淘宝的应用实践
Feng Yu
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
jackbillow
MySQL的并发线程性能问题
MySQL的并发线程性能问题
Hui Liu
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
MySQL压力测试经验
MySQL压力测试经验
Jinrong Ye
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
XiaoJun Hong
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
XiaoJun Hong
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
Jinrong Ye
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
孙立
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
分布式缓存与队列
分布式缓存与队列
XiaoJun Hong
mercury
mercury
moonbingbing
如何针对业务做DB优化
如何针对业务做DB优化
Jinrong Ye
MySQL和IO(上)
MySQL和IO(上)
Feng Yu
了解IO设备
了解IO设备
Feng Yu
Weitere ähnliche Inhalte
Was ist angesagt?
利用新硬件提升数据库性能
利用新硬件提升数据库性能
Feng Yu
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
Feng Yu
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术团队
高级服务器设计和实现2
高级服务器设计和实现2
Feng Yu
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
美团点评技术团队
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
高性能数据库
高性能数据库
dhlzj
SSD在淘宝的应用实践
SSD在淘宝的应用实践
Feng Yu
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
jackbillow
MySQL的并发线程性能问题
MySQL的并发线程性能问题
Hui Liu
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
美团点评技术团队
MySQL压力测试经验
MySQL压力测试经验
Jinrong Ye
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
XiaoJun Hong
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
XiaoJun Hong
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
Jinrong Ye
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
孙立
新浪微博Feed服务架构
新浪微博Feed服务架构
XiaoJun Hong
分布式缓存与队列
分布式缓存与队列
XiaoJun Hong
mercury
mercury
moonbingbing
如何针对业务做DB优化
如何针对业务做DB优化
Jinrong Ye
Was ist angesagt?
(20)
利用新硬件提升数据库性能
利用新硬件提升数据库性能
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
美团点评技术沙龙010-点评RDS系统介绍
美团点评技术沙龙010-点评RDS系统介绍
高级服务器设计和实现2
高级服务器设计和实现2
美团点评技术沙龙14:美团云对象存储系统
美团点评技术沙龙14:美团云对象存储系统
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
高性能数据库
高性能数据库
SSD在淘宝的应用实践
SSD在淘宝的应用实践
基于MySQL的分布式数据库实践
基于MySQL的分布式数据库实践
MySQL的并发线程性能问题
MySQL的并发线程性能问题
美团技术沙龙04 - Kv Tair best practise
美团技术沙龙04 - Kv Tair best practise
MySQL压力测试经验
MySQL压力测试经验
新浪微博分布式缓存与队列-2013版
新浪微博分布式缓存与队列-2013版
大型系统的缓存标准化之路—从主从多级重client到一体化
大型系统的缓存标准化之路—从主从多级重client到一体化
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
高性能队列Fqueue的设计和使用实践
高性能队列Fqueue的设计和使用实践
新浪微博Feed服务架构
新浪微博Feed服务架构
分布式缓存与队列
分布式缓存与队列
mercury
mercury
如何针对业务做DB优化
如何针对业务做DB优化
Andere mochten auch
MySQL和IO(上)
MySQL和IO(上)
Feng Yu
了解IO设备
了解IO设备
Feng Yu
了解内存
了解内存
Feng Yu
了解IO协议栈
了解IO协议栈
Feng Yu
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
Feng Yu
了解网络
了解网络
Feng Yu
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
Feng Yu
mnesia脑裂问题综述
mnesia脑裂问题综述
Feng Yu
Andere mochten auch
(8)
MySQL和IO(上)
MySQL和IO(上)
了解IO设备
了解IO设备
了解内存
了解内存
了解IO协议栈
了解IO协议栈
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
了解网络
了解网络
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
mnesia脑裂问题综述
mnesia脑裂问题综述
Ähnlich wie 了解应用服务器
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
Yiwei Ma
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
Chao Zhu
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
Sky Jian
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
ITband
Nosql三步曲
Nosql三步曲
84zhu
开源软件营销策略
开源软件营销策略
linhaicaoyuan
美团点评技术沙龙08 - 分布式服务通信框架及服务治理系统
美团点评技术沙龙08 - 分布式服务通信框架及服务治理系统
美团点评技术团队
WychERP 业务管理解决方案
WychERP 业务管理解决方案
Sandwych Consulting
Nodejs & NAE
Nodejs & NAE
q3boy
有道云笔记架构简介
有道云笔记架构简介
drewz lin
新浪微博平台与安全架构
新浪微博平台与安全架构
n716
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
Scourgen Hong
辽宁大学私有云项目分析
辽宁大学私有云项目分析
博 孟
Mysql调优
Mysql调优
ken shin
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
drewz lin
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
Xuefeng Zhang
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
Andrew Wu
04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化
littlecong
Ähnlich wie 了解应用服务器
(20)
Taobao casestudy-yufeng-qcon
Taobao casestudy-yufeng-qcon
大型电商的数据服务的要点和难点
大型电商的数据服务的要点和难点
基于 MySQL 的B2C电商系统前端数据层架构
基于 MySQL 的B2C电商系统前端数据层架构
利用统一存储获得无与伦比的速度,简化系统,并节省更多
利用统一存储获得无与伦比的速度,简化系统,并节省更多
Nosql三步曲
Nosql三步曲
开源软件营销策略
开源软件营销策略
美团点评技术沙龙08 - 分布式服务通信框架及服务治理系统
美团点评技术沙龙08 - 分布式服务通信框架及服务治理系统
WychERP 业务管理解决方案
WychERP 业务管理解决方案
Nodejs & NAE
Nodejs & NAE
有道云笔记架构简介
有道云笔记架构简介
新浪微博平台与安全架构
新浪微博平台与安全架构
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
从林书豪到全明星 - 虎扑网技术架构如何化解流量高峰
辽宁大学私有云项目分析
辽宁大学私有云项目分析
Mysql调优
Mysql调优
张松国 腾讯微博架构介绍08
张松国 腾讯微博架构介绍08
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
浅谈电商网站数据访问层(DAL)与 ORM 之适用性
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
微服務架構 導入經驗分享 吳剛志 - Community Open Camp
04.web sphere培训 应用websphere优化
04.web sphere培训 应用websphere优化
Mehr von Feng Yu
Cpu高效编程技术
Cpu高效编程技术
Feng Yu
了解Cpu
了解Cpu
Feng Yu
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
Feng Yu
Erlang low cost_clound_computing
Erlang low cost_clound_computing
Feng Yu
Systemtap
Systemtap
Feng Yu
Oprofile linux
Oprofile linux
Feng Yu
Go
Go
Feng Yu
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
Erlang全接触
Erlang全接触
Feng Yu
Tsung 压力测试工具
Tsung 压力测试工具
Feng Yu
Inside Erlang Vm II
Inside Erlang Vm II
Feng Yu
Go Lang
Go Lang
Feng Yu
Mehr von Feng Yu
(12)
Cpu高效编程技术
Cpu高效编程技术
了解Cpu
了解Cpu
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
Erlang low cost_clound_computing
Erlang low cost_clound_computing
Systemtap
Systemtap
Oprofile linux
Oprofile linux
Go
Go
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Erlang全接触
Erlang全接触
Tsung 压力测试工具
Tsung 压力测试工具
Inside Erlang Vm II
Inside Erlang Vm II
Go Lang
Go Lang
了解应用服务器
1.
了解应用服务器 核心系统数据库组 余锋
http://yufeng.info @淘宝褚霸 2012-08-15
2.
C10K问题 • http://www.kegel.com/c10k.html • 提出时间是2001年,10年过去了 •
挑战还在: – 用户对服务响应时间和可靠性要求越来越高。 – 没有革命性的技术改进,算法和操作系统和库变化不 大。 – 硬件,操作系统,库,平台,应用的层次越来越深。 2
3.
应用服务器关键
开发 • 度量 • 稳定 • 平衡 • 简单 • 调整 • 主流 设计 运维 3
4.
硬件的选择 •
切合业务的需求 • 系统平衡 • 可靠性 • 性价比 4
5.
平台的选择 •
白盒子还是黑盒子 • 最大程度的挖掘硬件与系统的潜力 • 应用系统最大的框 • 平台的生命力 5
6.
并行化 • 理论依据 –
新硬件趋向幵行化 – 软件需要提高幵行度 • 解决 – CPU计算力过剩 – 适应NUMA架构下大内存 – 设备IO能力过剩 • 多实例还是虚拟化 6
7.
进程模型的选择 • 单线程多进程 –
极大避免进程上下文切换的影响 – 编程模型复杂 • 单进程多线程 – 编程模型简单 – 如有可能不要尝试多线程,实在不行用原语高级点的 库 – 很难调试 做好诊断设施 7
8.
通讯模型的选择 • Don't communicate
by sharing memory • share memory by communicating • 进程间通信(IPC) 8
9.
IO模型的选择 •
阻塞I/O • 非阻塞I/O • I/O多路复用 • 事件驱动 I/O (SIGIO) • 异步I/O (POSIX aio_函数和native aio) 9
10.
IO模型的差别
10
11.
语言的选择 • 语言成熟度 –
开发人员成本 – 社区经验 • 涉及面广 – 习惯 – 性能 – 库 – 运行期 – 维护期 11
12.
业务逻辑 •
整个业务就是一个大的状态变迁图 • 一个外部对象对于一组状态机 • 状态的变化是消息引起的 • 消息是可以跟踪的 12
13.
库的选择 •
语言的延伸 • 简单够用,业界主流时间验证过 • 抵制重复造轮子 • 一次做一件事,做深做透 13
14.
协议选择 •
业界主流,方便对接 • 文本协议 • 二进制协议 • 基于规则自动解析 • 手动解析 14
15.
基础数据结构的选择 • 简单就是美 • 压缩数据集,避免数据搬动 •
除非必要不要用非常复杂的数据结构 • 数组、 链表解决大部分事情 • 数组方便利用硬件cache • 不需要为未来的东西付出代价 15
16.
可扩展设计 •
方便业务扩展 • 方便团队参与 • 接口要足够简单 • 可以考虑用脚本 • 形成生态系统 16
17.
可配置 • 适应经常性的变化和个性化需求 • Unix
.conf或者.ini格式 • 可以用类似Lua等高级语言来描述 17
18.
稳定性 •
稳定压倒一切 • 资源预分配 • 不可以发生泄漏,堆积 • 不可使用过多资源 • 避免频繁的分配/释放内存(内存碎片) 18
19.
制约性能的杀手 • 数据拷贝 –
4K数据拷贝的开销1us • 上下文切换 – 考虑到缓存践踏,开销20-30us • 内存分配 – 不可再生资源,倒腾代价巨大 • 锁竞争 – 最快的锁也要0.1us • 昂贵的系统调用 19
20.
性能可微调 • 提供简单的接口动态改变服务器关键数据 • 自动根据系统的资源情况来决定默认值 •
有统计模块做微调依据 20
21.
移植性 • 平台移植 • 硬件移植 •
最小化特性 • ANSI C代码,最大可移植性 21
22.
工程实践的考虑 •
严谨的错误处理 • 为易诊断而编码 • 完善的日志系统 • 健康监控 22
23.
总结 •
充分利用软硬件特性 • 简单就是美 • 不造轮子 • 开放融入主流社区 • 稳定压倒一切 • 为运维而准备 23
24.
提问时间 谢谢大家!
24
Jetzt herunterladen