- 1、本文档共23页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级服务器设计与实现3
高级服务器设计和实现3——架构、手段与工具箱 余锋 (mryufeng@) 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单元测试 覆盖测试 压力测试 除测试之外的手段 代码Profile 外部程序驱动 硬件配置 多核 32核? 64位机器 大内存 快速IO 健康监控 SNMP CSV HTML DUMP 负载均衡(Load Balance) 基于特定服务器软件的负载均衡 基于DNS的负载均衡 反向代理负载均衡 基于NAT的负载均衡技术 操作系统微调 SystemTap 协议栈微调 内存子系统微调 进程流水线 Cgi思路 Fastcgi思路 形成pipe line 容易整合各种语言实现的系统 多路变换成单路 Ajp13思路 极大简化服务端编程 集群,提高可用性 硬件 Big IP F5 NetScaler 软件 Haproxy LVS 内存数据库 Extremedb Memcached mnesia 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。 避免进程/线程间非必要的同步,保持互斥区的短小。 TIPS2 目前SMP系统和多核心CPU比较常见,如果还是仅采用单进程(线程)的多路复用模型,那么同一时间将只有一个CPU为这个进程(线程)服务,并不能充分发挥CPU的计算能力,所以需要至少CPU(CPU核心)数目个进程(线程)来分担系统负担。有一个变通的解决方案:不用修改源码,在服务器上运行两个服务程序的实例,当然这个时候服务端口应该是不同的,然后在其前端放置负载均衡器将流量和连接平均分配到两个服务端口,可以简单的通过DNAT来实现负载均衡。其实,这个时候我们已经把多CPU或者是多核系统看成了多个系统组成 为了提高服务器的性能,单纯的依靠提高单个服务器的处理能力似乎不能奏效,况且配置越高的服务器花销也就越高,为此人们经常采用服务器集群的方式,通过把计算尽可能地分配到相对比较廉价的机器上单独完成,籍此来提升服务器的整体性能,事实证明,这种体系结构不仅是切实可行的,而且还能提高服务器的可用性,容错能力也较强。在网络服务器方面,Linux内核中的由国人章文嵩先生设计的IP层负载均衡解决方案LVS比较有名,还有就是工作于应用层的haproxy和刚刚起步的l7sw。 相关文档 tuning_linux.pdf C10k Erlang Q A * 高级服务器设计和实现3——架构、手段与工具箱 余锋 (mryufeng@) 2008-06-08 脚本语言 Lua Python 工程文件 ACE 的mpc Gnu autoconf 内核应用 Tux Lvs Iptable 内核模块 内核模块 用户空间程序 Netlink Tcpsplice 测试工具 Tsung Loadrunner Luasocket 收集性能数据 纯文本 Gnuplot 完善的日志系统 方便诊断 便于观察系统运行状态 log4X 常用工具 Wireshark Hping2 Socat Nc Strace Syst
您可能关注的文档
最近下载
- 2024年江苏省南京市中考物理试题卷(含答案解析).docx
- 八年级美术上册5静物画有声教案省公开课一等奖新名师优质课获奖PPT课件.pptx
- 电子鼓hd3中文说明书.pdf
- 2024年江苏省南京市中考数学试题卷(含答案解析).docx
- 通桥(2018)1301-Ⅲ时速250公里、350公里高速铁路无砟轨道(16+24+16)m钢筋混凝土刚构连续梁.pdf
- 2024年武汉市城市建设投资开发集团限公司招聘【221人】公开引进高层次人才和急需紧缺人才笔试参考题库(共500题)答案详解版.docx
- 12.《玩偶之家(节选)》课件 统编版高中语文选择性必修中册.pptx
- 眼部健康保养.ppt VIP
- 急性一氧化碳中毒诊治专家共识.pptx
- 心内科常见疾病护理常规ppt.pptx
文档评论(0)