tomcat 7/8 启动非常慢的解决方法

本文介绍两种有效的方法来解决Tomcat启动慢的问题:一种是在Tomcat的启动脚本中配置JRE使用非阻塞的EntropySource;另一种是在JVM环境中修改java.security文件中的随机数源设置。
有两种解决办法:
1)在Tomcat环境中解决

可以通过配置JRE使用非阻塞的Entropy Source。

在catalina.sh中加入这么一行:

JAVA_OPTS="-Djava.security.egd=file:/dev/./urandom"

即可。

加入后再启动Tomcat,整个启动耗时迅速下降。

2)在JVM环境中解决

打开$JAVA_PATH/jre/lib/security/java.security这个文件,找到下面的内容:

securerandom.source=file:/dev/urandom

替换成

securerandom.source=file:/dev/./urandom
在使用 IntelliJ IDEA 社区版通过 Smart Tomcat 插件启动 Spring Boot 项目时,如果遇到启动速度缓的问题,可以尝试以下解决方案: ### 1. **优化 Tomcat 配置** - **调整内存设置**:Tomcat 的默认内存配置可能不足以高效运行 Spring Boot 应用程序。可以通过增加 JVM 内存参数来提升性能,例如 `-Xms512m` 和 `-Xmx1024m`。 - **减少不必要的日志输出**:过多的日志记录会显著影响性能。可以在 `logging.level` 配置中调整日志级别,避免记录调试信息。 ### 2. **禁用热部署(Hot Deployment)** - 热部署功能(如 Spring Boot DevTools)会在代码更改后自动重新加载应用,但这也可能导致启动。可以通过注释掉或移除相关依赖来禁用该功能: ```xml <!-- <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <optional>true</optional> </dependency> --> ``` ### 3. **清理和优化项目依赖** - **检查依赖冲突**:确保项目的 Maven 或 Gradle 配置中没有重复的依赖项。可以使用工具如 Maven Helper 来识别并解决依赖冲突。 - **排除不必要的库**:某些依赖可能对项目功能无实际作用,但会增加类路径的复杂性。可以考虑从 `pom.xml` 中移除这些依赖。 ### 4. **启用 Tomcat 嵌入式模式** - 如果项目本身需要嵌入式的 Tomcat 容器,而不是外部的 Tomcat 实例,则可以直接使用 Spring Boot 的内置 Tomcat 支持。这种方式通常更轻量且启动更快: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> ``` 此外,确保将 `spring-boot-starter-tomcat` 的作用域设置为 `provided`,以避免与外部 Tomcat 冲突 [^2]。 ### 5. **使用轻量级插件** - 某些插件可能会拖 IDEA 的整体性能。建议仅保留必要的插件,并禁用或卸载其他非关键插件。例如,可以优先保留 Smart Tomcat、Spring Boot Assistant 等核心插件,而暂时停用其他不相关的插件 [^3]。 ### 6. **调整 IDEA 缓存** - IDEA 的缓存机制有时会导致性能问题。可以通过清除缓存来改善启动速度: 1. 关闭 IntelliJ IDEA。 2. 手动删除 IDEA 的缓存目录(通常位于用户目录下的 `.IntelliJIdea<版本号>` 文件夹中)。 3. 重新启动 IDEA 并重新加载项目。 ### 7. **优化项目结构** - **减少模块数量**:过多的模块会增加 IDEA 的索引时间和 Tomcat 的部署时间。尽量合并或简化模块结构。 - **使用独立的 Web 模块**:如果项目包含多个子模块,建议将 Web 相关的内容集中在一个模块中,以便 Tomcat 更快地加载。 ### 8. **升级到最新版本** - 确保使用的 IntelliJ IDEA 社区版和 Smart Tomcat 插件均为最新版本。开发者通常会在新版本中修复性能问题并引入优化措施 [^3]。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值