在 Debian 上运行 Swagger(通常指 Swagger Editor / Swagger UI / Swagger Codegen,或基于 Node 的 swagger 服务)时,减少内存占用可以从运行方式、配置、依赖和服务拆分几个层面来做。下面按常见场景说明。
不同组件内存差异很大:
| 组件 | 常见内存问题 |
|---|---|
| Swagger Editor (Node) | 前端 + Node 服务,内存较高 |
| Swagger UI | 纯静态,最省内存 |
| Swagger Codegen | JVM,内存占用大 |
| springfox / springdoc | Spring 应用内嵌 |
最省内存方案:用 Swagger UI(静态)代替 Editor
apt update
apt install nginx
wget https://github.com/swagger-api/swagger-ui/archive/refs/tags/v5.x.zip
unzip v5.x.zip
cp -r swagger-ui-5.x/dist /var/www/html/swagger
编辑:
/var/www/html/swagger/swagger-initializer.js
改为:
url: "/swagger.json"
✅ 优点:
node --max-old-space-size=256 editor.js
或 Docker:
docker run -m 256m swaggerapi/swagger-editor
编辑 config.js:
window.swaggerEditorConfig = {
useBackendForCache: false,
modelPropertyMapper: false
}
export JAVA_OPTS="-Xms64m -Xmx256m"
java $JAVA_OPTS -jar swagger-codegen-cli.jar
-i api.yaml -l spring -o out --model-only
避免全量生成。
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>
springdoc:
api-docs:
enabled: false
需要时再开。
sysctl vm.swappiness=10
如果你目标是“最少内存”:
-Xmx如果你能告诉我:
我可以直接给你一份最小内存运行配置。