zoukankan      html  css  js  c++  java
  • [转]高可用高性能计算机系统配置与调谐的基本策略

    内容从此开始:
    space 10px
    高可用高性能计算机系统配置与调谐的基本策略
    青岛火车站 电算中心 于东 刘梅

    计算机用户需要这样一种计算环境:既要可靠 又要性能足够处理复杂环境下的各种负载,用户把各种应用软件置入计算机系统内,应用软件又根据人机对话界面传来的各种指令激活预设的程序段。这里涉及整个 系统的协调,最短的DOWN机时间,持久的性能表现,这是一个适当的系统表现,另外,计算机系统还必须能够在不降低性能的前提下消化增加的负载,具有一定 的可收缩性。

    本文介绍配置一个系统的过程并包括如下信息:

    • 与性能和可用性相关的通用术语
    • 如何获得高性能和高可用性
    • 如何计划你的配置
    • 配置和调谐建议
    • 配置和调谐系统的步骤

    本文以DIGITAL UNIX为基本环境,有关系统监视,性能异常识别,CPU优化,虚存/存储/网络子系统的调谐细节,在不同系统环境下,有不同的系统工具和方法。为通用性记,不作进一步讨论。

    术语和概念

    1.1.1系统配置:指为一个单独系统或群集系统进行的软件和硬件的联合配置。例如:CPU,内存板,操 作系统,镜像盘都是配置的对象。主机系统可以是一个单CPU或多CPU系统,多CPU系统允许多个处理器共享物理内存,其中SMP系统(对称多处理器)的 CPU执行同样版本的操作系统,存取共同内存,并行执行指令.某些环境如LDB(LARGE_DATABASE)大数据库环境下,要求多处理器系统和大存 储系统来处理负载;VLM(VERY_LARGE MEMEORY)使用64位体系结构,多CPU和至少2GB内存;VLDB(VERY_LARGE DATABASE)系统同时是一个VLM系统,同样要使用一个大而复杂的存储配置.下面是一个典型的VLM/VLDB配置:

    • 拥有两个以上高速CPU的SMP;
    • 多于4GB的物理内存;
    • 多个高性能的主机总线适配器(HOST BUS ADAPTER);
    • 高性能高可用的RAID存储配置.

    虚拟内存:通过各种算法控制每个进程的内存分配,通常包括部分物理内存,磁盘SWAP空间,都是虚拟内存分配的对象.页:是系统可调配的最小物理内存单位,大小为8KB.

    虚拟内存操作:包括调页(paging)和交换(swapping)

    paging:回收(reclaim)页被重新使用。Swapping:把一个悬挂(suspended)进程的修改过的(dirty)页写回磁盘swap空间,这样可以释放大量内存。

    配置完一个系统后,为改善系统性能,你可能需要调节系统参数。核心变量(kernel Variables)影响着系统核、虚存i/o子系统、和应用软件的表现和性能。系统运行时改变核参数可暂时改变系统核(kernel),而改变属性值 (values of attributes)可以永久改变kernel性能。

    如果调皆达不到预期效果,必须重新配置系统(reconfigure):增加cpu、内存,还是改变存储配置或修改应用软件?这需要你整体判断瓶颈所在。

    1.1.2 系统性能

    系统性能依赖于高效的使用系统资源:硬件资源、软件资源、cpus、memory、network部件,disk storage。

    首先在正常负载下,系统必须表现良好。其次在系统负载随时间变化的情况下,如

    增加新用户或运行额外的应用软件时,必须重新配置系统以应付增加的系统负载。

    可扩展性指系统可以通过增加资源达到预期的性能提高,或系统无需增加资源而利用现有的资源消化负载的增加部分,同时无明显的性能下降。

    所谓"瓶颈"是指系统配置中的某一部分,成为系统内部信息不畅的主要位置。潜在的瓶颈包括:虚拟内存子系统和i/o总线。瓶颈发生于负载对某资源的需求大于系统可以提供的能力,系统能力是指该资源最大理论吞吐量(through-put)。

    性能经常被带宽(bandwidth)和吞吐量(through-put)来描述。带宽是指i/o子系统 数据字节的传输率(transfer rate)。带宽对执行大量顺序数据传输的应用软件特别重要。吞吐量是指i/o子系统执行i/o操作的速率,吞吐量对执行很多小量i/o的操作的应用特别 重要。

    性能也来可以用周期来测定。周期是指完成一次指定操作的总时间,周期也被称为延迟(delay),高性能要求低周期,i/o周期以微秒(milliscond)为单位,内存周期以纳秒为周期。内存周期依赖于内存配置。

    1.1.3 磁盘性能

    用磁盘存取时间来描述磁盘性能。

    磁盘存放时间是由磁盘寻找时间(seek time)和转动周期(rotational latency)来决定的。

    seek time:磁头转动至特定磁道(disk track)的时间。

    rotational latency:磁盘转动至指定的扇区的总时间。

    ubc统一缓冲cache(unified buffer cache)影响盘i/o性能。ubc分配部分物理内存来缓存最近经常存取(most-recently accessed)文件系统数据。作为介于操作系统和存储子系统之间的功能层,ubc可以降低磁盘操作次数。

    磁盘i/o性能也依赖于应用软件i/o操作的特征:数据传输量大小,数据流向:从磁盘读和向磁盘写两个方向。

    数据传输有不同的存取模式,顺序存取模式指读写磁盘的连续块(contiguous blocks)或相邻块(adjacent blocks)。随机存取模式(random access pattern)是指读写磁盘不连续的块。

    另外,数据传输包括文件系统数据和原始i/o(raw i/o),原始i/o是指对不含文件系统的磁盘的 i/o ,raw i/o绕过(bypass)缓冲区和cache,可以提供比文件系统i/o更好的性能。raw i/o方式常用来做操作系统i/o和数据库应用软件i/o。

    磁盘i/o性能也受RAID技术的影响,RAID可以提供更好的磁盘I/O性能和更好的数据可靠性。 DIGITAL UNIX通过LSM(logical storage manager)软件支持RAID功能;DIGITAL UNIX也支持基于硬件的RAID产品,通过使用智能控制卡、CACHE提供RAID功能.

    一共有四个级别的基本RAID:

    RAID0:也称为磁盘striping,RAID0把数据分成块,并把块分布于构成磁盘组的多个磁盘,跨磁盘、跨控制板分布磁盘i/o负载改善了磁盘i/o性能。

    RAID1:也称为磁盘镜像,在同一磁盘组的不同磁盘上维护相同数据备份。不同磁盘上保留的数据副本可以改善磁盘表现和更好的数据安全性。

    RAID3:一种校验RAID,RAID3分成的数据块也分布于不同的磁盘,同时提供并行的数据存取和增加的带宽。RAID3在独立的磁盘上放置冗余的校验信息,磁盘出错时,用此校验信息重新生成数据,因此RAID3有更高的数据安全性和可用性。

    RAID5:一种校验RAID,RAID5可以独立存取数据并可处理同步I/O操作,改善了吞吐量。

    1.1.4高可用性

    高可用性是指该系统资源应付软硬件失败的能力。资源(如系统或磁盘数据)可通过冗余或多处备份获得高可用性。

    例如:磁盘镜像可以使磁盘数据获得高可用性,如果原始盘失败。另外盘上的备份便可以使用。如果使用校验RAID,冗余数据存放于校验信息中,当数据失败时,可以此重新生成被破坏的数据。

    另外冗余的网络连接使网络有更高可用性,网络可用性依赖于应用软件、网络配置和网络协议。

    使整个机器系统有更高可用性、你必须设置群集,CLUSTER是一个松散结对的服务器组,每个服务器视为集群成员。应用软件可以运行在任意成员服务器上。大型应用可以在多个成员服务器上同步运行。集群成员之间有高性能内部互联支持快速可靠的成员间数据通信。

    集群应用FAILOVER(失败转移)技术保证高可用性。当一个成员系统失败时,所有运行在该系统上的集群配置的应用软件转移到另外的成员服务器上继续运行。

    为了彻底防止配置失败,必须消除每个失败点:

    • 用集群防止整个系统的失败。
    • 两套网络连接防止网络失败。
    • 分布于不同总线上的磁盘镜像防止磁盘总线或适配器失败。

    对于更高的可用性要求,可以用多层冗余来防止多层失败。

    可用性(AVAILABILITY)也可用资源可靠性(RELIABILITY)来衡量。可靠性是指一个 部件在两次失败引起数据丢失之间的可正常运行的平均时间量。它可用MTDL(MEAN TIME TO DATA LOSS),MTTF(MEAN TIME TO FIRST FAILURE),MTBF(MEAN TIME BETWEEN FAILURES)来表示。

    细解高可用性

    一个高可用性资源可以经受特定软硬件失败,对用户而言这些失败是透明的、不可察觉的。这可以用资源冗余和失败转移机制来实现的。

    系统配置必须根据你的系统的重要性及软硬件的自身特点来决定配置可用性的规格。一个不轻易出现失败或可以容忍DOWN机的环境,只需要数据级高可用性;而一个挑剔的系统

    必须没有一个单失败点,在每一个重要的资源都必须有冗余资源做备用。

    图一是一个有多处潜在失败点的(包括系统、网络、磁盘、总线)的配置:

    1.2.1消除失败点:

    • 系统失败:

      为了避免单个系统的失败,必须配置至少两个成员的集群,一个失败,应用仍可运行在另一个成员系统上。但两成员集群不是一个高可用性配置。如果一个成员系统崩溃另一个成员系统成为潜在的失败点。所以高可用性系统至少要配置三个成员系统。

    • 磁盘失败:

      防止磁盘故障,作镜像盘或用校验RAID。

    • 主机总线适配器或总线失败:

      镜像数据分布在不同总线上。

    • 网络连接失败:

      网联失败归因于网络接口或网络本身的问题,可以在一个系统上安装多个网络接口并确保应用软件支持这种功能。

    • 电源失败:

      系统和存储单元易出现电源失败。在主机系统和存储单元内分别使用冗余电源,在主机房内使用ups。

    • 集群互连失败:

    两条集群互连通讯通路。

    完全冗余集群配置:见图二

    1.2.2提高系统可用方法及成本:
    方法:
    设置至少两成员的集群。
    使用最新版本硬件、固件和操作系统
    配置多网络连接
    配置冗余集群互连
    使用后备式UPS

    成本:
    额外的软硬件支出及增加的管理复杂度
    升级时可能的DOWN机时间。
    额外的硬件费用及足够的I/O扩展槽
    额外的硬件费用及PCI槽
    UPS硬件费用

    1.2.3提高数据可用性方法及成本
    方法:
    镜像盘
    使用校验RAID
    在不同总线上磁盘间镜像数据
    设置集群
    使用后备UPS

    成本:
    额外磁盘费用和写性能降低
    额外软硬件费用,增加管理复杂性和写性能波动
    额外I/O总线槽及硬件费用
    额外软硬件支出,增加管理复杂性。
    UPS费用

    1.2.4高可用性对系统性能的影响
    方案
    镜像
    跨总线镜像
    校验RAID
    冗余网络连接
    集群

    影响
    改善磁盘读性能但降低写性能。
    防止单总线成为I/O瓶颈
    当所有RAID集磁盘都可用时,改善磁盘I/O性能,当有失败盘存时,性能降低
    改善网络性能,增加CLIENT存取
    通过把负载分布于不同的系统上,为应用软件和用户提供更多的CPU、内存资源,从而改善了整个系统的性能。

    1.3细解高性能

    系统必须有可靠的性能满足用户和应用的需要,系统配置首先要满足对当前负载的迅速反应,另外还要考虑为负载增加而预留性能表现空间。

    一个可扩展的系统环境允许用户为改善性能或消解负载增加而添加另外的硬件。

    系统性能取决于软硬件配置与负载的交互作用。一个好的系统必须充分高效的使用CPU,内存,I/O资源。一旦某资源达到能力极限,就可能降低性能而变成瓶颈。瓶颈是相互关联的。例如,无效的内存引起过分的调页和交换,如此又引起磁盘I/O的瓶颈。

    要配置一个满足性能要求的系统,必须判断该系统中,那种资源的失败可能对系统性能造成最大冲击。如果应用 软件是CPU消耗密集型的,必须考虑配置多CPU,宽内存带宽;如果应用是内存消耗性,必须多考虑内存容量的配置,否则内存的缺乏将降低整个系统的性能; 如果应用软件中存在大量磁盘I/O操作,配置系统时就必须优先考虑磁盘和总线瓶颈;如果你的系统是一个INTERNET服务器,必须确保系统可以集中处理 大量网络请求。另外,如果要把系统配制成高可用+高性能,你还必须考虑高可用配置对高性能的负面影响。

    性能问题的原因可能是:

    不恰当的系统核(KERNEL)变量值。

    根据你的配置及负载的变化,而修改系统变量值,以获得优化的性能。

    • 没有根据负载而量身定衣的配置

      如果系统调谐(TUNING)不能改善性能,系统配置可能不适合负载特点。配置资源可能不足以满足负载要求。例如:可以增加CPU或内存资源,升级为主性能硬件或增加硬盘。

    • 磁盘碎片

      文件数据在磁盘上的分布不连续,可能降低读写性能。

    • 劣质软件或没有优化的应用软件

      如果证明应用软件是性能问题的原因,就必须重写或优化软件。

    1.4规划配置

    计划你的DIGITAL UNIX配置步骤如下:

    1. 了解你的负载及应用软件特点
    2. 确定你的可用性及性能要求
    3. 选择满足性能既可用性需要的软硬件配置

    了解负载的特征:

    1.应用特点:
    描述应用对象
    描述性能要求
    应用是CPU密集型的码?
    应用对内存需求大码?
    应用对磁盘存储要求情况
    应用是否要求宽带宽或大吞吐量?
    应用是否执行了大量小块数据传输?
    平均数据传输量有多大?
    数据传输中读比例?
    数据传输中写比例?
    应用中是否存在很多网络操作?
    系统可用性要求
    数据可用性要求
    网络可用性要求

    2.用户特征描述:数据处理还是编译代码?
    用户类型
    用户数量
    用户目标
    用户执行的任务
    用户运行的应用列表
    数据存储要求

    1.5基本配置和调谐推荐:

    DIGITAL UNIX的实用程序SYS_CHECK收集性能相关信息。并以

    易读的格式输出这些信息。SYS-CHECK工具帮助用户检查配置和检查变量配置 ,并在必要时提供警告和调谐建议。

    SYS-CHECK可以下边地址获得:FTP://FTP.DIGITAL.

    COM/PUB/DEC/IAS/SYS_CHECK

    下面列出基本调谐建议:

    • 操作系统和KERNEL建议
      1. 确定正在使用OS最后版本(DECEVENT工具)
      2. 确定在使用适配器.控制器.磁盘的最新固件(DECEVENT工具)
      3. 确定重要的应用有高优先级(用nice命令,Class Scheduler工具定义CPU优先级)
      4. 使用适用该配置的KERNEL变量修改
    • 内存建议:
      1. 确定有足够的内存
      2. 确定有足够的SWAP空间,并且SWAP空间分布在不同磁盘和总线上
      3. 增加进程可用地址空间
      4. 增加进程可用系统资源
      5. 减少应用软件内存要求
      6. 如果系统只有少量磁盘I/O,减少分配给UBC(unified buffer cache)的内存量
      7. 修改SWAP速度
      8. 改变修改页(dirty page)预写速度。
    • DISK和I/O建议
      1. 使用高性能硬件
      2. 分布磁盘I/O和文件系统跨磁盘和总线
      3. 整理文件系统碎片
      4. 磁盘I/O密集型应用,增加分配给UBC的内存
      5. 增加同时打开最多文件数
      6. 增加NAMEI CACHE大小
    • ADVFS建议
      1. 使用多卷文件域
      2. 增加分配给ADVFS缓冲CACHE的内存
      3. 提高修改数据CAC HING阀值(THRESHOLD)
      4. 减小I/O传输预读(READ AHEAD)大小
    • UFS建议
      1. 修改文件系统碎片大小
      2. 增加元数据(METADATA)缓冲CACHE大小
    • 网络建议:
      1. 增加哈希表(HASH TABLE)大小,KERNEL使用哈希表去查询TCP/IP控制块。
      2. 增加局部(PARTIAL)TCP包侦听队列(SOCKET LISTEN QUEUE)连接上限
      3. 增加动态分配端口最大数
    • NFS建议
      1. 确保服务器上运行着足够的NFSD DAEMONS数量
      2. 确保客户端运行着足够的NFSI OD DAEMONS

    1.6配置和调谐系统步骤

    1.配置系统:

    确保环境要求,选择符合要求的配置方案。然后设置硬件,操作系统及其上的层次产品和应用软件。

    2.完成所有建议的初始调谐工作:

    对一些配置必须在配置完成后立即进行调谐工作。例如,如果系统被用作INTERNET服务器必须系统配置后立即修改缺省系统参数和属性

    3.监视系统表现:

    如果系统性能可以接受,仍然在其后时间内不断的观察系统表现。因为资源的使用状况随时而变。某项资源达到其能力上限时,会表现在降低的性能表现上。或环境的明显改变,也会影响性能。如果系统性能不可接受,确定问题出处。

    4.分析性能问题的原因:

    使用DIGITAL UNIX给出的工具,定位问题

    5.确定消除性能问题的调谐方案:

    如果用尽了所有可能的调谐方案,而不能改善性能,必须考虑重新配置系统。

    6.消除性能问题:

    首先尝试简单,无需费用的方案,如运行某些应用在非高峰期或控制磁盘存取。

    再尝试复杂且昂贵的方案,如调谐或增加硬件。

    如果你确信CPU和应用软件已经完成优化,接下来应该重点调谐虚拟内存子系统,以获取最好的性能。如果仍然不能消除问题,再调谐I/O子系统,调谐一般要修改KERNEL属性,也可以执行相应的系统管理工具软件,如整理文件系统碎片或修改STRIPE宽度来调谐系统。

    7.监视系统性能:

    调谐后必须仔细观察系统表现,以确定调谐结果是否如期。图三描述配置和调谐过程。

  • 相关阅读:
    曲演杂坛--Update的小测试
    曲演杂坛--使用TRY CATCH应该注意的一个小细节
    Backup--查看备份还原需要的空间
    INDEX--创建索引和删除索引时的SCH_M锁
    曲演杂坛--蛋疼的ROW_NUMBER函数
    曲演杂坛--使用ALTER TABLE修改字段类型的吐血教训
    曲演杂坛--查看那个应用连接到数据库
    TempDB--临时表的缓存
    (转)spark日志配置
    CDH版本java开发环境搭建
  • 原文地址:https://www.cnblogs.com/CuteNet/p/1232646.html
Copyright © 2011-2022 走看看