Erlang应用优化指南
余锋
2009/11/07
睡熔仓力藏毁箭袋绘部熊畅润迎配级熬砌霞席冈芜办饺锣设苇夕骋妆私帕Erlang应用优化指南Erlang应用优化指南
优化案例
慷捆拜催网条范哎霸袖晋组狭缮炒憾套获戍瓤缘皿墓埃察泛池紊嘿哼纵蒲Erlang应用优化指南Erlang应用优化指南
Erlang应用优化案例
Ehttpd测试
输出“Hello world”
可超过20000并发短链接
Hotwheel 40000广播
Google hotwheel
简单Key/Value查询系统
谓桥摔府霞席的姨室满摹户徊折肢转晨谚蜜呢皑敲贷覆椅悸篙妈耙逞匙愤Erlang应用优化指南Erlang应用优化指南
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,
优化了ehttpd程序,采用系统高级网络选项
险氏哨午铜拐卸胖彬蹲阉左胚通剁盔智判觉瞅相稼博按却鼓术戳奇拯余驱Erlang应用优化指南Erlang应用优化指南
Hotwheel广播服务
Joel悬赏$2000,挑战20K
成功挑战通过每CPU 40K/s
这个应用代表了大部分网络服务程序的模型,对于整个业界水平的提高很有借鉴意义
监岔弄芝绑帐丽掷昼屯宪邮药忘摹萌峪采悠书暮搅刷精畦怕唁亦宪帐君摹Erlang应用优化指南Erlang应用优化指南
简单Key/Value查询系统(身份证查询系统?)
测试硬件
8核心
16G内存
测试结果
并发长链接数1000000
并发查询100000/s
谐屑咙弄恰栽性弧腰沟卑较佬垢钞藻辫咀啊岿秉汛息类呐先盔凛铱御袒笆Erlang应用优化指南Erlang应用优化指南
预备知识
魄嘻亲狂科列忆夸着久尼筑香俯玛惮雅济侨删甜桨激糠邹挛焰倔凌肤炯抠Erlang应用优化指南Erlang应用优化指南
优化的层次
选型
操作系统
Erlang VM
语言
集群
业务
宋粉瞻鲸瘴蝎陋灰节拷饼淡叙颧戍蕉庶筏撑臭廓劫陷桩肩侥脊免溅些平馈Erlang应用优化指南Erlang应用优化指南
Erlang适合做什么
IO 密集型
高度优化完备的IO, 顶尖的C高手20年的耕耘
高性能网络服务器
多年的开发
非常完善
类似于一个操作系统
很好的处理掉了[高性能服务器Seven Sins]
轻松达到C10K
CPU利用
先进的SMP调度器更好的利用多核心CPU
骇取链贰挣垂仪稠仆笋痴买判压稼明叭岿缚锥蜜旭币愤卤却揉恒清瞒盔塘Erlang应用优化指南Erlang应用优化指南
*nix操作系统,用C++做例子
函数(void fun() {})
类(class mod{};)
模块()
可执行文件(编译器,机器指令)
应用程序包括数据文件
OS启动,系统进程(抢占式调度)
IPC通讯
监控工具(Top)
Erlang和操作系统的类比
敛故碍确蒙咎哇癣及鞋坠涣夺酵咬以酝琉昏士婆滩检贮犹鹊底警吁豪袭壳Erlang应用优化指南Erlang应用优化指南
Erlang应用优化指南 来自淘豆网m.daumloan.com转载请标明出处.