Centos下,tomcat项目部署总结

一、说明

系统版本采用Centos7,Tomcat版本采用8.5,JDK版本采用1.8;

服务安装,JDK设置,tomcat优化,以及常见问题解决

二、服务安装

1、JDK安装

本次使用 jdk-8u181-linux-x64.rpm 安装包,使用rpm -ivh jdk-8u181-linux-x64.rpm一键安装;

2、服务器时区设置

ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime 

3、tomcat服务安装

本次使用apache-tomcat-8.5.41.tar.gz

在合适位置解压,tar -xvf apache-tomcat-8.5.41.tar.gz

cd apache-tomcat-8.5.41/bin

pwd获取当前目录路径,例如:/home/tomcat/bin

cd /usr/lib/systemd/system,进入系统服务目录

touch tomcat.service,新建tomcat服务文件

vi tomcat.service 填写内容如下:

[Unit]
Description=关于tomcat的服务描述
After=network.target
 
[Service]
Type=forking
ExecStart=/home/tomcat/bin/startup.sh
ExecReload=
ExecStop=/home/tomcat/bin/shutdown.sh
PrivateTmp=true

 
[Install]
WantedBy=multi-user.target

保存退出:wq!

重载系统服务:systemctl daemon-reload

开机自启:systemctl enable tomcat.service

取消开机自启:systemctl disabled tomcat.service

重启服务:systemctl restart tomcat.service

停止服务:systemctl stop tomcat.service

三、系统级优化

主要是系统高并发优化

系统内核优化

# sysctl settings are defined through files in
# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.
#
# Vendors settings live in /usr/lib/sysctl.d/.
# To override a whole file, create a new file with the same in
# /etc/sysctl.d/ and put new settings there. To override
# only specific settings, add a file with a lexically later
# name in /etc/sysctl.d/ and put new settings there.
#
# For more information, see sysctl.conf(5) and sysctl.d(5).

#客户端30秒未响应,关掉连接
net.ipv4.tcp_fin_timeout=30
#表示SYN队列的长度,等待连接的网络连接数。 
net.ipv4.tcp_max_syn_backlog=20480
#表示开启SYN Cookies。当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击,默认为0,表示关闭;
net.ipv4.tcp_syncookies=1
#表示开启重用。允许将TIME-WAIT sockets重新用于新的TCP连接,默认为0,表示关闭;
net.ipv4.tcp_tw_reuse=1
#表示开启TCP连接中TIME-WAIT sockets的快速回收,默认为0,表示关闭;
net.ipv4.tcp_tw_recycle=1
#表示当keepalive起用的时候,TCP发送keepalive消息的频度。缺省是2小时,改为20分钟
net.ipv4.tcp_keepalive_time=1200
#表示系统同时保持TIME_WAIT的最大数量,如果超过这个数字,TIME_WAIT将立刻被清除并打印警告信息
net.ipv4.tcp_max_tw_buckets=6000
#每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。
net.core.netdev_max_backlog=32768
net.core.somaxconn=32768
net.core.wmem_default=8388608
net.core.rmem_default=8388608
net.ipv4.tcp_synack_retries=2
net.ipv4.tcp_syn_retries=2

立即生效:/sbin/sysctl -p

系统最大连接数优化

查看当前系统最大连接数:ulimit -n

编辑:vi /etc/security/limits.conf 

增加下列内容:

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

编辑:vi /etc/pam.d/login

增加下列内容:

session  required  pam_limits.so 

保存,重启生效

tomcat优化

tomcat堆栈优化

修改tomcat bin目录中catalina.sh,

增加如下内容:

JAVA_OPTS="-Xms2048m -Xmx8000m -XX:PermSize=256m -XX:MaxPermSize=2000m"
-Djava.security.egd=file:/dev/./urandom

修改tomcat conf目录中server.xml

修改Connector标签,修改内容如下

 <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" disableUploadTimeout="true" maxHttpHeaderSize="8192" maxThreads="5000"
      minSpareThreads="1000" maxSpareThreads="2000" enableLookups="false" acceptCount="5000" redirectPort="8043" compression="on"
      compressionMinSize="50" noCompressionUserAgents="gozilla, traviata" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"/>

四、一些常见bug

tomcat启动慢

tomcat每次启动时间很长,经常性长达10几分钟,这是因为centos熵池中随机数生出随机数时卡住,导致启动慢

推荐使用安装rngd服务,增加熵池

yum install rng-tools
systemctl start rngd

tomcat在高并发是出现too many open files

出现这个问题的原因是因为 tomcat  默认设置文件打开数为 4096(不管系统最大连接数设置多少)

修改vi /usr/lib/systemd/system/tomcat.service

在 [Service] 中添加 下列内容

LimitNOFILE=1048576
LimitNPROC=1048576

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

都是小孩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值