学习总结 -- Week 7
性能测试
“性能优化是架构师展示自己技术全面性的时刻“
性能优化应该怎么做?这是本周的课题。当我们谈论性能优化时,我们应该确保有的放矢,从现有系统的性能指标或者新系统的非业务需求入手,切忌空谈。性能测试可以帮助我们了解系统性能指标。
系统性能指标测试方法:
性能测试:通过不断增加并发量,了解系统性能极限。
负载测试:当系统达到性能极限时,继续增大并发量,使某些系统资源被完全用尽,以此测试系统在高负载状态下的表现。
压力测试:在高负载状态下继续增大并发压力,使系统崩溃或者不再处理任何请求,测试系统的最大承载能力。
稳定性测试:在特定硬件,网络或软件条件下,给系统施加一定压力,观察较长的一段时间,已确定系统是否稳定。
性能指标
响应时间:客户端从发出请求到收到响应所需时间。
并发数:系统可以同时处理的请求数量。
吞吐量:单位时间内系统可以处理的请求数。吞吐量 = 响应时间 * 并发数
TPS 每秒事物数
QPS 每秒查询数
性能计数器:CPU,网络带宽使用,内存占用等服务器端系统指标。
性能测试方法
除了自己亲手写脚本(不推荐),也有很多成熟的性能测试软件可供选择,比如 JMeter,Apache ab 等。此处不再赘诉。
性能优化
性能优化的一般方法:
性能测试 -> 指标分析 -> 架构与代码分析 -> 架构与代码优化 -> 性能验证测试
性能优化的分层思想:
机房与骨干网络优化:专线网络,CDN 等。
服务器与硬件性能优化:升级 CPU,磁盘,内存,网卡等。
操作系统性能优化:
虚拟机性能优化
基础组件性能优化:升级 Web 服务器,数据库等。
软件架构性能优化:缓存,异步与集群的应用。
软件代码性能优化:并发编程,异步编程,改进数据结构等。
此外,本周还详细介绍了操作系统的一些核心概念,如进程,线程,锁机制,文件系统等,这些知识都对 trouble shooting 和改进性能有重要影响。这些都是计算机科学专业等基础知识,不再赘诉。
版权声明: 本文为 InfoQ 作者【吴炳华】的原创文章。
原文链接:【http://xie.infoq.cn/article/288c64a1ecf6482064b9b72ce】。文章转载请联系作者。
评论