tomcat在工作上的用法整理
今天是除夕,团圆饭还有饭后各种零食,吃的饱饱滴,这么撑也早睡不了= =
下面是整理在公司上遇到的tomcat需求用法。
1、tomcat会话超时时间设置(tomcat session)
这服务器的项目都找不到了,以前的笔记随意记下来的,大家将就着看 = =
设置参考文档:https://www.cnblogs.com/jpfss/p/9486851.html
之前有个项目本来是用tomcat跑的,然后设置是基于旧架构。后来换成微服务架构,就是跑一堆jar包,就不需要设置tomcat session了
(1)配置session失效时间为120分钟
修改tomcat配置文件 web.xml
<session-config> <session-timeout>120</session-timeout> ##默认为30分钟 </session-config>
(2)修改tomcat配置文件 server.xml ,单位为秒
2、tomcat启动慢之java配置
修改jdk安全配置文件,假设jdk安装地址在:/usr/local/jdk1.8.0_77/
vim /usr/local/jdk1.8.0_77/jre/lib/security/java.security
securerandom.source=file:/dev/random 修改为: (1)securerandom.source=file:/dev/./random
或者:
(2)securerandom.source=file:/dev/urandom
——》 解决tomcat 启动慢的问题,跟java有关
3、tomcat内存调参
我们搞活动的时候,本来服务器配置为2核8G,然后因为服务器运算,也有可能程序代码写得烂等,导致用户一多,也有可能有不法分子在刷票,活动卡死在页面,不得不升配为4核16G。
然后顺便调了下tomcat内存,原来Xms等默认是2G的,因为升配就可以调大点
修改 ../bin/catalina.sh
# OS specific support. $var _must_ be set to either true or false. export JAVA_OPTS="-server -Xms4096M -Xmx4096M -Xmn768M -Xss512k -XX:+UseBiasedLocking -XX:PermSize=128M -XX:MaxPermSize=4096M -XX:MaxTenuringThreshold=15 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly"
说明:
-Xms:java Heap初始大小。 默认是物理内存的1/64。
-Xmx:java heap最大值。建议均设为物理内存的一半。不可超过物理内存。
-XX:PermSize:设定内存的永久保存区初始大小,缺省值为64M。
-XX:MaxPermSize:设定内存的永久保存区最大 大小,缺省值为64M。
4、tomcat日志切割
也是因为搞活动,然后活动得搞好几天。
tomcat默认日志写在catalina.out文件中,时间长了会写入大量的日志,开发说tomcat默认日志太大,不便于查看排查问题,所以需要分割日志。按照日期生成日志,每天生成一个日志文件,这样就方便查看了。
可以像nginx日志切割那样搞,我这里用的是cronolog 这个工具实现catalina.out按日期输出日志的
(1)安装cronolog
yum install cronolog
[root@gd1214 ~]# which cronolog
/sbin/cronolog
2、修改catalina.sh中的内容
要想分割tomcat的catalina.out,需做如下个工作:
(1)第一步,找到213行
213 if [ -z "$CATALINA_OUT" ] ; then 214 CATALINA_OUT="$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out 215 fi
不改之前长这样:
(2)第二步
注释447行的: touch "$CATALINA_OUT"
(3)第三步
修改为:org.apache.catalina.startup.Bootstrap "$@" start 2>&1
| /usr/sbin/cronolog "$CATALINA_OUT" >> /dev/null &
(4)效果: