测试重点看这些

  • 吞吐量:找到每个方案的性能临界点
  • 吞吐量和延迟的关系
  • 负载期间节点挂了之后的表现(错误率、延迟变化等)
  • 过滤功能对延迟的影响

k8s

容器时代 (Docker): 容器共享宿主机内核,轻量级(MB 级别),秒级启动。
- 问题来了: 当你有 3 个容器时,你手动用 docker run 就能管理。但当微服务架构普及,你有 1000 个容器 分布在 50 台服务器 上时,谁来决定哪个容器跑在哪台机器?谁来监控它们死没死?谁来做负载均衡?

K8s 就是为了解决这个问题而生的:它是一个容器编排(Orchestration)平台。 K8s 不直接管理容器,而是管理 Pod。被称为“操作系统”——它管理了计算(Pod)、网络(Service/Ingress)、存储(Volume/ConfigMap)以及最重要的生命周期
example:

  • 你给 Auth Service 创建一个 K8s Service 对象,名字叫 auth-svc
  • K8s 会分配一个固定的虚拟 IP 给它。
  • 神奇之处: Order Service 的代码里根本不需要写死 IP,只需要写 http://auth-svc/validate。K8s 内置的 DNS 会自动解析,并把请求负载均衡分发给那 3 个正在运行的 Pod。
    k8s也能控制流量入口,控制服务器的增加和减少。
    方案测试:
  1. 在 Kubernetes (K8s) 中,给 Qdrant、Milvus、Weaviate 等不同的数据库 Pod 设置了相同的 requests (资源预留) 和 limits (资源上限)。
  2. 系统预热,1.把热点数据从磁盘加载到内存里。2.即时编译器把热点代码编译成机器码java.3.连接池填满,防止浪费时间在TCP握手上 可以发少量的请求(比如 10 QPS),持续运行 1-2 分钟。这段时间内的测试数据不记录在最终报告里。
  3. QPS (Queries Per Second): 每秒查询数,爬坡上升