[特殊字符] 正常部署 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!**


相关推荐
weixin_408717772 小时前
Go语言怎么编译Linux程序_Go语言编译Linux可执行文件教程【避坑】
jvm·数据库·python
麻辣璐璐2 小时前
EditText属性运用之适配RTL语言和LTR语言的输入习惯
android·xml·java·开发语言·安卓
2501_944934733 小时前
财务岗位如何在工作中提升数据分析能力?从财务分析到经营分析这样练
python·信息可视化·数据分析
2301_803554523 小时前
C++ 并发核心:std::promise、std::future、std::async 超详细全解
开发语言·c++
2401_865439633 小时前
CSS怎么在flex布局中实现项目均分间距_设置justify-content space-evenly
jvm·数据库·python
m0_493934533 小时前
CSS如何实现输入框禁用样式_使用-disabled伪类设定
jvm·数据库·python
俺不要写代码3 小时前
线程启动、结束,创建线程多法、join,detach,线程的移动语义
服务器·开发语言·网络·c++
雾岛听蓝3 小时前
Qt Widget控件属性详解
开发语言·经验分享·笔记·qt
m0_716430073 小时前
如何用 classList.toggle 实现侧边栏菜单的点击展开与收起
jvm·数据库·python
Destiny_where3 小时前
Langgraph基础(4)-中断interrupt.实现图执行的动态暂停与外部交互
人工智能·python·langchain·langgraph