在测试执行过程中,对测试结果的分析是一个需要进行深入思考的重点问题。分布式系统测试的重点在于对后端服务器集群的测试,而判定系统中是否存在Bug则是我们需要解决的重要问题。那么应该如何确定是否存在Bug呢?
对于测试结果的分析,我们通常观察下面几种情况。
观察前端应用的返回结果。这里需要分两种情况来考虑:第一,按照前端应用业务功能点及流程进行 *** 作,观察返回结果是否符合业务方的需求预期;第二, *** 作后端的服务器(通常是重启、宕机、断网等 *** 作),观察前端应用的返回结果是否符合系统的设计需求。
分析服务器日志。在功能测试过程中,当我们在启动服务器的时候,需要将日志级别定义为Debug级别(最低级别)。这样做的主要目的是为了能便于测试工程师来分析日志和定位问题。为了能更好地定位问题,常常需要在服务器程序代码中进行日志打桩,把程序中的一些重要数据通过日志的方式展现出来。通常情况下,我们需要对日志的格式进行约定,在日志行中增加一些关键字来进行分类,这将便于测试工程师进行日志分析,也有利于开展分布式系统的自动化测试。另外,值得注意的是,我们尽可能地将打桩代码放在Debug代码中,避免影响系统代码,引入新问题。
分析 *** 作系统的一些重要信息。我们测试的分布式系统绝大多数是基于Linux *** 作系统开发的,在测试的过程中,除了详细分析程序日志以外,还需要对 *** 作系统的一些重要数据信息进行分析,从而来诊断服务器程序是否存在异常。以Linux *** 作系统为例,我们常常会使用top命令、netstat命令及sar命令来查看 *** 作系统的一些数据信息。例如,可以通过netstat命令检查服务器程序是否正确地监听了指定的端口等。
借助其他分析工具。例如,如何判断服务器程序是否产生了内存泄漏?通常需要借助于内存检测工具来进行分析。在Linux环境下,我们常用Valgrind来进行内存检测。这是一款非常好用、功能强大的分析工具,可以帮助测试或者开发工程师快速发现很多隐藏的程序Bug,尤其是在内存检测方面(同时它还具有很多其他优秀的功能,读者可以自己查看官网中的使用手册)。对于分布式系统而言,压力测试和性能测试非常重要。在进行压力测试和性能测试的时候,可能会碰到下面一些难点。
数据准备。如何准备海量的测试数据并保证模拟数据的真实性?以一个分布式的文件系统为例,预先存入100GB的数据还是存入100TB的数据、存入的文件是大小基本一致差别不大还是各不相同甚至差异很大(例如,从几十字节至几十兆字节不等),这些因素对于分布式系统的性能影响是有很大差异的。另外,如果需要预先存入100TB的数据,若按每秒写入100MB数据来计算,写入100TB数据需要100×1024×1024/100=1048576秒=29127小时=12天。我们是否能忍受这么长时间的数据准备工作?为了解决这样的问题,我们需要对系统架构设计进行深入分析,设计好测试场景,并提前进行测试用例的设计,以尽早开始准备测试数据。
性能或压力测试工具。通常来说,分布式系统的测试需要开发一些测试工具来满足性能测试的需求。如果可以的话,建议这样的测试工具最好由测试工程师自己来实现,因为测试工程师更清楚自己的测试需求。当需要自己开发测试工具的时候,有两个关键问题需要重点关注:第一,一些关键数据的收集方式与计算将成为性能测试工具的关键,例如,TPS(每秒请求数)、Throughput(吞吐量)计算的准确性;第二,要保证性能测试工具的性能,如果工具本身的性能不好,将无法给予分布式系统足够强大的压力来进行测试。另外,当考虑到多并发(例如有10万客户端同时并发连接)时,如果性能测试工具在一台测试机器上只能运行50个或者更少的话,那么需要的测试机器数量也将会很庞大(例如2000台测试机),这个成本或许是许多公司不能承受的。因此,性能测试工具本身的性能必须要足够好才能满足需求、降低测试成本。自动化测试是测试行业发展的必然趋势,对于分布式系统测试而言也不例外。在实施分布式系统自动化测试的过程中,我们可能会碰到下面两个难点问题。
涉及平台多且硬件杂,测试流程控制困难。在实施自动化测试的过程中,测试脚本需要控制的 *** 作系统和应用程序很多,而且存在跨平台的特性,同时还有可能需要控制一些网络设备。因此,选择一个优秀的自动化测试框架成为了非常重要的工作之一。以我们的实践经验来看,STAF是一个不错的选择,它的平台(Windows及Linux各版本)支持及开发语言的支持都很全面。
测试结果验证复杂。对于分布式系统的自动化测试来说,我们需要通过测试脚本来收集各种测试结果数据以验证测试结果的正确性。在实施自动化测试的过程中,我们可以将测试结果数据收集部分模块化,通过各子模块来检测各项数据是否正确。例如,我们会设计一个日志分析模块,主要负责从服务器应用程序的日志中收集相应数据进行对比验证(本文前面提到的在打桩日志中增加关键字部分就显得格外重要)。
随着互联网的发展,大型分布式系统也越来越多、越来越复杂、越来越重要。如何有效地保证大型分布式系统7×24小时全天候持续稳定地运行也就成为了一个重要课题。
百度词条里的解释是:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个 *** 作单元上进行执行,共同完成工作任务。它的目的就通过调度集群,达到最佳化资源使用,最大化吞吐率,最小化响应时间,避免单点过载的问题。
负载均衡可以根据网络协议的层数进行分类,我们这里以ISO模型为准,从下到上分为:
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层。
当客户端发起请求,会经过层层的封装,发给服务器,服务器收到请求后经过层层的解析,获取到对应的内容。
二层负债均衡是基于数据链路层的负债均衡,即让负债均衡服务器和业务服务器绑定同一个虚拟IP(即VIP),客户端直接通过这个VIP进行请求,那么如何区分相同IP下的不同机器呢?没错,通过MAC物理地址,每台机器的MAC物理地址都不一样,当负载均衡服务器接收到请求之后,通过改写>基本原理 要实现网络机器间的通讯,首先得来看看计算机系统网络通信的基本原理,在底层层面去看,网络通信需要做的就是将流从一台计算机传输到另外一台计算机,基于传输协议和网络 IO 来实现,其中传输协议比较出名的有 >分布式元数据管理:分布式元数据管理主要通过元数据服务分布式部署的方式,实现了元数据分布式管理,解决一般分布式文件系统的单元数据服务节点导致的响应用户请求效率不高、存储文件数目受限和单点故障等问题,具有降低用户请求处理延迟,提高分布式文件系统的可扩展性和可用性的特性。一般包括完全分布式架构、元数据访问负载均衡、元数据服务器高效索引、元数据服务器d性伸缩等技术点。
多层级存储管理:多层级存储管理用于实现内存 / SSD/HDD 等异构存储设备的池化管理,以及各类存储设备的动态接入管理,通过设备抽象和提供统一命名空间,面向分布式文件系统提供统一的存储资源池,支持热点数据自动感知和智能化存储调度,最大程度提升数据存储与访问的效能。一般包括异构存储设备管理、多存储系统适配、统一命名空间、基于热度的存储资源调度等技术点。
数据一致性保障:数据一致性保障主要解决分布式文件系统中多副本和缓存等在数据存储与访问过程中的一致性问题,通过构建数据一致性模型、进行数据一致性校验等方式,保障数据在存储和访问过程中的一致性,在提升数据访问性能的同时确保数据存储和访问的正确性。一般包括一致性协议优化、一致性检验等技术点。
高并行读写优化:高并行读写优化用于提高分布式文件读写的并行化水平,最大化提升分布式文件系统下的数据访问效率。一般包括分布式数据访问缓存管理和调度算法优化、IO 算法优化和合并 IO 等技术点。
分布式散列与动态均衡:分布式散列与动态均衡实现分布式文件系统下高性能的数据块定位,提高数据访问性能,以及数据块的迁移和再平衡,提升分布式文件系统的稳定性和可持续服务能力。一般包括基于一致性哈希的数据块索引管理、动态数据再平衡等技术点。
存储高可用:存储高可用通过数据多副本技术、状态自检测和自修复、核心服务分布式部署等技术手段,实现自动检测分布式文件系统中的各种错误和失效,并且在文件系统出现错误和失效时可自行进行多副本间的数据修复,最终持续向用户提供正常的数据访问服务。一般包括可配置数据多副本、数据自恢复及自维护等技术点。
海量小文件高性能存储访问:海量小文件高性能存储访问主要采用小文件汇集成大文件进行存储、细粒度二级索引管理等技术,实现在现有分布式文件系统的基础上,扩展对海量小文件的存储与访问的能力,同时解决小文件的随机读写问题,大大提高分布式文件系统对海量小文件的存储访问效率。2008年2月,IBM宣布推出System z10大型主机以帮助客户创建一个全新企业级数据中心。凭借新的设计,System z10通过显著提升性能、降低用电与冷却成本,以及占地空间需求,从而大幅度提升数据中心的效率。同时,它提供了无与伦比的安全水平,并通过自动化管理和自动跟踪IT资源来响应不断变化的业务需求。IBM System z10 企业级服务器 (z10 EC 柜式)专业为企业级业务需求设计的世界一流的企业级服务器。z10 EC为企业发展和大规模整合,实现更高的IT安全性、d性和可用性,以及降低IT风险提供了全新的性能和容量,同时引入了即时资源分配来响应不断变化的业务需求。另外,由于环境问题的关注重点越来越指向能耗,z10 EC在整合分布式服务器时降低能耗和节省占地空间方面进行了专门的设计。同时,z10 EC所采用的专用引擎也将继续帮助用户扩展在大型主机平台上使用更为广泛的应用,并帮助降低拥有成本。可以说,z10 EC已经成为了增强型System z平台的核心,它所提供的技术不仅满足了当今企业的需要,而且也是推动未来业务发展的基础。功能强大,耗电较少对供电和散热的考虑已经进入到每一个IT环境的预算规划之内。随着能源价格的一路攀升以及公共事业部门限制能源的消耗量,非常重要的一点就是重新审视服务器在平衡IT支出时的作用。为了帮助进行能源规划,Resource Link推出了一些工具,实现在购买新服务器之前对能源需求进行评估。而一旦安装和运行了z10 EC,自System z9服务器以后就引入的大型主机能耗监测工具就能通过系统行为显示器(SAD)提供供电和热量信息,从而提供了一个及时的能耗参考点。在z10 EC上,上述信息还可以发送给System z V31上的Linux版IBM Systems Director Active Energy Manager (AEM)管理工具,依靠它来跟踪z10 EC和多种服务器平台的能耗趋势。这样,通过趋势分析,数据中心管理员就可以在所得数据的帮助下正确地评估能源的输入以及更加准确地规划数据中心的整合或调整项目。工作负载的整合可以帮助企业平衡IT预算支出当用来整合x86服务器时,z10 EC可以将能源使用降低80%以上,占地空间节省85%以上。而且,凭借更大的容量,z10 EC的虚拟功能可以使其在283平方米的面积内支持数百或数千台虚拟服务器。当在System z上进行整合时,您可以按照需要创建虚拟服务器;通过HiperSockets(内部局域网)节省网络使用;提供安全功能实现和支持新的及现有的应用;提高对虚拟服务器的系统管理能力;最重要的是,整合来自不同处理器的软件到更少的处理器上。进行扩展以支持不断变化的IT世界与以前的System z服务器相比,z10 EC提供了创纪录的容量,因为它不仅提高了单个处理器的性能,而且增加了每台服务器上的处理器数量。与IBM System z9企业级服务器(z9 EC)相比,z10 EC预计在n路处理器配置下平均容量大约提高50%;与z9 EC S54型相比,在全配置情况下容量大约提高70%——以上均是在z/OS 18下运行平均LSPR工作负载的数据。数据和网络的高速连接和大带宽输出是达到高水平交易吞吐量和保证服务器内外资源满足最大应用需求的关键。z10 EC具有全新的主机总线接口,具备采用业界标准InfiniBand协议的6 GB数据速率链路,能够满足连接、加解密、I/O和LAN需求——用于ICF和服务器到服务器连接、用于具有安全协处理器和SSL交易的Crypto Express、用于使用ESCON, FICON 或FCP的I/O连接、用于使用新的OSA-Express 35万兆以太网功能或OSAExpress2千兆以太网和1000BASE-T以太网的局域网连接。即时部署IT资源基础设施必须做到更加灵活以响应不断变化的容量需求以及为用户提供资源的即时部署。z10 EC上拥有16 GB的专用HAS,意味着能够避免某些预先规划配置的变化和相关中断现象。另外,IBM的随需应变容量升级(CUoD)功能使客户能够永久性增加其处理能力;IBM随需应变On/Off容量(On/Of CoD)功能能够提供短期容量峰值和测试新应用所需要的暂时性容量;容量备份升级(CBU)功能能够帮助提供针对所有处理器配置的保留突发事件备份容量。提供保护IT基础设施的保护仍将是重要的。z10 EC PU芯片拥有板上加密解密功能。集成了标准无限密钥的加密解密协处理器提供的高速加密解密功能可以保护存储上的数据。CP辅助加密解密功能(CPACF)可支持DES、TDES、最高512位的安全Hash算法(SHA)、最高256位的高级加密解密标准(AES)和伪随机数生成(PRNG)。永续可用IT系统每天都需要对所有用户处于可用状态——包括需要访问公司网站的客户、需要访问系统的业务人员、随时令开发环境保持最新状态的应用开发人员以及负责环境运行和维护的IT人员。如果应用不能始终处于可用状态,业务就要遭殃了。z10 EC延续了我们的承诺——每一种新的System z服务器都会在硬件的可靠性、可用性和适用性(RAS)方面进行改进。这些改进包括系统微码增强、动态内存段备用以及固定的HAS。z10 EC服务器可在系统出现计划内或意外中断时保持应用的正常运行。IBM System z服务器在竞争中表现卓越,与我们的业务d性解决方案一道经受了时间的考验。配合Parallel Sysplex技术的解决方案可提供更高的可扩展性和可用性。z10 EC上新的InfiniBand耦合连接(计划于2008年2季度提供)的速度可达6 GBps,并为解决ICB4的10米限制提供了一个高速解决方案,这是因为它们的最大长度可达150米。GDPS和新的Basic HyperSwap(z/OS V19提供)解决方案可以让系统故障不被员工、合作伙伴及客户察觉,动态磁盘交换功能可确保应用和数据处于可用状态。专用引擎提供了另一种具吸引力的选择z10 EC继续支持使用专用引擎,这些引擎可帮助用户扩展大型主机的使用以支持新的负载,同时帮助降低拥有成本。设计zIIP是为了支持特定的数据和事务处理及网络负载,从而提高将这些负载整合到System z上的性价比。适合zIIP(运行z/OS V17或更新版本的z10 EC和System z9服务器可提供这一功能)的负载包括了到DB2的远程连接,可帮助支持以下这些负载:商业智能(BI)、企业关系管理(ERP)、客户关系管理(CRM)和扩展标记语言(XML)应用。另外,zIIP(配置了z/OS V18)还可以支持IPSec处理,令zIIP成为一种IPSec加密解密引擎,可帮助在企业中创建高度安全的连接。除此之外,zIIP(配置了z/OS V110)可以支持特定的z/OS全球镜像(XRC)磁盘拷贝服务功能。芯片上的数字计算数字计算中的速度和精确性对我们所有的客户来说都十分重要。z10 EC中PU上的每一个内核都拥有自己的硬件十进制浮点单元,使z10 EC的十进制浮点性能高于System z9。十进制计算常用于各种金融应用,而那些使用其它浮点设备的工具通常都是通过软件来执行(使用各种库)。利用硬件十进制浮点单元,其中的部分计算可以直接进行并实现加速。使用System z解放您的资产企业拥有价值数百万美元的大型主机资产和支持关键业务的核心业务应用。SOA和大型主机技术的结合可帮助解放这些核心业务资产,更加轻松地对其进行丰富、实现现代化、进行扩展和重用并远远超出原来的设计范围。z10 EC以及z/OS环境与生俱来的优势和功能为实现企业网络中心提供了一个优异的平台。来自WebSphere、CICS、Rational和Lotus的创新System z软件解决方案进一步提高了实现SOA的灵活性。与您的业务共同发展z10 EC是System z大型主机发展之路上的有一个里程碑,体现了我们的承诺——在大型主机涉猎的所有领域进行技术改进,包括能效、可扩展性、虚拟化、安全性和可用性。但是,一场变化和革命也在进行之中。重新设计的处理器芯片帮助z10 EC将高性能计算密集型处理变为现实。灵活性和容量控制为IT提供了应对计划内需求和不可预见需求的利器。相信在不久的将来,中国国内企业的信息化程度不断加深,国内市场的IT需求将达到前所未有的新高度,高效率、低耗能的IT设备将更受青睐,而且现在世界上的各IT著名企业都提出了IT绿色环保的理念,这也正切合本次主机竞赛的主题。未来中国的IT化高度需求的时代,真的希望中国会有属于自己的软硬件技术、产品与服务,而不是以对外外包为主。域名系统(DNS)之所以需要多个域名服务器组成的分布式系统,是为了提高系统的可靠性、可扩展性和性能。
如果只有一个域名服务器,当该服务器出现故障或遭到攻击时,整个DNS系统就会瘫痪,导致所有依赖DNS解析的网络服务无法正常工作。而分布式系统可以将域名服务器分散在不同的地理位置和网络环境中,每个域名服务器都可以处理一部分请求,减轻单个服务器的负载,并提高整个系统的可靠性。
另外,由于DNS系统需要支持全球各地的用户,并处理海量的请求,如果只有一个域名服务器,那么该服务器的负载将会非常大,导致性能下降。而分布式系统可以将请求分散到不同的服务器中,减轻单个服务器的负载,并提高整个系统的性能。
此外,DNS系统还需要支持快速的DNS缓存和更新,以确保所有的DNS查询都能够得到及时的响应。通过分布式系统,DNS缓存可以分布在各个域名服务器和DNS缓存服务器中,减轻单个服务器的压力,并提高缓存的命中率和更新效率。
综上所述,由于DNS系统需要支持全球范围的用户和海量的请求,需要具备高可靠性、高可扩展性和高性能的特点,因此采用分布式系统是非常必要和合理的选择。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)