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

下载本文档

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

文档简介

1、高级服务器设计和实现3架构、手段与工具箱余锋 ()2008-06-08脚本语言 Lua Python工程文件 ACE 的mpc Gnu autoconf 内核应用 Tux Lvs Iptable内核模块 内核模块 用户空间程序 Netlink Tcpsplice测试工具 Tsung Loadrunner Luasocket 收集性能数据 纯文本 Gnuplot完善的日志系统 方便诊断 便于观察系统运行状态 log4X常用工具 Wireshark Hping2 Socat Nc Strace Systemtap Lsof webbench 测试 Xunit单元测试 覆盖测试 压力测试除测试之外的

2、手段 代码Profile 外部程序驱动硬件配置 多核 32核? 64位机器 大内存 快速IO健康监控 SNMP CSV HTML DUMP负载均衡(Load Balance) 基于特定服务器软件的负载均衡 基于DNS的负载均衡 反向代理负载均衡 基于NAT的负载均衡技术 操作系统微调 SystemTap 协议栈微调 内存子系统微调进程流水线 Cgi思路 Fastcgi思路 形成pipe line 容易整合各种语言实现的系统多路变换成单路 Ajp13思路 极大简化服务端编程集群,提高可用性 硬件oBig IP F5oNetScaler 软件oHaproxyoLVS内存数据库 Extremedb

3、Memcached mnesiaTIPS1操作系统采用Linux 2.6.x内核,不仅因为它的高性能,更因为它大开源(这并不是说其他的UNIX或者是BSD衍生物不开源)给程序设计带来的便利,我们甚至可以把服务做到内核空间。 多路复用采用epoll的“电平触发”(Level Triggered)模式,必要时可以采用“边缘触发”(Edge Triggered),但要注意防止数据停滞。 为避免数据拷贝可以采用sendfile系统调用发送小文件,或者是文件的小部分,注意避免sendfile因磁盘IO而导致的阻塞。 如果服务操作设计大量磁盘IO操作,应选用Linux内核提供的异步IO机制,其对应的用户空

4、间库为libaio,注意:这里提到异步IO库并非目前glibc中附带的异步IO实现。 如果同时有多个数据需要传输,采用writev/readv来减少系统调用所带来的上下文切换开销,如果数据要写到网络套接字文件描述符,这也能在一定程度上防止网络上出现比较小帧,为此,还可以有选择地开启TCP_CORK选项。 实现自己的内存管理,比如说缓存数据,复用常用数据结构等。 用多线程替代多进程,线程库当然选择nptl。避免进程/线程间非必要的同步,保持互斥区的短小。TIPS2目前SMP系统和多核心CPU比较常见,如果还是仅采用单进程(线程)的多路复用模型,那么同一时间将只有一个CPU为这个进程(线程)服务,

5、并不能充分发挥CPU的计算能力,所以需要至少CPU(CPU核心)数目个进程(线程)来分担系统负担。有一个变通的解决方案:不用修改源码,在服务器上运行两个服务程序的实例,当然这个时候服务端口应该是不同的,然后在其前端放置负载均衡器将流量和连接平均分配到两个服务端口,可以简单的通过DNAT来实现负载均衡。其实,这个时候我们已经把多CPU或者是多核系统看成了多个系统组成 为了提高服务器的性能,单纯的依靠提高单个服务器的处理能力似乎不能奏效,况且配置越高的服务器花销也就越高,为此人们经常采用服务器集群的方式,通过把计算尽可能地分配到相对比较廉价的机器上单独完成,籍此来提升服务器的整体性能,事实证明,这种体系结构不仅是切实可行的,而且还能提高服务器的可用性,容错能力也较强。在网络服务器方面,Linux内核中的由国人章文嵩先生设计的IP层负载均衡解决

温馨提示

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

评论

0/150

提交评论