vllm [特性]:添加 num_requests_preempted 指标

ekqde3dh  于 3个月前  发布在  其他
关注(0)|答案(1)|浏览(29)

🚀 功能、动机和介绍

有一些指标可以让我们了解当前正在运行和等待的请求数量:num_requests_runningnum_requests_waiting。但是,仅凭这些指标无法了解请求是否被过度利用GPU。
新提出的指标 num_requests_preempted 可以反映出抢占和等待执行的请求数量,从而提供关于请求被过度利用的信息。这使得高级调度器能够避免向过度利用的GPU添加新的请求。

替代方案

  • 无响应*

附加背景信息

from openai import OpenAI
import threading
client = OpenAI(
    base_url="http://localhost:8000/v1",
    api_key="token-abc123",
)

def query():
    client.completions.create(
    model="facebook/opt-125m",
    prompt = "Sachin Tendulkar is",
    max_tokens=2040,
    n=1
    )

threads = []
for i in range(1000):
    thread = threading.Thread(target=query)
    threads.append(thread)
    thread.start()

for thread in threads:
    thread.join()

我在一台使用命令 python -m vllm.entrypoints.openai.api_server 启动的vLLM服务器上运行了上述脚本;以下是我的观察结果:

观察1

一旦执行查询,num_requests_running 就达到了256。此时,gpu_cache_usage_perc 为6%。

观察2

过一段时间后,gpu_cache_usage_perc 飙升至99%。

观察3

逐渐地,num_requests_running 降至100%,而gpu_cache_usage_perc 仍保持在99%范围内。

观察4

逐渐地,num_requests_running 上升到256,而gpu_cache_usage_perc 仍保持在99%范围内。
观察3和观察4重复进行,直到所有请求完成。为了理解请求是否被过度利用,需要将指标num_requests_runninggpu_cache_usage_perc 进行相关性分析。如果能提供 num_requests_preempted 作为直接衡量过度利用的指标,那就太好了。

yb3bgrhw

yb3bgrhw1#

可能与 #5041 中的 request_with_evicted_tokenstotal_evicted_tokens 有关。

相关问题