高级服务器设计和实现PPT课件_第1页
高级服务器设计和实现PPT课件_第2页
高级服务器设计和实现PPT课件_第3页
高级服务器设计和实现PPT课件_第4页
高级服务器设计和实现PPT课件_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.,1,高级服务器设计和实现3架构、手段与工具箱,余锋(mryufeng)2008-06-08,.,2,脚本语言,LuaPython,.,3,工程文件,ACE的mpcGnuautoconf,.,4,内核应用,TuxLvsIptable,.,5,内核模块,内核模块用户空间程序NetlinkTcpsplice,.,6,测试工具,TsungLoadrunnerLuasocket,.,7,收集性能数据,纯文本Gnuplot,.,8,完善的日志系统,方便诊断便于观察系统运行状态log4X,.,9,常用工具,WiresharkHping2SocatNcStraceSystemtapLsofwebbench,.,10,测试,Xunit单元测试覆盖测试压力测试,.,11,除测试之外的手段,代码Profile外部程序驱动,.,12,硬件配置,多核32核?64位机器大内存快速IO,.,13,健康监控,SNMPCSVHTMLDUMP,.,14,负载均衡(LoadBalance),基于特定服务器软件的负载均衡基于DNS的负载均衡反向代理负载均衡基于NAT的负载均衡技术,.,15,操作系统微调,SystemTap协议栈微调内存子系统微调,.,16,进程流水线,Cgi思路Fastcgi思路形成pipeline容易整合各种语言实现的系统,.,17,多路变换成单路,Ajp13思路极大简化服务端编程,.,18,集群,提高可用性,硬件BigIPF5NetScaler软件HaproxyLVS,.,19,内存数据库,ExtremedbMemcachedmnesia,.,20,TIPS1,操作系统采用Linux2.6.x内核,不仅因为它的高性能,更因为它大开源(这并不是说其他的UNIX或者是BSD衍生物不开源)给程序设计带来的便利,我们甚至可以把服务做到内核空间。多路复用采用epoll的“电平触发”(LevelTriggered)模式,必要时可以采用“边缘触发”(EdgeTriggered),但要注意防止数据停滞。为避免数据拷贝可以采用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比

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论