科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网服务器频道Unix服务器环境的性能监控

Unix服务器环境的性能监控

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

Unix服务器产品是一个丰富多彩的世界,其中包含来自多家厂商的硬件和众多来源的软件。通常情况下,出于安全的原因,能够解决服务器性能问题的人很少。即使确实有人能够对服务器的性能“事件”实施监控,仍然要面临重大的挑战——用于测量和分析硬件软件性能的...

作者:转载自《网络世界》 2006年8月11日

关键字: unix 性能 监控

  • 评论
  • 分享微博
  • 分享邮件

Unix服务器环境是一个多彩的世界,但对其性能的监控面临重大挑战——用于测量和分析硬件、软件性能的工具非常稀缺。

Unix服务器产品是一个丰富多彩的世界,其中包含来自多家厂商的硬件和众多来源的软件。通常情况下,出于安全的原因,能够解决服务器性能问题的人很少。即使确实有人能够对服务器的性能“事件”实施监控,仍然要面临重大的挑战——用于测量和分析硬件软件性能的工具非常稀缺,而且只适用于特定厂商的产品。

跟踪延迟

研究Unix服务器环境的第一个步骤就是跟踪从用户请求事件到最终屏幕显示全过程中任何应用的事务延迟,接下来的步骤是通过图表的形式绘制出服务器的拓扑结构。在该过程中会涉及到许多组件:网络拓扑结构、数据库更新、磁盘阵列、流程调度、CPU性能、内存共用性和驱动/中断服务时间。然后,可以使用一系列的性能分析工具对硬件和软件环境进行研究,全面测量事务延迟的问题。这种循序渐进的方式对用户事务的每一个部分进行分解,并且揭示了每一个部分的延迟现象。性能分析工具集应对这些部分进行测量并找出与之相关的性能下降情况。

用户线程与解析用户查询所需要的事务处理和路径有着很大的关联,因此,应当对它进行详细研究。在调节某个系统的延迟时,需要分两个步骤来进行:首先,定义用户事务在满足用户请求时必须执行的每一个步骤;然后对每一个步骤进行计时。尽管看起来很简单,但它很可能是一种非常复杂的多节点事务环境。其中一个明显的问题就是找到精确的时间轴。在通常情况下,最适合计量节点间网络延迟的就是NTP(网络时间协议)。每一个步骤都必须尽可能地精确定义。每一个步骤包括每一个包的移植、每一个包的处理交换、每一个磁盘设备的集成和每一项网络互动。在每一个步骤中都需要记录重要的时间标志,并对其进行保留以备分析之用。性能工具包可以对延迟研究中的这些时间标志进行检查,并揭示出服务器环境中的运转情况。

监控哪些内容

我们必须确定在哪些地点监控哪些内容,这些监控内容是在系统事务延迟研究过程中收集到的。我们还可以监控和分析用户事务中参与服务的每一个组件,并且使每一个组件都以最高的速度运行。最后,我们可以总结出一份设备和流程列表,以便找到一些合适的方法对每一个项目进行测量。

简而言之,对于性能分析系统来说,Unix计算机有5类可测量的数据对象:全局、CPU、网络接口、磁盘和进程。前四个对象描述的是用户Unix计算机的物理属性。全局类别描述的是内存和交换特性,还包括全局文件系统内存占用率和运行时间及负载平均值等项目;CPU类别包含占用率、中断、相互调用等物理项目,还有设备读/写和进程移植等Unix项目;网络类别包含物理接口层及其组件,还有逻辑TCP/IP层,包括接口占用率等;磁盘类别包括以物理磁盘设备计量的数据项目、与CPU的互连和信道数据项目。在所有这些下面的便是磁盘阵列的拓扑结构,通常对于CPU来说是不可见的。这样,就产生了另外一个抽象层,在使用性能计量工具测量磁盘I/O性能时必须将这一因素也考虑在内。这四个类别描述的正是Unix环境下的硬件世界。

最后一个类别是进程层,也是最需要监控的部分。例如,用户可能会抱怨说系统响应速度很慢。无论是CPU负载过大还是数据库CPU运行速度低于正常水平,首先发现瓶颈的都是进程。接下来的问题就是测量延迟事件中的对象,并找出一些方法确定在何处、以何种方式、对哪些对象进行测量。

找到合适的监控工具

过去,曾经出现过一些较为著名的通用Unix性能监控工具,但其数量非常有限。多数软件工程师都很熟悉sar、vmstat、iostat和netstat,另外还有一些针对专门厂商的工具也采用类似的格式。SymbEL就是一种起源于Sun的著名工具。然而,要想使所有的资源在经过线程优化的并行应用系统中具备顺畅的响应速度,就必须使用更为全面的性能监控工具,而传统的Unix工具集是不具备这一能力的。

在性能监控过程中,第一重要的考虑因素就是采样时间。多数第三方工具都是针对服务器群的,而且收集的是粗略的性能数据,主要用于容量规划和服务器负载热点查找。对于测量目前分布式环境中应用性能的人员和进行环境规划的人员来说,采样时间的意义是不尽相同的。成功的性能监控和分析需要精细的计时软件和硬件工程工具。但要想找到这类适合的工具是相当困难的。

这样看来,问题的关键就在于:什么是粗略,什么是精细?我们将30秒或更长的采样和存储时间间隔定义为粗略,而精细的采样指的是十分之一秒到5秒的时间间隔。对于那些关注事务延迟的软件工程师而言,一秒或低于一秒的采样间隔是必须的,尤其是在巨大的并行SMP(对称多处理)系统中,这样的采样间隔是绝对必要的。这些系统每秒钟可能要处理数万个事务,其所要求的延迟可能为8毫秒或更低。随着目前处理器速度的不断提高和越来越多处理器达到GHz阶段,在服务器上实现低于一秒的采样间隔已经可以轻松实现。对于支持此类精细采样时间的监控系统来说,惟一的不利方面就是应当将所有这些采集到的性能数据存储为磁盘上的哪一种数据格式。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章