Suche senden
Hochladen
高级服务器设计和实现3
•
Als PPT, PDF herunterladen
•
8 gefällt mir
•
948 views
Feng Yu
Folgen
Technologie
News & Politik
Melden
Teilen
Melden
Teilen
1 von 23
Jetzt herunterladen
Empfohlen
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
Feng Yu
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
Feng Yu
了解集群
了解集群
Feng Yu
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
高级服务器设计和实现2
高级服务器设计和实现2
Feng Yu
了解应用服务器
了解应用服务器
Feng Yu
Erlang开发实践
Erlang开发实践
Feng Yu
MySQL和IO(下)
MySQL和IO(下)
Feng Yu
Empfohlen
我为什么要选择RabbitMQ
我为什么要选择RabbitMQ
Feng Yu
Erlang分布式系统的的领域语言
Erlang分布式系统的的领域语言
Feng Yu
了解集群
了解集群
Feng Yu
低成本和高性能MySQL云架构探索
低成本和高性能MySQL云架构探索
Feng Yu
高级服务器设计和实现2
高级服务器设计和实现2
Feng Yu
了解应用服务器
了解应用服务器
Feng Yu
Erlang开发实践
Erlang开发实践
Feng Yu
MySQL和IO(下)
MySQL和IO(下)
Feng Yu
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
Feng Yu
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
Erlang全接触
Erlang全接触
Feng Yu
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
Feng Yu
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
Jinrong Ye
5.6 nutshell - 性能优化
5.6 nutshell - 性能优化
Hui Liu
利用新硬件提升数据库性能
利用新硬件提升数据库性能
Feng Yu
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
大型视频网站单点分析与可用性提升-Qcon2011
大型视频网站单点分析与可用性提升-Qcon2011
Yiwei Ma
A
A
lonegunman
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
快速搭建高性能服务端
快速搭建高性能服务端
moonbingbing
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
SSD在淘宝的应用实践
SSD在淘宝的应用实践
Feng Yu
java title
java title
lonegunman
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010
Tim Y
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
Wensong Zhang
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
Jinrong Ye
Oprofile linux
Oprofile linux
Feng Yu
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
Tsung 压力测试工具
Tsung 压力测试工具
Feng Yu
P2P 设计经验谈
P2P 设计经验谈
Feng Yu
Weitere ähnliche Inhalte
Was ist angesagt?
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
Feng Yu
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Feng Yu
Erlang全接触
Erlang全接触
Feng Yu
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
Feng Yu
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
Jinrong Ye
5.6 nutshell - 性能优化
5.6 nutshell - 性能优化
Hui Liu
利用新硬件提升数据库性能
利用新硬件提升数据库性能
Feng Yu
豆瓣网技术架构变迁
豆瓣网技术架构变迁
reinhardx
大型视频网站单点分析与可用性提升-Qcon2011
大型视频网站单点分析与可用性提升-Qcon2011
Yiwei Ma
A
A
lonegunman
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
knuthocean
快速搭建高性能服务端
快速搭建高性能服务端
moonbingbing
分布式Key Value Store漫谈
分布式Key Value Store漫谈
Tim Y
SSD在淘宝的应用实践
SSD在淘宝的应用实践
Feng Yu
java title
java title
lonegunman
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010
Tim Y
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
Wensong Zhang
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
Jinrong Ye
Oprofile linux
Oprofile linux
Feng Yu
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Tim Y
Was ist angesagt?
(20)
淘宝商品库MySQL优化实践
淘宝商品库MySQL优化实践
C1000K高性能服务器构建技术
C1000K高性能服务器构建技术
Erlang全接触
Erlang全接触
Flash存储设备在淘宝的应用实践
Flash存储设备在淘宝的应用实践
Cgroup lxc在17173 iaas应用池中应用
Cgroup lxc在17173 iaas应用池中应用
5.6 nutshell - 性能优化
5.6 nutshell - 性能优化
利用新硬件提升数据库性能
利用新硬件提升数据库性能
豆瓣网技术架构变迁
豆瓣网技术架构变迁
大型视频网站单点分析与可用性提升-Qcon2011
大型视频网站单点分析与可用性提升-Qcon2011
A
A
“云存储系统”赏析系列分享三:Sql与nosql
“云存储系统”赏析系列分享三:Sql与nosql
快速搭建高性能服务端
快速搭建高性能服务端
分布式Key Value Store漫谈
分布式Key Value Store漫谈
SSD在淘宝的应用实践
SSD在淘宝的应用实践
java title
java title
Build scalable microblog qcon beijing 2010
Build scalable microblog qcon beijing 2010
淘宝软件基础设施构建实践
淘宝软件基础设施构建实践
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
PC服务器阵列卡管理简易手册 叶金荣@CYOU-20121223
Oprofile linux
Oprofile linux
大数据时代feed架构 (ArchSummit Beijing 2014)
大数据时代feed架构 (ArchSummit Beijing 2014)
Andere mochten auch
Tsung 压力测试工具
Tsung 压力测试工具
Feng Yu
P2P 设计经验谈
P2P 设计经验谈
Feng Yu
高级服务器设计和实现1
高级服务器设计和实现1
Feng Yu
Cap 理论与实践
Cap 理论与实践
james tong
MySQL和IO(上)
MySQL和IO(上)
Feng Yu
mnesia脑裂问题综述
mnesia脑裂问题综述
Feng Yu
Cpu高效编程技术
Cpu高效编程技术
Feng Yu
了解IO协议栈
了解IO协议栈
Feng Yu
Systemtap
Systemtap
Feng Yu
了解IO设备
了解IO设备
Feng Yu
了解网络
了解网络
Feng Yu
了解Cpu
了解Cpu
Feng Yu
Andere mochten auch
(12)
Tsung 压力测试工具
Tsung 压力测试工具
P2P 设计经验谈
P2P 设计经验谈
高级服务器设计和实现1
高级服务器设计和实现1
Cap 理论与实践
Cap 理论与实践
MySQL和IO(上)
MySQL和IO(上)
mnesia脑裂问题综述
mnesia脑裂问题综述
Cpu高效编程技术
Cpu高效编程技术
了解IO协议栈
了解IO协议栈
Systemtap
Systemtap
了解IO设备
了解IO设备
了解网络
了解网络
了解Cpu
了解Cpu
Ähnlich wie 高级服务器设计和实现3
MySQL压力测试经验
MySQL压力测试经验
Jinrong Ye
调试技术的应用
调试技术的应用
延胜 黄
Some tips
Some tips
Wei-Bo Chen
100305 trac-plugin-dev-intro
100305 trac-plugin-dev-intro
Zoom Quiet
OpenRISC whsap
OpenRISC whsap
柏毅 李
SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉
ptcracker
Golang 高性能实战
Golang 高性能实战
rfyiamcool
Linux基础
Linux基础
zhuqling
Linux system security
Linux system security
Kenny (netman)
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Angel Boy
Win dbg入门
Win dbg入门
晓锋 陈
Windbg入门
Windbg入门
晓锋 陈
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
丁 宇
Binary exploitation - AIS3
Binary exploitation - AIS3
Angel Boy
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
OpenRestyCon
20121111 linux intro
20121111 linux intro
Chang Mt
ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1
medcl
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
Jinrong Ye
Elastic stack day-1
Elastic stack day-1
YI-CHING WU
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Dahui Feng
Ähnlich wie 高级服务器设计和实现3
(20)
MySQL压力测试经验
MySQL压力测试经验
调试技术的应用
调试技术的应用
Some tips
Some tips
100305 trac-plugin-dev-intro
100305 trac-plugin-dev-intro
OpenRISC whsap
OpenRISC whsap
SACC2015 ”互联网+“任重而道远-白金&高春辉
SACC2015 ”互联网+“任重而道远-白金&高春辉
Golang 高性能实战
Golang 高性能实战
Linux基础
Linux基础
Linux system security
Linux system security
Linux binary Exploitation - Basic knowledge
Linux binary Exploitation - Basic knowledge
Win dbg入门
Win dbg入门
Windbg入门
Windbg入门
淘宝网前台应用性能优化实践
淘宝网前台应用性能优化实践
Binary exploitation - AIS3
Binary exploitation - AIS3
基于OpenResty的百万级长连接推送
基于OpenResty的百万级长连接推送
20121111 linux intro
20121111 linux intro
ElasticSearch Training#2 (advanced concepts)-ESCC#1
ElasticSearch Training#2 (advanced concepts)-ESCC#1
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
Elastic stack day-1
Elastic stack day-1
Linux必备知识与Unix基础文化
Linux必备知识与Unix基础文化
Mehr von Feng Yu
了解内存
了解内存
Feng Yu
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
Feng Yu
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
Feng Yu
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
Feng Yu
Erlang low cost_clound_computing
Erlang low cost_clound_computing
Feng Yu
Go
Go
Feng Yu
Inside Erlang Vm II
Inside Erlang Vm II
Feng Yu
Mehr von Feng Yu
(7)
了解内存
了解内存
Rethink db&tokudb调研测试报告
Rethink db&tokudb调研测试报告
高性能集群服务器(Erlang解决方案)
高性能集群服务器(Erlang解决方案)
开源混合存储方案(Flashcache)
开源混合存储方案(Flashcache)
Erlang low cost_clound_computing
Erlang low cost_clound_computing
Go
Go
Inside Erlang Vm II
Inside Erlang Vm II
高级服务器设计和实现3
1.
高级服务器设计和实现 3 —— 架构、手段与工具箱 余锋
(mryufeng@gmail.com) 2008-06-08
2.
脚本语言 • Lua • Python
3.
工程文件 • ACE 的
mpc • Gnu autoconf
4.
内核应用 • Tux • Lvs •
Iptable
5.
内核模块 • 内核模块 • 用户空间程序 •
Netlink • Tcpsplice
6.
测试工具 • Tsung • Loadrunner •
Luasocket
7.
收集性能数据 • 纯文本 • Gnuplot
8.
完善的日志系统 • 方便诊断 • 便于观察系统运行状态 •
log4X
9.
常用工具 • Wireshark • Hping2 •
Socat • Nc • Strace • Systemtap • Lsof • webbench
10.
测试 • Xunit 单元测试 •
覆盖测试 • 压力测试
11.
除测试之外的手段 • 代码 Profile •
外部程序驱动
12.
硬件配置 • 多核 32
核? • 64 位机器 • 大内存 • 快速 IO
13.
健康监控 • SNMP • CSV •
HTML • DUMP
14.
负载均衡( Load Balance
) • 基于特定服务器软件的负载均衡 • 基于 DNS 的负载均衡 • 反向代理负载均衡 • 基于 NAT 的负载均衡技术
15.
操作系统微调 • SystemTap • 协议栈微调 •
内存子系统微调
16.
进程流水线 • Cgi 思路 •
Fastcgi 思路 • 形成 pipe line • 容易整合各种语言实现的系统
17.
多路变换成单路 • Ajp13 思路 •
极大简化服务端编程
18.
集群,提高可用性 • 硬件 o Big
IP F5 o NetScaler • 软件 o Haproxy o LVS
19.
内存数据库 • Extremedb • Memcached •
mnesia
20.
TIPS1 • 操作系统采用 Linux
2.6.x 内核,不仅因为它的高性能,更因为它大开源(这并不是说 其他的 UNIX 或者是 BSD 衍生物不开源)给程序设计带来的便利,我们甚至可以把服 务做到内核空间。 • 多路复用采用 epoll 的“电平触发” (Level Triggered) 模式,必要时可以采用“边缘 触发” (Edge Triggered) ,但要注意防止数据停滞。 • 为避免数据拷贝可以采用 sendfile 系统调用发送小文件,或者是文件的小部分,注意避 免 sendfile 因磁盘 IO 而导致的阻塞。 • 如果服务操作设计大量磁盘 IO 操作,应选用 Linux 内核提供的异步 IO 机制,其对应的 用户空间库为 libaio ,注意:这里提到异步 IO 库并非目前 glibc 中附带的异步 IO 实现。 • 如果同时有多个数据需要传输,采用 writev/readv 来减少系统调用所带来的上下文切 换开销,如果数据要写到网络套接字文件描述符,这也能在一定程度上防止网络上出现 比较小帧,为此,还可以有选择地开启 TCP_CORK 选项。 • 实现自己的内存管理,比如说缓存数据,复用常用数据结构等。 • 用多线程替代多进程,线程库当然选择 nptl 。 • 避免进程 / 线程间非必要的同步,保持互斥区的短小。
21.
TIPS2 • 目前 SMP
系统和多核心 CPU 比较常见,如果还是仅采用单进程(线程)的多 路复用模型,那么同一时间将只有一个 CPU 为这个进程(线程)服务,并不能 充分发挥 CPU 的计算能力,所以需要至少 CPU ( CPU 核心)数目个进程(线 程)来分担系统负担。有一个变通的解决方案:不用修改源码,在服务器上运 行两个服务程序的实例,当然这个时候服务端口应该是不同的,然后在其前端 放置负载均衡器将流量和连接平均分配到两个服务端口,可以简单的通过 DNAT 来实现负载均衡。其实,这个时候我们已经把多 CPU 或者是多核系统看 成了多个系统组成 • 为了提高服务器的性能,单纯的依靠提高单个服务器的处理能力似乎不能奏效 ,况且配置越高的服务器花销也就越高,为此人们经常采用服务器集群的方式 ,通过把计算尽可能地分配到相对比较廉价的机器上单独完成,籍此来提升服 务器的整体性能,事实证明,这种体系结构不仅是切实可行的,而且还能提高 服务器的可用性,容错能力也较强。在网络服务器方面, Linux 内核中的由国 人章文嵩先生设计的 IP 层负载均衡解决方案 LVS 比较有名,还有就是工作于 应用层的 haproxy 和刚刚起步的 l7sw 。
22.
相关文档 • tuning_linux.pdf • C10k •
Erlang
23.
Q & A
Jetzt herunterladen