SGLang本地大模型服务缓存清理
问题背景
在前面的几篇博客文章中,我们介绍了在本地用KTransformer+SGLang部署大模型服务的方法。那么在启动本地大模型服务之后,首先就会占据一定的显存空间。在启动会话之后,尤其是多用户的场景,每个会话都会有一定的显存空间占用。在开启会话之后,即使是后续关闭了这个会话,显存占用还是持久化的保存着。对于本地计算资源比较紧张的用户来说,这也是一种资源的浪费。本文提供一个简单的指令,可以将闲置的缓存释放。
运行指令
核心的缓存释放操作比较简单,直接运行如下指令即可:
$ curl -X POST http://localhost:30000/flush_cache
这个操作不一定只能在本机运行,一般如果是远端会话结束,也可以用这条指令清空缓存,开启一个新的会话。
单用户场景
先看下只有一个用户在使用时,释放缓存的效果。在释放缓存之前,这个sglang任务所占据的显存空间为:27196MiB,而运行上述指令,清空缓存之后,剩下27064MiB的显存空间。由于显卡资源比较有限,没必要让所有的会话都一直用缓存占据着空间,闲时或者有紧急任务穿插的时候,可以释放一部分显存出来用。
$ nvidia-smi
Thu Jul 2 16:00:53 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05 Driver Version: 595.71.05 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5090 D Off | 00000000:01:00.0 Off | N/A |
| 0% 35C P8 12W / 600W | 27220MiB / 32607MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1948 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 3414955 C sglang::scheduler 27196MiB |
+-----------------------------------------------------------------------------------------+
$ curl -X POST http://localhost:30000/flush_cache
Cache flushed.
Please check backend logs for more details. (When there are running or waiting requests, the operation will not be performed.)
$ nvidia-smi
Thu Jul 2 16:00:56 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05 Driver Version: 595.71.05 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5090 D Off | 00000000:01:00.0 Off | N/A |
| 0% 36C P1 59W / 600W | 27088MiB / 32607MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1948 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 3414955 C sglang::scheduler 27064MiB |
+-----------------------------------------------------------------------------------------+
多用户场景
当下版本的KTransformer,相比于旧版本,多出来一个多用户的特性:一个本地模型加载起来之后,支持多路的会话。那么同时也会导致显存空间有更多的占用,用户越多,每个会话的缓存占用也会越大。例如下方案例就是多用户的一个使用场景,在释放缓存之前,其显存占用来到了29564MiB。还是用一样的指令释放缓存之后,显存占用变回了27064MiB。
$ nvidia-smi
Thu Jul 2 16:06:02 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05 Driver Version: 595.71.05 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5090 D Off | 00000000:01:00.0 Off | N/A |
| 0% 38C P1 155W / 600W | 29588MiB / 32607MiB | 54% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1948 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 3414955 C sglang::scheduler 29564MiB |
+-----------------------------------------------------------------------------------------+
$ curl -X POST http://localhost:30000/flush_cache
Cache flushed.
Please check backend logs for more details. (When there are running or waiting requests, the operation will not be performed.)
$ nvidia-smi
Thu Jul 2 16:06:53 2026
+-----------------------------------------------------------------------------------------+
| NVIDIA-SMI 595.71.05 Driver Version: 595.71.05 CUDA Version: 13.2 |
+-----------------------------------------+------------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+========================+======================|
| 0 NVIDIA GeForce RTX 5090 D Off | 00000000:01:00.0 Off | N/A |
| 0% 37C P1 59W / 600W | 27088MiB / 32607MiB | 0% Default |
| | | N/A |
+-----------------------------------------+------------------------+----------------------+
+-----------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=========================================================================================|
| 0 N/A N/A 1948 G /usr/lib/xorg/Xorg 4MiB |
| 0 N/A N/A 3414955 C sglang::scheduler 27064MiB |
+-----------------------------------------------------------------------------------------+
总结概要
本文主要介绍一个在sglang启用本地大模型进行对话之后,远程清除对话缓存的一个指令。可以在闲时或者有紧急任务时,释放出一部分的显存出来作其他用途。
版权声明
本文首发链接为:https://www.cnblogs.com/dechinphy/p/cache-flush.html
作者ID:DechinPhy
更多原著文章:https://www.cnblogs.com/dechinphy/
请博主喝咖啡:https://www.cnblogs.com/dechinphy/gallery/image/379634.html

本文主要介绍一个在sglang启用本地大模型进行对话之后,远程清除对话缓存的一个指令。可以在闲时或者有紧急任务时,释放出一部分的显存出来作其他用途。
浙公网安备 33010602011771号