# 简介
# 测试工具
根据行为的不同,可以将 Linux 的测试工具分为两类:
- 被动监控工具
- :用于监控系统的一些指标,比如 CPU 使用率、内存使用率、磁盘 IO、网络 IO 。
- 根据是否变化,对系统指标分类:
- 静态指标:比如内存容量、磁盘容量,一般只需查看一次。
- 动态指标:比如磁盘读写速度、网卡收发速度,一般需要定期监控一次。
- 建议先用 top、vmstat、sar 等命令同时监控系统多方面的指标,从而知道哪些资源用的多,哪些资源用得少。然后用其它命令具体分析。
- 除了查看监控指标,还应该查看日志是否报错。
- 主动测试工具
- :用于实施某种行为,故意增加系统的负载。
- 例如发送大量 HTTP 请求,从而测试网络性能。
- 测试工具一般会运行一段时间,然后显示测试结果。也可同时使用其它工具,监控动态指标。
# 性能指标
# TCP/UDP
- 接收速度、发送速度
- 带宽 :网络的实际最大传输速率,由网卡硬件、网络链路决定。
- 吞吐量 :没有丢包时的最大传输速率。吞吐量/带宽就是该网络链路的实际使用率。
- 接收包速、发送包速
- pps :每秒收发的数据包数(packet per second),一般是指 TCP/UDP 包。 pps 主要受到网络带宽、从网卡到 CPU 收发网络包的速度影响。 采用最小的以太网帧(64 Bytes)、UDP 包(因为无需连接),可以测试出一个主机的最大收发 pps 。
- 丢包率
- 重传率:重新传输的数据包的百分比。
- 通信延迟
- 并发连接数
# 应用层
- 吞吐量(throughput)
- :服务器在单位时间内成功处理的请求数。
- 评价一个服务器的吞吐量时,通常需要测量它的 QPS、TPS 的最大值。
- QPS(Queries Per Second)
- :服务器平均每秒成功处理的请求数。
- TPS(Transactions Per Second)
- :服务器每秒成功处理的事务数。
- 例如用户在网站上执行一个操作时,可能需要调用服务器的多个 API 。此时 TPS 是统计用户操作的次数,而 QPS 是统计 API 被调用的次数。
- 并发数(concurrency)
- :服务器同时处理的请求数。
- 假设一个服务器同时最多处理 100 个查询请求,平均每个请求的响应时间为 100ms 。则并发数为 100 ,QPS 为 10000 。
- 响应时间
- :服务器处理每个请求时,要经过多久才返回 HTTP 响应给客户端。
- QoS(Quality of Service ,服务质量)
- 衡量服务质量的好坏时,需要综合考虑成功率、响应速度、并发量等指标。
- 比如通信线路的 QoS 越低,越有可能在通信过程中丢失数据包或出错。