1. 一般衡量网站性能有哪些指标?
性能指标主要有响应时间,吞吐量,并发量,性能计数器。
1)响应时间
指应用执行一个操作需要的时间,即从发出请求到最后收到响应数据所需要的时间。
系统常用操作响应时间表
操作 | 响应时间 |
打开一个网站 | 几秒 |
数据库查询一条记录(有索引) | 十几毫秒 |
机械磁盘一次寻址定位 | 4毫秒 |
从机械磁盘顺序读取1M数据 | 2毫秒 |
从SSD磁盘顺序读取1M数据 | 0.3毫秒 |
从远程分布式换成Redis读取一个数据 | 0.5毫秒 |
从内存读取1M数据 | 十几微秒 |
Java程序本地方法调用 | 几微秒 |
网络传输2Kb数据 | 1微秒 |
实践中通常采用的办法是重复请求,比如一个请求操作重复执行1万次,测试一万次执行的总响应时间之和,然后除以1万,就得到单次请求的响应时间。
2)吞吐量
指单位时间内系统处理的请求数量,体现系统的整体处理能力。对于网站,可用“请求数/秒”、“页面数/秒”或“访问人数/天”、“处理业务数/小时”等来衡量。重要指标有TPS(每秒处理的事物数)、QPS(每秒查询的请求数)、HPS(每秒HTTP请求数)等。
3)并发量
指系统能够同时处理的请求的数目,这个数字反映了系统的负载性能。对于网站而言,并发数指网站用户同时提交请求的用户数目。
4)性能计数器
描述服务器或操作系统性能的一些数据指标。如System Load、对象与线程数、内存使用、CPU使用、磁盘与网络I/O等使用情况。通过对这些指标设置报警阈值,当监控系统发现性能计数器超过阈值时,就向开发人员和运维报警,及时发现异常并处理。
2. 怎么测试网站性能?
性能测试具体可以细分为性能测试、负载测试、压力测试、稳定性测试。
1)性能测试
以系统设计初期规划的性能指标为预期目标,对系统不断施加压力,验证系统在资源可接受范围内是否能达到预期。
2)负载测试
对系统不断增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值,这时继续对系统施加压力,系统的处理能力不但不会提高,反而会下降。
3)压力测试
超过安全负载的情况下,对系统施加压力,直到系统崩溃或不能再处理任何请求,以此获得系统最大压力承受能力。
4)稳定性测试
被测试系统在特定硬件、软件、网络环境条件下,给系统加载一定业务压力,使系统运行一段较长时间,以此检验系统是否稳定。