深圳市小红马信息工程有限公司
您所在的位置:深圳IT外包 > 新闻中心 > 行业新闻 > 正文
联系我们

优化Linux,AWS为云落地扫平一切障碍

发布时间:2016-09-01 09:09:12

  Linux操作系统并不是一个新鲜事物。从1991年开始,Linux就被应用于企业关键业务系统。如今,Linux重新被业界重视,并被分为企业级和互联网级,尤其强调企业级特性,这与云计算和开源技术的发展息息相关。那么,云计算环境下的Linux发生了哪些变化?作为云计算领域的巨头企业,AWS对Linux做了哪些优化?在云端操作系统的选择上,有哪些实践经验?
  为什么要优化Linux操作系统?
  “尽管,Linux被分为不同版本,但内核都是Linux内核。从发展来看,随着Linux的强大,不会有明显的区分,因为需求的差异会越来越小,Linux企业级和互联网级的界限会越来越模糊。”在亚马逊AWS首席云计算技术顾问费良宏看来,随着新一代信息技术的快速渗透,企业版本当中所强调的特性会慢慢普及到互联网行业;反之,互联网级业务所追求的或者倡导的一些特性,也慢慢被企业级业务所接受,所以从Linux未来发展来看,不同版本的Linux最后会在某一平衡点汇集。
    当然,基于云之上的Linux操作系统肯定与过去本地化应用不同。在云之上,首先要考虑的一个问题就是,它是运行在虚拟环境里,跟我们所熟悉的传统物理机所面临的环境有很多的差异。无论是系统优化、架构设计,或者应用程序本身,都需要注意到云计算的特殊性。作为优秀的开发者,在开发之初,就要充分利用到云计算带来的优势,并且根据云计算虚拟化的特殊性来进行开发。比如:云的弹性、资源的供给,包括有效成本等,让系统变得更有效率,更富有弹性,并且只用最小的成本就能够达到最高的目标。
  不可否认,Linux在云时代发生了重要变化,为开发者带来了更多的便利,但云端Linux也在面临一个新的挑战。在过去的几年,伴随着Linux内核技术、虚拟化技术、CPU、网络以及存储等多个领域的快速发展,使得在云计算之上的Linux 实例变得日趋复杂。为了更好的适应这种发展,无论是架构设计、应用开发还是系统运维……都需要考虑如何应用新的技术来实现系统优化。
  AWS对云端之上Linux做了哪些优化?
  为了解决开发者对于Linux的困惑,Amazon Web Services 推出了适用于Linux 操作系统的11个家族、40个型号的虚拟化实例。据费良宏介绍,在AWS环境里有若干个标准的操作系统版本,使用者不必拘泥于是否有传统企业向云计算迁移的经验,可以直接体验到云计算带来的方便与快捷。
  AWS EC2曾对Linux内核进行了如下调优:
  1、CPU Scheduler。调整项包括: Scheduler class、priorities、migration latency、tasksets等,最终让使用taskset(1)、numactl(8)、cgroups的应用,以及通过优化sched_migration_cost_ns 而减少进程迁移;同时也让一些Java 应用得益于SCHED_BATCH 而减少上下文切换。
  2、Virtual Memory。主要调整swappiness、overcommit、OOM … 目的是让swappiness设置为0用以禁用交换,停止文件页面缓存以释放更多的内存。
  3、Huge Pages。我们要让内存页面尺寸为2M或者4M,而不是常见的4K。降低各种CPU开销并且提高MMU页面到缓存的转换。最终调整为:显性的使用huge page、transparent huge pages (THPs),让THPs (内核中启用),依赖于工作负载和CPU,有时候可以提高性能(~5% CPU负荷), 但是有时候会影响性能(~25% CPU 负荷, 当%usr, 以及%sys refrag)。
  4、File System。优化页面缓存的刷新,对文件系统的类型进行调整,改变可调整的参数(例如:ZFS)。页面缓存刷新的行为可以调整为: background flush earlier、aggressive flush later ,禁止访问时间戳和其它的选项依赖于具体的文件系统。
  5、Storage I/O。主要对Read ahead size、number of in-flight requests、I/O scheduler、volume stripe width等进行调整,让一些应用(例如Cassandra)对read ahead size 非常敏感,并让SSDs可以使用更好的“noop”scheduler (非缺省的设置)。另外,还要调整chunk size 和stripe width 以匹配任务负载。
  6、Networking 。调整项主要包括:TCP buffer sizes、TCP backlog、device backlog、TCP reuse等。
  7、Hypervisor (Xen)。包括PV/HVM (AMI 提供)、 让内核clocksource从慢到快。调优clocksource,设置为TSC (小心时钟漂移)。较好的情况下CPU 用量减少30%, 并且让应用程序平均延迟降低了43% 。
  经过全面调优后,用户在Amazon EC2中创建新应用,非常方便。对于更多的开发者或者使用者来说,如果随着企业业务的扩展,还想继续使用自己原有的版本和系统的话,要考虑很多问题,而且需要具备很多的经验和知识才可能解决这个问题。费良宏强调建议:尽量选择那些已经提供好,并且经过市场证明的,由云计算原场所提供的Linux 版本,这样才能达到预期目标。基于AWS提供的多种Linux版本,用户可以选择与自己的应用最为匹配的型号或者是尺寸,使得IT投资的每一分钱都能够从性能和功能上得到回报。即使系统不断升级,也能更加简单和轻松。
网站首页
IT外包
系统集成
网站服务
新闻中心
案例展示
关于我们
联系我们
服务热线:0755-26075544
传  真:0755-26075673
邮  箱:35@xhm.cc
地  址:深圳市南山区学府路怡园大厦裙楼2-215
关注我们
扫描二维码关注微信公众号
备案号:粤ICP备12053970号-1
深圳市小红马信息工程有限公司 版权所有