Tomcat安装与优化
1.安装jdk环境
最新的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 没账号注册一个,很快的
前版本的JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
这里选择Linux64位后缀tar.gz的复制下载链接,在linux服务上wget 下载链接 ,在服务器上解压,配置环境变量vim /etc/profile写在最后面
#/data/java目录是我创建的,把jdk包解压到里面,这个写解压位置的绝对路径 JAVA_HOME=/data/java/jdk的目录名字 CLASSPATH=$JAVA_HOME/lib/ #谨慎,这里PATH写错了会发现命令都得打绝对路径才能用,悲催 PATH=$JAVA_HOME/bin:$PATH export PATH JAVA_HOME CLASSPATH
配置没问题完成保存,source /etc/profile让配置的环境变量生效,这时候可以打命令java -version看看版本,是不是出java version "1.8.0_***",如果是1.6什么的说明没生效,看看解压的路径。
2.安装tomcat
tomcat下载地址:http://mirrors.hust.edu.cn/apache/tomcat 选择tomcat进行下载,我下载的是apache-tomcat-8.5.31.tar.gz
解压后改个名字列如mv apache-tomcat-8.5.31/ test_tocmat
(1)启动测试(测不测都行23333??)
启动前需要更改端口为可用端口,或者要使用的端口,进入到test_tomcat的conf目录vim server.xml更改
#<Server port="8005" shutdown="SHUTDOWN"> 第一个tomcat可以不改,为了方便后续的tomcat,统一进行修改,改为下面的,修改的端口别超过65535,不能已经占用的端口 <Server port="18005" shutdown="SHUTDOWN"> #<Connector port="8080" protocol="HTTP/1.1" 这个8080是访问的地址,改成什么就访问什么地址 # connectionTimeout="20000" # redirectPort="8443" /> <Connector port="12008" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="18443" /> #<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <Connector port="18009" protocol="AJP/1.3" redirectPort="18443" /> #暂时改这么多
进入到test_tomcat的bin目录,./catalina.sh start 启动tocmat,主要是为了测试能不能访问到,防火墙或者selinux有没有允许访问,这个页面有很多当前版本的配置
在test_tomcat目录下的bin下./catalina.sh stop 停止tocmat
(2)tomcat优化
vim /data/test_tomcat/bin/catalina.sh #在没有注释的那一行上面加入一行
JAVA_OPTS="-Dfile.encoding=UTF-8 -server -Djava.awt.headless=true -Xms4096m -Xmx4096m -Xmn640M -XX:NewSize=1024m -XX:MaxNewSize=2048m -XX:MaxTenuringThreshold=15 -XX:NewRatio=2 -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:+DisableExplicitGC"
-Dfile.encoding=UTF-8:强行设置系统文件编码格式为utf-8;
-server:启用 JDK的 server 版本;
-Djava.awt.headless=true:告诉程序没有显示设备键盘和鼠标,但又需要使用他们提供的功能,处理图形时常用,列如用户每次登陆系统是都要生成一张验证码图片时;
-Xms:Java虚拟机初始化时堆的最小内存,此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。
-Xmx:Java虚拟机可使用堆的最大内存,设置为了物理内存的1/4(线上服务器16G内存,注意调整);
-Xmn:年轻代大小;
-XX:NewSize=n:设置新生代的最大值,一般堆区会分为3个区域,新生代、中生代和老年代。我们在程序中通过new关键字新建出来的对象,一般都会分配在新生代中。当新生代满了后,JVM会通过GC来进行一次小规模的垃圾回收,此时新生代中存活的对象会被移动至中生代;
-XX:MaxTenuringThreshold=n:垃圾最大年龄,默认15,如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活 时间,增加在年轻代即被回收的概率该参数只有在串行GC时才有效;
-XX:NewRatio=n:设置年轻代和年老代的比值。如:为2,表示年轻代与年老代比值为1:2,年轻代占整个年轻代年老代和的1/3;
-XX:+AggressiveOpts:加快编译;
-XX:+UseBiasedLocking:锁机制的性能改善;
-XX:+UseConcMarkSweepGC:设置年老代并发收集器,目标是尽量减少应用的暂停时间,减少full gc发生的几率,利用和应用程序线程并发的垃圾回收线程来标记清除年老代。这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除;
-XX:+UseParNewGC:设置年轻代为并行收集。可与CMS收集同时使用。JDK5.0以上,JVM会根据系统配置自行设置,所以无需再设置此值;
-XX:+CMSParallelRemarkEnabled:降低标记停顿;
-XX:LargePageSizeInBytes=128m: 内存页的大小不可设置过大, 会影响Perm的大小;
-XX:+UseFastAccessorMethods:原始类型的快速优化;
-XX:+UseCMSInitiatingOccupancyOnly:使用手动定义初始化定义开始CMS收集;
-XX:+DisableExplicitGC:关闭System.gc()
vim /data/test_tomcat/conf/server.xml
#<Connector port="12008" protocol="HTTP/1.1" # connectionTimeout="20000" # redirectPort="18443" /> <Connector port="12008" protocol="HTTP/1.1" connectionTimeout="20000" maxThreads="500" minSpareThreads="50" maxSpareThreads="300" maxHttpHeaderSize="8192" acceptCount="500" redirectPort="18443" maxPostSize="62914560" />
connectionTimeout:网络连接超时,假设设置为0表示永不超时
maxThreads:最大线程数,大并发请求时,tomcat能创建来处理请求的最大线程数,超过则放入请求队列中进行排队,默认值为200;
acceptCount:当最大线程数(maxThreads)被使用完时,可以放入请求队列排队个数,超过这个数返回connection refused(请求被拒绝),一般设置和maxThreads一样,不过具体需要根据自己的应用实际访问峰值和平均值来权衡,默认值为100;
minSpareThreads:最小空闲线程数,任何情况都会存活的线程数,即便超过了最大空闲时间,也不会被回收,默认值4;
maxSpareThreads:最大空闲线程数,在最大空闲时间(maxIdleTime)内活跃过,此时空闲,当空闲时间大于maxIdleTime则被回收,小则继续存活,等待被调度,默认值50;
maxHttpHeaderSize:http请求头信息的最大程度,超过此长度的部分不予处理;
redirectPort:redirectPort指定服务器正在处理http请求时,收到了一个SSL传输请求后,重定向的端口号;
maxPostSize:最大post大小
3.项目上线
#删除tomcat中webapps下所有文件,谨慎别删根 rm -rf /data/test_tocmat/webapps/* #进入webapps cd /data/test_tocmat/webapps/ #新建ROOT目录,或者将项目war包改为ROOT.war后启动tomcat会自动将war包解压为ROOT目录 mkdir ROOT 或者 mv XX.war ROOT.war #测试自己写一个ROOT里的index.html echo "<h1>Hello World!!</h1>" >> ROOT/index.html
项目已经启动,在test_tomcat目录下tail -f logs/catalina.out查看日志,ctrl+c退出
原文地址:https://www.cnblogs.com/cheng95/p/9183058.html