RHEL 性能 提升方法和工具

RHEL 7 中已经引入了比较完备的性能优化、调整和监控的工具。对于我这个监控背景的人来说,不具体看下,实在忍不住。

首先,从这篇 KB 学起来把。 https://access.redhat.com/articles/785283

RHEL 下性能调优的工具有三种。

  • Performance Co-Pilot

  • TUNA

  • Tuned

下面依次简单说下这几个工具。

 Performance Co-Pilot 监控工具

[caption id=“attachment_53397” align=“alignnone” width=“1000”]PCP Charts - Overview View ](http://7bv9gn.com1.z0.glb.clouddn.com/wp-content/uploads/2015/01/Screenshot-from-2015-01-11-000449.png) PCP Charts - Overview View[/caption]

PCP 是一个工具集,它分为两个部分:

  • PCP Collectors : 性能指标数据采集器,它可以从系统内核或者其他数据源来持续的采集数据。是由几个系统服务组成。 These are the parts of PCP that collect and extract performance data from various sources, e.g. the operating system kernel.

  • PCP Monitors :性能参数集中查看和监控的图形界面。它可以同时连接多台服务器。These  are the parts of PCP that display data collected from hosts (or archives) that have the PCP Collector installed.  Many monitor tools are available as part of the core PCP release, whileother (typically graphical) monitoring tools are available separately in the  PCP  GUI package.

极简实施测试方法:

  1. 安装 pcp 的相关软件包(在需要被监控的机器上安装 pcp 即可,在需要使用图形界面查看的机器上安装 pcp-gui)

$ yum install pcp pcp-gui

  1. 启用数据收集器的服务(在需要被监控的机器上运行这些服务,在监控的周期完成之后,可以考虑关闭这些服务)

$ chkconfig pmcd on; service pmcd start $ chkconfig pmie on; service pmie start $ chkconfig pmlogger on; service pmlogger start

  1. 查看监控到的图形:
  1. 在 pcp-gui 主机的 host 文件中加入被监控主机的地址解析

  2. 在 RHEL 7 桌面的程序中,找到并运行 PCP Charts 程序

  3. 它默认就是连接到本机,因此加入我们需要查看的性能参数图形即可。点击 open view ,选择 overview 视图即可。当然,它内置的监控视图还有很多,当然如果你希望,还可以把远程的服务器性能实时状态(点击新建视图)视图也加入进来。其它视图如下图所示。

[caption id=“attachment_53396” align=“alignnone” width=“520”]内置视图 ](http://7bv9gn.com1.z0.glb.clouddn.com/wp-content/uploads/2015/01/Screenshot-from-2015-01-11-000611.png) 内置监控视图[/caption]

更多信息求助   man PCPIntro documentation.

主要适用场景:

  • 在 RHEL 下作应用或者操作系统的性能测试或调优,如果不需要或者没有必要使用第三方工具的话,它应该是首选。

  • 对生产系统性能做瓶颈定位,用它可以收集和追踪系统一段时间(一天、一周、一个月)的各种性能参数的表现情况,收集下来的数据可以作单点的或者横向的分析。它能够收集的参数还是相当全面的。

PCP 的目的是了解系统的实时的性能状态,为性能调优找到方向和目标。也可以作为日常性能监控的工具之一,为性能派错提供一臂之力。

TUNA

TUNA 则适合于复杂性能参数的调整,能对很多 kernel 和网络的性能参数在图形界面中配置,对于一次性要修改 n 个文件的深度复杂性能调优,它可以是一个提高工作效率的利器。而且,如果是某种性能参模版,可以用它作配置的导入导出。这一便于工程师,面对一对类似系统做重复的手工劳动。

[gallery size=“mobile” link=“file” ids=“53398,53399,53400”]

极简实施测试方法:

  1. Install the necessary packages: $ yum install tuna

  2. Start the tuning application $ tuna

For more information, please see the man tuna documentation

主要适用场景:

  1. 高效深度调优

  2. 工作在范围比较大的性能参数上

  3. 需要保存并且一致地实施这些参数配置到其它机器上

  4. 希望使用图形界面操作

TUNED

写了一堆文字了,现在我才开始我需要作的正事。我的需求是:优化一台物理的测试机的性能。我希望用最少的时间,直接让系统进入针对 kvm 虚拟机性能优化的基础优化状态(性能优化基线)。目前我还没有时间关心所有的性能参数细节,我只想快速完成这件事。方法如下:

  1. 安装 tuned $ yum install tuned

  2. 使用 tuned-adm 选择并加载 $ tuned-adm list Available profiles:

  • balanced
  • blog
  • latency-performance
  • powersave
  • sap
  • throughput-performance
  • virtual-guest
  • virtual-host Current active profile: balanced

tuned-adm profile  virtual-host      // 最重要的就是这个命令,让操作系统优化成虚拟机 host 服务器的性能优化调整基线

上面这条命令其实就是我写本文的目的。打完这条命令,我可以洗洗睡了。如果你还睡不着,可以看下下面这个文章。

Red Hat Enterprise Linux 7.0 - Performance Tuning Guide - 3.7. tuned-adm

  性能 提升方法

性能调优有几个方面需要考量。工具方面,需要选择一个合适的工具集,需要这个工具集能够统一的覆盖所有需要管理和调优的操作系统类型和版本;目的在于能够得到所有系统的基于统一工具的性能快照(当前的状态基线);流程方面,需要建立性能调优和持续性能改进的流程。它应该和 ITIL 里的可用性管理和容量管理关联起来。性能提升的流程应该有一下几个活动:

  1. 目标选择:选择当前环境性能基线快照目标的对象服务器,选择尽可能要典型、全面、量要够。针对采样对象,作统一的性能参数收集,选择必选和候选的性能参数指标。指标要选的有目的和有特点。目标采样对象可能会慢慢的扩大到更多的对象。目标采集的性能参数也需要,每次都 review,可以作有必要的调整。

  2. 性能参数收集:最好在相同的时间段内收集一定时长的性能参数。建议使用一种统一的工具,这样可以更好第做横向对比。实在不行,可以对同一种操作系统使用一种工具。当然采集工具的数量越少越好,越多工作量越大,分析报表的成本越高。这个阶段 RHEL 上可以使用 PCP。

  3. 建立性能调优目标:每一种业务应用或者某一类系统的基本性能诉求可能是一致的,把收集回来的数据,做分析整理和加工,对比历史的、业内标准的或者同行业的参考数据。得出本次性能参数调整的目标参数集。不同类型的系统,目标调整的参数集应该是不同的。

  4. 实施性能优化参数:手工的或者用自动化工具来在目标系统中实时系统参数调整。当然,建议提前做测试,保证不会影响业务正常运行,也可以使用分批分拨实施的方法。建议的方法如下,a)使用自动化配置管理工具,如 puppet 或类似方案,把参数调整模版用 puppet 的模块来表达,并持续改进,发布最新的版本到目标 host group 上去即可。b)使用手工的方式实施,这里可用用到 tuna 工具。

  5. 调优结果分析:再次收集一个周期的性能数据。对比这些数据和第二步骤中的数据。分析和记录本次调优的成败和总结。找出提升的部分,无提升的步骤。为下次调优做些后续的注意事项。

以上活动应该在 IT Service mnager 的负责下定期执行。目标就是提升系统性能和效率,确保每个业务都能运行在最高的性能,为系统的容量管理和性能管理给出可靠的参考数据。

最后,tuned 并没有写在上面的流程中,并不是说它没有到。它其实应该被用在每个操作系统实例安装和初始化的阶段。它提供的是红帽为 RHEL 推荐的最基础的性能调优参数建议,是性能调优基线的基线。实施方法很简单,在系统初始化的 post action 中加入这个条目,针对不同类型的系统激活一个合适的 profile 即可。

性能 提升不是一蹴而就的,而是一个长期的过程。可以使用 PDAC 的思想,扎实的走好以上建议流程。使用自动化运维工具和必要的数据分析工具加速以上流程。

署名-非商业性使用-禁止演绎 4.0 (CC BY-NC-ND 4.0)
comments powered by Disqus
本博客始于 2007 年
Built with Hugo
主题 StackJimmy 设计