亚冠

改善Linux内核和可伸缩性适应企业环境 (3)

2019-09-13 19:26:26来源:励志吧0次阅读

退出策略 对 Linux 内核性能的评估可能需要运行基准测试程序,然后分析结果来确定性能和可伸缩性的瓶颈,接着将补丁集成进 Linux 内核来解决所有这些瓶颈,最后再次运行该基准测试程序,这是一个周而复始的过程。作为一名性能团队成员,要与 Linux 内核开发团队或 OSC 通力合作,通过在 OSC 查找现有的补丁或者开发新的补丁来获取补丁。有一组用来确定何时 Linux 已经“足够好了”和可以结束该过程的标准。 首先,如果我们已经达到了目标,并且,针对某个具体基准测试程序,不存在需要解决的任何突出的 Linux 内核问题(解决这些问题可以很大程度地改善 Linux 内核性能),则我们可以声称 Linux 已经“足够好了”,可以转至其它问题了。其次,如果我们经历了几次性能分析循环之后,仍然有突出的瓶颈问题,则我们需要考虑继续该过程所需开发成本和任何其它性能上改进所获得的好处之间的权衡。如果相对于任何可能获得的性能改进而言,开发成本过高,则我们不要继续分析下去,并清楚地说明相应的根本原因。 在这两种情形中,接着我们复查所有其它与 Linux 内核相关的突出问题(我们希望解决这些问题),评价可以用来解决这些内核组件问题的相应的基准测试程序,检查任何可能与该问题相关的数据,然后决定根据收集来的信息来进行对内核组件(或组件集合)的分析。 基准测试程序 这一节将描述分析出的瓶颈和我们这一套基准测试程序所着重的相关内核组件。此外,对于 Linux 性能团队所使用的一些基准测试程序,还将描述性能结果和分析。    表 1. Linux 内核性能基准测试程序基准测试程序描述 根据以下标准来挑选所使用的基准测试程序:业界所采用的基准测试程序,对于复杂的工作负载,这些基准测试程序是可靠的指示器;组件级的基准测试程序,它们指出了特定的内核性能问题。业界基准测试程序是通常为业界所接受,用来测量特定工作负载的性能和可伸缩性。这些基准测试程序常常需要复杂的或代价昂贵的设置,大多数" OSC(开放源码社区)大都没有这样的设置。这些复杂的设置是我们对 OSC 所做出的贡献之一。例如: SPECweb99:代表 Web 服务性能。 SPECsfs:代表 NFS 性能。 数据库查询:代表数据库查询性能。 NetBench:代表 SMB 文件服务性能。 组件级的基准测试程序测量特定 Linux 内核组件的性能和可伸缩性,对于各种工作负载,这些基准测试程序被认为是至关重要的。例如: Netperf3:测量网络堆栈的性能,包括 TCP、IP 和网络设备驱动程序。 VolanoMark:测量调度程序、信号、TCP 发送/接收和回送的性能。 块 I/O 测试:测量VFS、原始和直接 I/O、块设备层、SCSI 层和低级的 SCSI/光纤设备驱动程序的性能。 OSC 一般会使用一些基准测试程序。由于 OSC 已经认识到了基准测试程序的重要性,因此愿意用它们。从而很容易让 OSC 确信基准测试程序所显示的性能和可伸缩性方面的瓶颈。此外,通常没有阻止我们公布原始数据的许可证问题。由于设置这些基准测试程序通常很简单,而且所需硬件也最少,因此 OSC 可以运行这些基准测试程序。而另一方面,它们常常不能够满足我们对企业系统的需求。例如: LMBench:用于测量 Linux API 的性能。 IOZone:用于测量本机文件系统吞吐量。 DBench:用于测量 NetBench 的文件系统组件。 SMB Torture:用于测量 SMB 文件服务性能。 针对目标工作负载,可以选择使用许多基准测试程序。我们之所以选择上述基准测试程序是因为在给定资源的情形下,它们最适合我们的任务。同样道理,我们没有选择一些重要的基准测试程序。此外,我们没有选择运行一些已经由 IBM 中其它性能团队已经在研究的基准测试程序(例如,IBM Solution Technologies System Performance Team 已经发现 Linux 上的 SPECjbb“足够好了”)。表 1 中所显示的是 Linux 性能团队目前所使用的基准测试程序,以及所要测试的内核组件。

治疗小儿呕吐吐奶溢乳的方法
小孩干咳
防治小儿便秘
产妇剖宫产术后便秘腹痛
分享到: