tomcat中间件的默认端口号_Tomcat中间件

tomcat安装:从官网下载tomcat压缩包,然后在指定的目录中进行解压;

安装jdk,并添加jdk环境变量;

272e985ea9811f0f2a2a6fbcddda5be8.png

Tomcat目录:

[weblogic@VM-10-112-178-157 ~]$ ll -h tob-api

总用量 120K

appdir        ------  war包部署位置

bin            -------启动程序,启动相关的内存设置等;

conf            -------端口、解压包路径和解压目录名定义等

lib

LICENSE

logs                -------日志

NOTICE

RELEASE-NOTES

RUNNING.txt

temp                    -------启动时候放置一些临时文档(可删除)

webapps                --------war包解压后的目录

work                    ----------启动后一些参数、环境变量(可删除)

Tomcat配置;

配置主要有两个文件:tomcat/conf/server.xml 文件;

此文件中定义了tomcat的端口信息;并且可以指定war包路径,以及解压war包后在webapps目录下的目录名称;

[weblogic@VM-10-112-178-157 tob-api]$ grep -3 war conf/server.xml

prefix="localhost_access_log." suffix=".log"

pattern="%t ^=^ %{X-FORWARDED-FOR}i ^=^ %a ^=^ %u ^=^ %{User-Agent}i ^=^ %p ^=^ %s ^=^ %b ^=^ %S ^=^ %T ^=^ %D ^=^ %h ^=^ %r ^=^ %U" />

[weblogic@VM-10-112-178-157 tob-api]$其中:path为"/"说明解压后是ROOT目录;docBase指定了war包存放路径和名称;

tomcat/bin/catalina.sh 文件;

文件定义了内存的使用,以及tomcat性能调优;

#!/bin/sh

xms_size='2G'

xmx_size='2G'

tomcat调优:

ENV_DM=`cat ~/.diamond.domain|grep -v "#"`

if [ "${ENV_DM}x" ==  "x" ] || [ "${ENV_DM}x" == "diamond.live.ds.gome.com.cnx" ] || [ "${ENV_DM}x" == "diamond.prelive.ds.gome.com.cnx" ]

then

JAVA_OPTS="$JAVA_OPTS -Dapp.home=${CATALINA_BASE} -server -Xms${xms_size} -Xmx${xmx_size} -Xmn2g -Xss256k -XX:PermSize=128m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:AutoBoxCacheMax=20000 -XX:-OmitStackTraceInFastThrow -XX:ErrorFile=${CATALINA_BASE}/logs/hs_err_%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${CATALINA_BASE}/logs/ -Xloggc:${CATALINA_BASE}/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"

else

JAVA_OPTS="$JAVA_OPTS -Dapp.home=${CATALINA_BASE} -server -Xms${xms_size} -Xmx${xmx_size} -Xmn128m -Xss256k -XX:PermSize=128m -XX:MaxPermSize=512m -Djava.awt.headless=true -Dfile.encoding=utf-8 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=75 -XX:+UseCMSInitiatingOccupancyOnly -XX:AutoBoxCacheMax=20000 -XX:-OmitStackTraceInFastThrow -XX:ErrorFile=${CATALINA_BASE}/logs/hs_err_%p.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${CATALINA_BASE}/logs/ -Xloggc:${CATALINA_BASE}/logs/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps"

fi

jvm堆配置参数

1. -Xms初始堆大小

默认物理内存的1/64(<1GB)

2. -Xmx最大堆大小

默认物理内存的1/4(<1GB),实际中建议不大于4GB

3. 一般建议设置-Xms=-Xmx

好处是避免每次在gc后,调整堆的大小,减少系统内存分配开销

4. 整个堆大小=年轻代大小+年老代大小+持久化大小

jvm新生代(young generation)

1. 新生代=1个eden区+2个Survior区

2. -Xmn 年轻代大小(1.4or lator)

-XX:NewSize,-XX:MaxNewSize(设置年轻代大小(for 1.3/1.4))

默认值大小为整个堆的3/8

3. -XX:NewRatio

年轻代(包含Eden和两个Survivor区)与老年代的比值(除去持久化)

Xms=Xmx并且设置了Xmn的情况下,该参数不需要设置

4. -XX:SurviorRatio

Eden区与Survivor区的大小比值,设置为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10

5. 用来存放JVM刚分配的Java对象

jvm老年代(tenured greneration)

1. 老年代=整个堆-年轻代大小-持久化大小

2. 年轻代中经过垃圾回收没有回收掉的对象被复制到年老代

3. 老年代存储对象比年轻代年龄大的多,而且不发达对象(缓存)

4. 新建的对象也有可能直接进入老年代

4.1、大对象,可通过启动参数设置-XX:PretenureSizeThreshold=1024(单位为字节,默认为0)来代表超过多大时就不再新生代分配,而是直接在老年代分配

4.2、大的数组对象,切数组中无引用外部对象

5. 老年代大小无配置参数

java持久代(perm generation)

1. 持久代=整个堆-年轻代大小-老年代大小

2. -XX:PermSize -XX:MaxPermSize

设置持久代的大小,一般情况推荐把-XX:PermSize设置成XX:MaxPermSize的值为相同的值,因为永久代的调整也会导致堆内存需要触发fgc(Full GC)

3. 存放Class,Method元信息,其大小与项目的规模、类、方法的数量有关。一般设置为128M就够用,设置原则是预留30%的空间

4. 永久代的回收方式

4.1、常量池的常量,无用的类信息,常量的回收很简单,没有引用的就可以被回收

4.2、对无用的类进行回收,必须保证3点:

类的所有实例都已经被回收

加载类的ClassLoader已经被回收

类对象的Class对象没有被引用(既没有通过反射引用该类的方法)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值