- 1、本文档共51页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
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来向系统申请内存,批发给其他内存分配池。 ? 每个调度器自己的内存池。 * C1000K高性能服务器构建技术 余锋 mryufeng@ 淘宝网核心系统资深专家 ? 2010/10/16 C1000K面对的挑战 C10K问题:/c10k.html?时间是2001年 ? 现在是2010年,10年过去了,虽然软硬件技术也相应提高了, ? 挑战还在:? ? 用户对服务响应时间和可靠性要求越来越高。? 1M的tcp并发,即使每个链接按照16K内存算,需要至少24G内存。 1M的tcp链接中,有20%每秒活跃,那么200K每秒。 没有革命性的技术改进,算法和操作系统和库变化不大。 硬件,操作系统,库,平台,应用的层次越来越深。? ? 硬件约束:Dell R710, Intel E5520 *2(8core),? 24G内存, 640G SAS 解决方案 顺应硬件和操作系统的变化方向,高度并发化应用!让独立的CPU核心,独立的cache, ?独立的本地内存,独立的(soft)IRQ,独立的网卡,独立的磁盘,独立的Erlang调度器,独立的Erlang进程服务你的每个独立的请求! Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 ? 硬件体系巨大变化 现在 过去 北桥慢慢成为过去! Dell R710机器体系结构 Cache在现代CPU硬件上的版面, 也充分说明了cache的重要性!!! 内置六块磁盘, 四张网卡如何高效并行使用? Virident pci-e卡 IOPS高达200K,带宽800M 小结 ? 硬件变得和过去很不一样,性能越来越高。 ? 硬件从CPU,内存,网卡都在试图scale, 我们要配合硬件的并行化趋势。 ? 硬件在cache方面下了很多血本,提高数据的locality。 ? 采用合适的硬件,比如说ssd盘代替sas盘。 ? ? Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 深度调查系统,为设计做依据 Numa架构下的调度器,CPU亲缘性 Numa matters google Tcmalloc numa aware 版本 Numa不同的节点间访问代价不同。 不适当的设置,会导致有的节点的内存空闲,有的需要swap。 libnuma改善内存分配的亲缘性, numactl 改变内存分配的策略。 /proc/pid/numa_maps了解你的进程内存在节点间的分布情况。 Largepage TLB miss的代价 ? 过去4K一页 现在通过HugeTLBfs实现 2M一页 ? 大大减少TLB miss ? oprofile可以告诉我们tlb的miss率 网卡bonding?? 我们需要网卡的负载均衡模式(mode 0), 需要交换机的支持 中断平衡 硬中断: ? ? ? irqbalance 智能的均衡硬件中断。 手动 [root@linux /]#echo?ff /proc/irq/19/smp_affinity ?? 软中断: ? ? ? ? RPS/RFS? 解决softirq平衡 RPS is not automatically switched on, you have to configure it. ? echo ffff /sys/class
文档评论(0)