zoukankan      html  css  js  c++  java
  • 从飞信案例看即时通讯海量并发用户系统压力性能测试

    2010/03/08

      海量并发用户系统性能测试的重要性不用多说,对这类系统必须进行严格的性能测试。类似飞信这样的系统,无论是用户规模还是业务的复杂度,在国内都屈指可数。自2006年开始的连续3年时间内,中国移动飞信系统进行了连续三期的性能测试服务。

      一期:10万用户同时在线

      飞信系统是中国移动推出的“综合通信服务”,融合了语音、GPRS、短信等多种通信方式,实现了互联网和移动网间的无缝通信服务。从2006年飞信推出第一个版本开始,其用户发展速度之快之猛就大大超出了最初的预计。在上线后不到半年的时间内,飞信系统与网络就经历了多次的扩容升级。现有的系统架构究竟能承载多少用户、升级的空间到底有多大是中国移动对飞信系统最为关心的问题。因此,中国移动亟需对现有系统架构进行一次容量及可扩展性的全面评估测试。

      基于以上背景,中国移动启动了飞信系统一期性能测试项目,目标是验证现有生产系统的单POOL处理能力是否能支撑10万用户同时在线访问,以及POOL内可扩展策略是否有效、POOL间扩展策略是否有效以及GlobalService的最大处理能力等。从技术角度来说,当时有三大难题摆在测试团队面前:

      第一,用户行为分析、系统数据分析难度大,业界当时也没有可参考的成熟业务模型,因此如何建立一个有效的尽可能接近真实的业务模型是该项目最大的难点之一;

      第二,模拟并发规模过大,用户要求实现10万用户的同时在线访问,而现有的测试工具甚至无法实现两万用户同时在线访问,而且由于用户系统采用了异步通信方式,模拟并发过程中如何保证系统的稳定性也是一个高难度的课题;

      第三,由于数据规模庞大,数据准备亦成为当时项目的一大难题。

      从IT部门自身的业务管理、IT治理结构两个方面全面支持CIO的重点工作,并提出以咨询为引导、产品和解决方案为依托的全面质量测试服务。200多名自有专业工程师,多年服务金融、电信及大型企业的IT系统建设及运维经验,使神州数码成为业界惟一的完整测试中心解决方案提供商。

      项目技术攻关的关键时期,正值春节临近。除夕夜凌晨四点,中国移动领导值班时发现工程师正在全神贯注地调试测试脚本。正是靠这样刻苦钻研的精神和团队的集体智慧,测试组一举攻克了10万以上用户同时在线访问的模拟技术。其他相关难题也先后被项目组一一攻克,项目如期顺利完成。

      二期:项目进度空前紧张

      第一期测试完成后,中国移动认识到现有的生产系统架构难以在可控制的成本下满足用户数量飞速增长的需求,开始寻找全新的系统架构来替换现有系统,最后锁定了两套不同的备选系统。移动希望确认备选系统是否能满足当前及未来可能的性能需求,并进行两套系统之间的性能优劣对比。基于一期的圆满服务,中国移动二期继续选择由神州数码来完成这个项目。尽管有了一期的成功经验,二期项目依然有不少新的挑战:

    模拟并发规模同样非常大,要求实现10万用户的同时在线模拟,而且两套系统的通信机制各不相同,需要同时开发两套不同的测试脚本来分别模拟10万用户的在线访问;

    用户模型构建复杂,要准备两套不同的测试环境,数据准备工作更大更复杂,而项目又要求在一个月内完成测试任务,时间非常紧张,因此脚本开发的难度不亚于第一期。

      项目的挑战很大,在项目实施过程中又由于某些原因致使计划生变,需要提前半个月完成测试工作,在技术难度与时间进度的双重压力下,工程师放弃了所有的周末,测试执行期间每天都工作到深夜十二点甚至凌晨两点以后,最终提前完成了测试工作。

      三期:上百G数据加大测试难度

      飞信项目第三期发生在新的系统替换现有生产系统的割接上线前,中国移动希望能对整个系统进行一次全面的总体验收测试,以确认系统上线后能正常运转并且能支撑未来半年的用户增长。项目目标涵盖了手机客户端的功能测试、协议测试以及容量测试三大部分,项目所面临的挑战远远超出了前两期:

      1.容量测试要求实现200万用户同时上线访问的模拟,这种规模的容量测试在国内是首次,在国际上也非常罕见,而且相对于前两期,这一次的容量测试中包含的业务种类增加了数倍,且包含两种不同协议,用户交互过程更加复杂,脚本开发的总体技术难度极高;

      2.容量测试中,海量的数据准备、数据监控、数据分析工作,使得测试执行过程的控制以及最终测试结果的分析非常复杂,尤其是性能监控的原始数据量超过上百G;

      3.大规模的协议验收测试,没有可参考的成熟模式,而且在不到两个月的时间内要完成5种协议、近百种业务的协议测试,同时要求测试脚本具有通用性、易用性、可重用性,不仅有很高的技术门槛,而且在任务分解、团结协作方面也提出了很高的要求。

      在这样的情况下,团队所有的工程师团结努力,尽管期间测试需求变化较大,最终仍然按客户的要求按时完成了所有任务。

      三期飞信项目的目标各不相同,都存在相当的技术难点,其中诸如海量并发用户同时在线访问的模拟技术、大规模短时间内的协议验收测试、上百G仿真业务数据的准备与分析等一些技术难题的解决在国内都非常罕见,部分技术难题更是独此一家,性能测试服务团队凭借强大的技术实力和积极认真的工作态度确保了项目的成功。

     
  • 相关阅读:
    查看某个进程PID对应的文件句柄数量,查看某个进程当前使用的文件句柄数量
    Ubuntu16.04下KeepAlived+Nginx 布署
    Nginx+keepalived 高可用双机热备(主从模式/双主模式)
    LVS+KeepAlived+Nginx高可用实现方案
    golang 日志模块(log)
    redcon, Redis兼容的服务器框架
    Python进阶---python strip() split()函数实战(转)
    批量部署 自动化之
    malloc、calloc、realloc的区别(转)
    随机抽样一致性算法(RANSAC)
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13318578.html
Copyright © 2011-2022 走看看