1、 性能测试的目的
    
    
    性能测试的目的就是要知道系统的各项性能指标是否能够满足要求,如不能满足要求,则需要找出系统的瓶颈,并进行针对性的优化加强。
   
    
     2、 常用的性能测试工具
    
    
    (1) Apache JMeter
    
    (2) LoadRunner
    
    (3) NeoLoad等等
   
    
     3、 性能测试指标(系统指标)
    
    
    (1) 响应时间、平均响应时间
    
    分别指的是每个请求的响应时间、所有请求的响应时间。响应时间是系统最重要的性能指标,直观的反映了系统的快慢。
    
    (2) 并发请求数
    
    指系统能够同时处理请求的数目,这个数字也反应了系统的负载性。对于网站而言,并发数即网站并发用户数,指同一时间提交请求的用户数目。
    
    网站系统用户数>>网站在线用户数>>网站并发用户数
    
    (3) 吞吐率
    
    单位时间内系统处理的请求数量,体现系统的处理能力。可以用“请求数/秒”来衡量。TPS、HPS、QPS是吞吐量的常用量化指标。
    
    (4) TPS
    
    TPS,TransactionsPerSecond,意思是每秒事务数,一个事务是指一个客户机向服务器发送请求然后服务器做出反应的过程,一个TPS可以包含多个QPS。
    
    (5) QPS
    
    QPS,Queries Per Second,意思是“每秒查询率”,是一台服务器每秒能够响应的查询次数。
   
    
     4、 性能测试方法
    
    
    (1) 性能测试
    
    以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内,是否能达到性能预期。
    
    (2) 负载测试
    
    对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,如某种资源已经呈饱和状态,这时继续对系统施加压力,系统的处理能力不但不能提高,反而会下降。
    
    (3) 压力测试
    
    超过安全负载的情况下,对系统继续施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。
    
    (4) 稳定性测试
    
    被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定的业务压力,使系统运行一段较长时间,以此检测系统是否稳定。
    
    
    
    
     5、 定位系统瓶颈、对应优化方案
    
    
    这需要根据测试结果的数据,并结合系统资源监控的数据进行分析,方可找出系统的瓶颈,需要监控的系统资源如下。
    
    (1) CPU瓶颈
    
    1.优化代码
    
    2. 优化 SQL
    
    3. 做缓存
    
    4. 升级服务器的cpu
    
    5. 分布式,当单机无法满足的时候,可以考虑分服务
    
    (2) 内存瓶颈
    
    1.JVM调优
    
    2. 升级内存等等
    
    (3) 磁盘IO瓶颈
    
    1.做缓存
    
    2. 读写分离
    
    3. 分库(把磁盘IO分散到多台服务器中)
    
    (4) 网络IO瓶颈
    
    1.升级网络带宽
    
    2. 分库(把网络IO分散到多台服务器中)
   
 
