ECUG2010分享:C1000K高性能服务器构架技术.pptVIP

ECUG2010分享:C1000K高性能服务器构架技术.ppt

  1. 1、本文档共51页,可阅读全部内容。
  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文档。上传文档
查看更多
Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 Erlang运行期内部结构图 虚拟机的选择 SMP版本和Plain版本,由erlexec动态选择根据参数选择。 VM内部启用Hipe与否。 64位机器下halfword版本。 调度器机制 Running on full load or not! 进程和BIF按照时间片原则公平调度,抢占。 绑定调度器 spawn_opt 未公开参数 scheduler 用于绑定进程到指定调度器 Erlang 进程和Port 进程和现实世界1:1映射。 进程是根据时间片实现抢占式公平调度。 每个进程独立的堆和栈,独立的进行GC, 消息通过拷贝的方式传递。 Tcp?port也是和现实世界1:1映射。? Port通过Kernel Poll来实现事件监测?,IO调动独立于进程调度,也是公平调度。 每个tcp port内部都有发送队列(高低水位线),以及接收缓冲区。 port和进程的slot位都是预先分配好的。 ? ? Erlang内存分配池 Numa aware 何时支持? R14B? largepage 何时支持? ? 内部有几百个分门别类的内存池。 ? mseg_alloc:?通过mmap来向系统申请内存,批发给其他内存分配池。 ? 每个调度器自己的内存池。 Erlang 进程单点/race问题 已知有单点的模块: ?disk_log模块 ?rpc ?... ? 已知有race的模块 ets mnesia erlang:register/unregister ????? 日志系统: 内置的太慢,推荐自己用linux shm来实现个ring buf。 ? ? ? ? ? Erlang NIF R14新添加的,丰富的接口,容易用C库扩展Erlang的功能。 NIF不像bif那样有trap机制,破坏Erlang调度器的抢占式调动。 NIF千万不要调用阻塞函数, 比如调用mysql库。 NIF有很大稳定性风险,错误会影响到整个VM。 ? EI (erlang C interface) 最近版本的EI修复了很多bug, 稳定了很多。 轻量,配合libev库做tcp链接接入服务器是非常好的选择。 丰富的RPC调用接口,直接访问后端Erlang服务器的模块。 支持多线程,多实例。 直接在shell下使用erl_call。 Mnesia OTP最核心的部件Mnesia,是做分布式系统最关键的一环! 小结 并行化进程,按照1:1映射到现实世界。 Erlang的调度器绑定,提高cach的利用率。 halfword VM减少64位机器上的内存浪费。 开启Hipe Jit功能,? 同时用native方式编译库和应用。 尽量使用binary,最贴近机器内存模型,cache友好。 hipe?内置的未公开的bif 进程字典 留意你的进程的最大文件句柄数, 太大会浪费很多资源。 留意你的IO需要的异步线程, +A size参数。 ? Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 推荐的性能调优工具 操作系统层面的: systemtap oprofile blktrace tsung gdb lmbench ? Erlang平台上的: lcnt dialyzer 内置的自省机制 cerl ? ? ? 了解IO系统 性能测试工具: ????Fio? 测试多种IO的效率 (sync, mmap, libaio, posixaio...) ????Sysbench? 简单易用的测试工具 ????Iozone? 侧重文件系统以及应用的数据访问模式 ? ?IO监视工具 ???Blktrace? ???btt? 可视化你的IO活动 ???seekwatcher 可视化你的磁头移动 ? 其他工具 slabtop???? ? ss用于统计大量socket占用的资源情况 netstat之类的工具对于大量的链接来讲实在太慢!了! Systemtap帮助你了解你的程序/OS Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 结论 C1000K离我们很近的,几年后技术就会普及。 C1000K是个渐近的过程,点滴成就高性能。 C1000K需要软硬件技术的高度配合,需要关心的层次很深, 是个系统工程。 C1000K随着应用和构造工具的不同,难度也变化的很大。 C1000K用Erlang平台构

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档