C1000K高性能服务器构建技术.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C1000K高性能服务器构建技术 C1000K面对的挑战 C10K问题:/c10k.html?时间是2001年 ? 现在是2010年,10年过去了,虽然软硬件技术也相应提高了, ? 挑战还在:? ? 用户对服务响应时间和可靠性要求越来越高。? 1M的tcp并发,即使每个链接按照16K内存算,需要至少24G内存。 1M的tcp链接中,有20%每秒活跃,那么200K每秒。 没有革命性的技术改进,算法和操作系统和库变化不大。 硬件,操作系统,库,平台,应用的层次越来越深。? ? 硬件约束:Dell R710, Intel E5520 *2,? 24G内存, 640G SAS 解决方案 顺应硬件和操作系统的变化方向,高度并行化应用!让独立的网卡,独立的CPU核心,独立的cache, 独立的本地内存,独立的(soft)IRQ,独立的Erlang调度器,独立的Erlang进程服务你的每个独立的请求! Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 ? Dell R710机器 硬件体系巨大变化 Cache在现代CPU硬件上的版面, 也充分说明了cache的重要性 内置四张网卡如何高效并行使用? Virident pci-e卡 小结 ? 硬件变得和过去很不一样,性能越来越高。 ? 硬件从CPU,内存,网卡都在试图scale, 我们要配合硬件的并行化趋势。 ? 硬件在cache方面下了很多血本,提高数据的locality。 ? 采用合适的硬件,比如说ssd盘代替sas盘。 ? ? Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 深度调查系统,为设计做依据 Numa架构下的调度器,CPU亲缘性 Numa matters Largepage TLB miss的代价 ? 过去4K一页 现在通过HugeTLBfs实现 2M一页 ? 大大减少TLB miss ? oprofile可以告诉我们tlb的miss率 网卡bonding ? ? 中断平衡 硬中断: ? ? ? 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/net/eth0/queues/rx-0/rps_cpus Same for RFS if you prefer to use RFS echo 16384 /sys/class/net/eth0/queues/rx-0/rps_flow_cn ? 显著提高软中断的均衡性,大大提高性能。? ? ? ? 微调协议栈 来自google的initcwnd调优 通过提高初始拥塞窗口的大小(3),大大减少短连接的响应时间. ? make sure your Linux kernel is 2.6.30 or higher. ? ?ip route change [default via a.b.c.d dev ethX ... ] initcwnd 10 IO子系统 采用异步IO 异步IO的好处, 应用批量提交请求,方便IO调动器合并请求,减少磁盘寻道和访问次数. ? libaio: Linux native aio的封装, 在使用上可以用Linux eventfd做事件通知,?融入到Erlang的IO check机制。 ? glibc aio是用线程+同步调用模拟的,完全不可用! ? 多线程同时发起IO请求。 ? 注意要保持快速IO设备队列的请求depth。 小结 ? ?采用64位Linux操作系统。 ? 充分利用负载均衡技术,提高CPU和cache的利用率。 ? 尽量用最新的linux内核,用降低稳定性,保持高性能。比如说Oracle的unbreakable Linux号称比RHEL5快85%。 ? 尽量用新的能够提高性能的syscall,新特性。 ? 常态监测你的系统,找出导致性能减低的点,加以解决。 Agenda 硬件层面变化和思考 操作系统层面变化和思考 语言和库层面变化和思考 Erlang平台层面变化和思考 调优工具 结论 你需要知道的访问延迟数字 ? 多核心架构下性能问题, CPU和内存以及IO间的速度越来越不平衡,CPU大部分时间都是在等待。 如何利用好我们的cache和空余CPU计算力? 压缩数据集 主存的访问速度

文档评论(0)

***** + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档