# 简介

# 测试工具

根据行为的不同,可以将 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 越低,越有可能在通信过程中丢失数据包或出错。