高级服务器设计与实现 - POWERPOINT PRESENTATION.pdfVIP

高级服务器设计与实现 - POWERPOINT PRESENTATION.pdf

  1. 1、本文档共41页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

2020

高级服务器设计与实现-

适用于年终总结/工作计划/述职报告/策划方案等

POWERPOINT

PRESENTATION

脚本语言

1.Lua

2.Python

工程文件

1.ACE的mpc

2.Gnuautoconf

内核应用

1.Tux

2.Lvs

3.Iptable

内核模块

1.内核模块

2.用户空间程序

3.Netlink

4.Tcpsplice

测试工具

1.Tsung

2.Loadrunner

3.Luasocket

收集性能数据

1.纯文本

2.Gnuplot

完善的日志系统

1.方便诊断

2.便于观察系统运行状态

3.log4X

常用工具

1.Wireshark

2.Hping2

3.Socat

4.Nc

5.Strace

6.Systemtap

7.Lsof

8.webbench

操作系统微调

1.SystemTap

2.协议栈微调

3.内存子系统微调

进程流水线

1.Cgi思路

2.Fastcgi思路

3.形成pipeline

4.容易整合各种语言实现的系统

多路变换成单路

1.Ajp13思路

2.极大简化服务端编程

集群,提高可用性

1.硬件

1.BigIPF5

2.NetScaler

2.软件

1.Haproxy

2.LVS

内存数据库

1.Extremedb

2.Memcached

3.mnesia

TIPS1

1.操作系统采用Linux2.6.x内核,不仅因为它的高性能,更因为它大开源(这并不是

其他的UNIX或者是BSD衍生物不开源)给程序设计带来的便利,我们甚至可以把服务

做到内核空间。

2.多路复用采用epoll的“电平触发”(LevelTriggered)模式,必要时可以采用“边缘触发

”(EdgeTriggered),但要注意防止数据停滞。

3.为避免数据拷贝可以采用sendfile系统调用发送小文件,或者是文件的小部分,注意避

免sendfile因磁盘IO而导致的阻塞。

4.如果服务操作设计大量磁盘IO操作,应选用Linux内核提供的异步IO机制,其对应的用

户空间库为libaio,注意:这里提到异步IO库并非目前glibc中附带的异步IO实现。

5.如果同时有多个数据需要传输,采用writev/readv来减少系统调用所带来的上下文切换

开销,如果数据要写到网络套接字文件描述符,这也能在一定程度上防止网络上出现比

较小帧,为此,还可以有选择地开启TCP_CORK选项。

6.实现自己的内存管理,比如说缓存数据,复用常用数据结构等。

7.用多线程替代多进程,线程库当然选择nptl。

8.避免进程/线程间非必要的同步,保持互斥区的短小。

TIPS2

1.目前SMP系统和多核心CPU比较常见,如果还是仅采用单进程(线程)的多路

复用模型,那么同一时间将只有一个CPU为这个进程(线程)服务,并不能充

分发挥CPU的计算能力,所以需要至少CPU(CPU核心)数目个进程(线程)

来分担系统负担。有一个变通的解决方案:不用修改源码,在服务器上运行两

个服务程序的实例,当然这个时候服务端口应该是不同的,然后在其前端放置

负载均衡器将流量和连接平均分配到两个服务端口,可以简单的通过DNAT来

实现负载均衡。其实,这个时候我们已经把多CPU或者是多核系统看成了多个

系统组成

2.为了提高服务器的性能,单纯的依靠提高单个服务器的处理能力似乎不能奏效,

况且配

文档评论(0)

1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档