【week07】总结
本周主要讲性能测试和性能优化
重点
老师一再强调,性能优化的前提是性能测试,只能拿到性能测试的结果的各项指标才能知道是否需要优化及需要优化的问题。不要拿着锤子找钉子。
内容主要
性能测试的两个视角, 客户视角和客观视角,不同视角来确定是否存在性能问题。
性能测试的各类指标:
响应时间:从发出请求 ,到最后一个字节;反映系统快慢
并发数:系统能够同时处理请求的数目
吞吐量:单位时间内系统处理请求的数量 tps (事务)hps(http) qps (查询) = (1000/响应时间ms)*并发数
各种性能计数器
着重指出 System load=当前正在cpu中执行的线程数+等待执行的线程数
理想应该是cpu核数,表示没有等待的,那么理想的应该是systemload等于核数,如果大于核数表明系统有等待的进程,表示超出了cpu处理能力。
引申出对指标的解读,就是发现性能问题的判断依据。
性能测试的方法:
测试分为几个阶段,性能测试,负载测试,压力测试,稳定性测试
a点为开始测试的点
开始测试时以设计目标为目的进行测试,逐步加大到设计目标的系统负荷。随着系统负荷的增加,响应时间基本不变;吞吐量逐步加大,和系统负荷基本成线性关系。到达b点
达到设计目标后,进行负载测试,继续增加系统负荷,此时响应时间缓慢增加,吞吐量线程或抛物线增加,逐步达到最大吞吐量。到达 c点
之后是压力测试,继续增加系统负荷,响应时间逐步加大,吞吐量缓慢下降,某些系统资源处于不足的情况,继续加大系统负荷,最后导致系统崩溃,系统对请求失去响应,响应时间无穷大,吞吐量为0。到达d点
稳定性测试:就是在某种测试模式下,持续执行一段时间,比如波浪模式等,看系统是否稳定。
那么日常运行是保持在b,c之间的那个点,是由成本来决定。
之后讲解了系统运行的原理,包括cpu,进程,线程,栈等基本概念,了解系统运行原理。
举例来讲:程序在磁盘里是死的,只有load到内存中,被cpu执行,才是活的。
评论 (1 条评论)