Linux 下 Swagger 卡顿/慢通常不是单一原因,而是网络、系统资源、容器、JVM/运行环境、或 Swagger 自身配置共同作用的结果。下面按出现频率给你一个排查清单,并给出对应解决方案。
现象:
常见原因:
✅ 解决方案:
# 检查 DNS
cat /etc/resolv.conf
# 换为国内 DNS
nameserver 223.5.5.5
nameserver 114.114.114.114
或使用本地 Swagger UI(最关键):
swagger-ui 包放到本地 /static现象:
常见原因:
✅ 解决方案(Spring Boot 示例):
@Bean
public Docket api() {
return new Docket(DocumentationType.SWAGGER_2)
.select()
.apis(RequestHandlerSelectors.basePackage("com.xxx.controller"))
.paths(PathSelectors.any())
.build();
}
✅ 或排除无用接口:
.paths(PathSelectors.ant("/api/**"))
现象:
✅ 检查:
top
free -h
✅ 解决:
现象:
常见原因:
✅ 解决:
docker run -m 2g --cpus=2 ...
旧版本性能差。
✅ 推荐版本:
<swagger.version>3.0.0</swagger.version>
或迁移到: ✅ springdoc-openapi(更快)
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
<version>2.x</version>
</dependency>
访问:
/v3/api-docs
/swagger-ui.html
现象:
✅ 解决:
ulimit -n
✅ 调大:
ulimit -n 65535
iostat -x 1
如果 %util 长期 100% → 磁盘瓶颈
✅ 按这个顺序排查:
你可以直接贴出:
我可以给你一个精确到配置级别的解决方案。