- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Erlang应用优化指南.ppt
Erlang应用优化指南 余 锋 2009/11/07 优化案例 Erlang应用优化案例 Ehttpd测试 输出“Hello world” 可超过20000并发短链接 Hotwheel 40000广播 Google hotwheel 简单Key/Value查询系统 HTTP echo每秒20000短连接单个CPU Taskset -c 1?? erl +K true +h 99999? +P 99999?? -s ehttpd 优化前后对比 11203 20090 硬件普通桌面双核CPU,2G内存 微调Linux VM和协议栈,32位操作系统 优化和patch了Erlang VM,采用beam.plain 优化了ehttpd程序,采用系统高级网络选项 Hotwheel广播服务 Joel悬赏$2000,挑战20K 成功挑战通过每CPU 40K/s 这个应用代表了大部分网络服务程序的模型,对于整个业界水平的提高很有借鉴意义 简单Key/Value查询系统(身份证查询系统?) 测试硬件 8核心 16G内存 测试结果 并发长链接数1000000 并发查询100000/s 预备知识 优化的层次 选型 操作系统 Erlang VM 语言 集群 业务 Erlang适合做什么 IO 密集型 高度优化完备的IO, 顶尖的C高手20年的耕耘 高性能网络服务器 多年的开发 非常完善 类似于一个操作系统 很好的处理掉了[高性能服务器Seven Sins] 轻松达到C10K CPU利用 先进的SMP调度器更好的利用多核心CPU Erlang和操作系统的类比 *nix操作系统,用C++做例子 函数 (void fun() {}) 类 (class mod{};) 模块(mod.cpp) 可执行文件(编译器,机器指令) 应用程序包括数据文件 OS启动,系统进程(抢占式调度 ) IPC通讯 监控工具(Top) Erlang和操作系统的类比 (cont’d) 函数 fun () - ok end 模块 module mod. mod.erl Beam文件 编译器opcode Application beam+数据文件 Erlang和操作系统的类比 (cont’d) VM bootstrap Erlang进程 (抢占调度 ) 消息 Port IPC 工具集 etop ERTS内部结构 Erlang进程调度原理 调度原则 尽量让一个CPU忙 Logic CPU从低到高 上下文切换 context_switch开销 消息传递的开销 拷贝 malloc/free 垃圾收集 Port调度原理 Port独立调度 和宿主进程同一个调度器 调度的单位是该Port触发的一串IO事件 调度延迟 busy_port 水位线buffer 锁 如何优化 工具方法 理解了Erlang和*nix的相同点 借鉴*nix 的工具和方法 创造工具和方法 操作系统层面的优化 操作系统的选择 32位系统 vs. 64位系统 没有内存空间限制 64位比较慢 RHEL上游厂商致力于高性能操作系统 Vdso RhelRt 重新用ICC编译内核和glibc VM和TCP协议栈的优化 操作系统层面的优化 降低系统的swapness, 避免内存颠簸 资源倾斜,全力服务应用 给我尽可能多的物理内存,越多越好 Erlang运行期层面优化 新版本的OTP致力于SMP方面的改进 更细粒度的锁 更好的内存分配器 Hipe(erlang的jit) 全面启用preloaded otp库 Crack系统 减少无必须的系统调用 参数微调 Effective guide 未公开的特性 调度器绑定 语言层面优化 减少VM GC开销 进程字典 加大min_heap_size Hibernate Cache Lazy eval Record或者tuple变化部分和惰性部分分开 语言层面优化 (cont’d) 模式匹配 相同的标签尽可能的放在一起 排序 二分查找 避免创建无用的中间变量 数据结构设计尽可能的每个调度器一个 erl +”’S’” mod.erl bin_opt_info 直接函数调用 vs. 异步消息 集群层面优化 节点间通讯 inet_tcp 唯一通道,潜在的瓶颈 节点管理成本 net tick 开销不可忽视 节点up、down开销 Ei库用C来赢得速度 Pg2简化管理 业务层面的优化 尽可能的简单 能够并行计算 Small message, big computation 为业务估算要消耗的资源提早分配 内存 CPU 内存和CPU的平衡 部署 计算密集型和IO密集性在同一台物理机器资源互补 Plain vs. SMP plain适合做简单的IO操作 smp适合做密集计算 Hibernate 根
您可能关注的文档
- 数理统计.ppt
- 智慧产权.ppt
- 中国近现代史第一轮复习.ppt
- 数字信息服务的知识产权风险与预防.ppt
- 司马迁与史记.ppt
- 图书馆利用.ppt
- 中国市场经济新发展观背景下的企业发展对策.ppt
- 土地出让收入征管政策与实务.ppt
- 网路法律.ppt
- 网路相关智慧财产权.ppt
- 10《那一年,面包飘香》教案.docx
- 13 花钟 教学设计-2023-2024学年三年级下册语文统编版.docx
- 2024-2025学年中职学校心理健康教育与霸凌预防的设计.docx
- 2024-2025学年中职生反思与行动的反霸凌教学设计.docx
- 2023-2024学年人教版小学数学一年级上册5.docx
- 4.1.1 线段、射线、直线 教学设计 2024-2025学年北师大版七年级数学上册.docx
- 川教版(2024)三年级上册 2.2在线导航选路线 教案.docx
- Unit 8 Dolls (教学设计)-2024-2025学年译林版(三起)英语四年级上册.docx
- 高一上学期体育与健康人教版 “贪吃蛇”耐久跑 教案.docx
- 第1课时 亿以内数的认识(教学设计)-2024-2025学年四年级上册数学人教版.docx
最近下载
- 7.2 类比推理及其方法-高中政治课件 (统编版选择性必修3).pptx VIP
- 《数学物理方程-福州大学-江飞》作业chapter1.pdf VIP
- 重庆渝北中交·中央公园 C96, C98-1 地块山地新中式商业街项目 GOA.pdf
- 2024年江苏省高考物理真题试卷含答案.pdf VIP
- 《数学物理方程-福州大学-江飞》数学物理方程A.doc VIP
- 《数学物理方程-福州大学-江飞》作业chapter2.ppt VIP
- 《数学物理方程-福州大学-江飞》第四章.doc VIP
- 《数学物理方程-福州大学-江飞》数学物理方程A答案.doc VIP
- 2023年辽宁省检察系统招聘聘用制书记员考试真题及答案.docx VIP
- 2024年高考真题——物理(河北卷)含答案.pdf VIP
文档评论(0)