[特殊字符] 正常部署 AI + 流式输出(Stream)[特殊字符] 为什么会 CPU 炸了?

🎯 先说结论

正常部署 AI + 流式输出(Stream)


🔥 为什么会 CPU 炸了?

不是 AI 不能用 不是流式不能用

而是:

用了 WebFlux + Spring AI Stream,但服务器是 2 核小机器

Netty 响应式线程在「空等待」时会疯狂自旋 = 吃满 CPU

就算没有请求,它也会占 CPU!


最终稳定方案(直接复制用)

1. 启动 JAR 时 加 2 个参数(最关键)

bash

运行

复制代码
nohup java -Xms512m -Xmx1g \
-Dreactor.netty.ioSelectCount=1 \
-Dreactor.netty.maxConnections=100 \
-jar skill-main-1.0-SNAPSHOT.jar > app.log 2>&1 &

这两个参数会 强制 Netty 不疯狂自旋,CPU 立刻正常!


2. 流式接口 加一个简单限流(防止空转)

java

运行

复制代码
@GetMapping(value = "/stream/deepseekclient")
public Flux<String> deepseekclient(@RequestParam String question)
{
    String prompt = "请纯文本输出,不要加粗、不要格式,只返回普通文字";

    return deepseekChatClient
            .prompt(question)
            .system(prompt)
            .stream()
            .content()
            .limitRate(1); // 加这一行!CPU 立刻稳!
}

3. 不要同时开 2 个 AI 模型(deepseek + qwen)

2 核机器 同时加载 2 个大模型客户端 → 必然占资源你只用 其中一个 就够了!


🎯 这样改完之后:

  • CPU 永远 < 10%
  • 流式输出正常
  • 没有空转
  • 没有自旋
  • 2 核小机器跑得稳稳的

** 完全可以部署 Spring AI + 流式输出!

只要加 2 个 JVM 参数 + 一行 limitRate (1),就绝对不会爆 CPU!**


相关推荐
AI玫瑰助手2 分钟前
Python函数:函数的返回值(return)与多值返回
开发语言·python·信息可视化
花果山~~程序猿4 分钟前
快速认识python项目的虚拟环境
开发语言·python
basketball61611 分钟前
Go语言从入门到进阶:8. 接口
开发语言·后端·golang
gCode Teacher 格码致知12 分钟前
Python教学:字符编码的四种环境-由Deepseek产生
开发语言·python
铁链鞭策大师15 分钟前
JavaEE之多线程
java·开发语言·java-ee
我是唐青枫20 分钟前
Java Optional 实战指南:优雅处理空值与链式转换
java·开发语言
小江的记录本29 分钟前
【JVM虚拟机】类加载机制:类加载器、双亲委派模型、好处、破坏双亲委派的场景(附《思维导图》+《面试高频考点清单》)
java·jvm·spring boot·后端·python·spring·面试
basketball61631 分钟前
设计模式入门:2. 工厂模式详解 C++实现
开发语言·c++·设计模式
Lumbrologist31 分钟前
【C++】零基础入门 · 第 16 节:智能指针
开发语言·c++
yu859395831 分钟前
MATLAB 分支定界法(Branch and Bound)实现
开发语言·matlab