高并发测试目的
主要测试A800显卡在以下场景下的生成token能力:
- 单卡多卡
- 单卡多服务
- 多卡多服务
- 多并发场景
测试结果
单卡启动1个服务
并发类型 | 并发数量 | 每秒生成tokens |
---|---|---|
多线程 | 5 | 90 |
多线程 | 10 | 76 |
多线程 | 30 | 45 |
多线程 | 50 | 32 |
多线程 | 100 | 23 |
多线程 | 150 | 14 |
多线程 | 200 | 13 |
单卡启动2个服务
并发类型 | 并发数量 | 服务1每秒生成tokens | 服务2每秒生成tokens | 平均每秒生成tokens |
---|---|---|---|---|
多线程 | 5 | 45 | 39 | 43 |
多线程 | 10 | 44 | 40 | 42 |
多线程 | 30 | 33 | 33 | 33 |
多线程 | 50 | 27 | 25 | 26 |
多线程 | 100 | 16 | 15 | 15 |
多线程 | 150 | 12 | 8 | 10 |
多线程 | 200 | 9 | 9 | 9 |
单卡启动3个服务
并发类型 | 并发数量 | 服务1每秒生成tokens | 服务2每秒生成tokens | 服务3每秒生成tokens | 平均每秒生成tokens |
---|---|---|---|---|---|
多线程 | 5 | 45 | 31 | 32 | 36 |
多线程 | 10 | 38 | 30 | 28 | 33 |
多线程 | 30 | 24 | 23 | 22 | 23 |
多线程 | 50 | 18 | 16 | 18 | 17 |
多线程 | 100 | 14 | 14 | 14 | 14 |
多线程 | 150 | 10 | 11 | 9 | 10 |
多线程 | 200 | 6 | 10 | 11 | 9 |
双卡每个卡启动一个服务
并发类型 | 并发数量 | 卡1每秒生成tokens | 卡2每秒生成tokens | 平均每秒生成tokens |
---|---|---|---|---|
多线程 | 5 | 88 | 98 | 92 |
多线程 | 10 | 83 | 78 | 80 |
多线程 | 30 | 73 | 58 | 66 |
多线程 | 50 | 48 | 52 | 50 |
多线程 | 100 | 29 | 29 | 29 |
多线程 | 150 | 28 | 22 | 25 |
多线程 | 200 | 23 | 24 | 23 |
测试结果图
测试结论
-
单张卡启动多个服务的影响:
- 单卡上启动的服务数量对生成 token 的速度有显著影响。随着服务数量增加,平均每秒生成的 tokens 数量逐渐减少。这表明 GPU 资源在单卡多服务场景下的竞争加剧,导致性能下降。
-
不同卡之间的服务启动数量影响:
- 在双卡场景中,每张卡启动一个服务时,生成 token 的速度相对较高且稳定。不同卡之间启动的服务数量对生成 token 速度的影响较小,这表明多卡环境下,负载均衡更为高效。
性能测试及高并发推理调度进程占用资源情况
-
单卡多服务:
- 每张卡最多启动 3 个服务,保持 GPU 内存使用率在 0.25-0.4 之间,确保服务稳定。过多服务会导致资源竞争加剧,影响性能和稳定性。
-
多卡多服务:
- 多卡环境下,不同卡之间的服务启动数量对生成 token 速度影响不大。关键在于确保总的 GPU 内存使用率适当,以避免内存过载和服务崩溃。合理的 GPU 负载均衡和资源分配是提升性能的关键。