Tomcat调优
优化 Tomcat 性能涉及多个方面,包括配置调整、资源管理、连接管理、内存优化、安全配置等
调整线程池:修改 server.xml
中的 Connector 配置,调整 maxThreads
和 minSpareThreads
的值,以适应你的负载需求
<Connector port="8080" protocol="HTTP/1.1"
maxThreads="200"
minSpareThreads="25"
maxConnections="10000"
connectionTimeout="20000"
redirectPort="8443" />
2
3
4
5
6
连接池配置:使用连接池管理数据库连接,如 Apache DBCP 或 HikariCP,并根据需求调整连接池大小
<Resource name="jdbc/MyDB" auth="Container" type="javax.sql.DataSource"
maxActive="100" maxIdle="30" maxWait="10000"
username="dbuser" password="dbpassword"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/mydb"/>
2
3
4
5
内存优化-Session管理:使用基于数据库或外部缓存(如 Redis、Memcached)存储会话,减少内存占用
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore"/>
</Manager>
2
3
4
日志管理:优化日志级别和日志文件滚动策略,避免日志文件过大影响性能
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs" prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
2
3
请描述一个tomcat 部署过程,如何检查tomcat是否启动,如果是war包,不放到webapps目录如何配置
准备 tomcat 对于当前系统版本的应用包,然后下载后解压到对应目录
可以根据需要在 server.xml 中修改相关参数信息,比如 HTTP 应用的端口号
在 bin 下启动tomcat
可以通过 tomcat 在 logs/catalina.out
中的日志来确保 tomcat 的启动成功信息,在开放防火墙后,在浏览器中访问对应的地址可以访问到tomcat 的默认目录
如果 war 包不放在 webapps 目录
1.如果是所有的 war 都不放在 webapps 目录下,需要在 server.xml 中修改 docBase 属性指向的位置
2.如果是某个应用的 war 不需要放在 webapps 下,需要在 conf/Catalina/localhost/
下新建一个和web应用上下文路径同名的 xml 文件,然后在文件中:<Context path="/myapp" docBase="/path/to/myapp"/>
,标识上下文路径和服务器上的真实文件路径
nginx 在负载 tomcat 时,有时会出现 Permission denied ,权限不足的问题,有时是因为 SELinux 阻止了 Nginx 连接到上游服务器,可以临时关闭SELinux进行测试:setenforce 0,如果确认是SELinux问题,可以配置SELinux以允许Nginx进行网络连接:
sudo setsebool -P httpd_can_network_connect 1