Tomcat 启动命令行参数

本文详细介绍了JVM的各种关键参数配置,包括堆内存设置(Xms/Xmx)、线程栈大小(Xss)、年轻代和年老代配置(XX:NewSize/XX:MaxNewSize)等,特别针对CMS垃圾收集器的使用进行了深入解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

命令行参数参考:http://www.cnblogs.com/redcreen/archive/2011/05/04/2037057.html
CMS参数参考:http://www.blogjava.net/killme2008/archive/2009/09/22/295931.html


Xms:set initial Java heap size,设置JVM初始化堆内存大小,设置虚拟机可用内存堆的初始大小,缺省单位为字节,该大小为 1024 的整数倍并且要大于1MB,可用 k(K)或m(M)为单位来设置较大的内存数。初始堆大小为 2MB。 


Xmx:set maximum Java heap size,设置JVM最大的堆内存大小,设置虚拟机内存堆的最大可用大小,缺省单位为字节。该值必须为 1024 整数倍,并且要大于 2MB。可用 k(K)或 m(M)为单位来设置较大的内存数。缺省堆最大值为 64MB。 


Xss:设置JVM栈内存大小,设置线程栈的大小,缺省单位为字节。与-Xmx 类似,也可用 K 或 M 来设置较大的值。通常,操作系统分配给线程栈的缺省大小为 1MB。 另外也可在 java 中创建线程对象时设置栈的大小,构造函数原型为 Thread(ThreadGroup group, Runnable target, String name, long stackSize)。


XX:PermSize:JVM初始分配的非堆内存


XX:MaxPermSize:JVM最大允许分配的非堆内存,按需分配


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


XX:MaxNewSize:年轻代最大值(for 1.3/1.4)


XX:SurvivorRatio:Eden区与Survivor区的大小比值


XX:+UseParNewGC:设置年轻代为并行收集


XX:ParallelGCThreads:并行收集器的线程数


XX:MaxTenuringThreshold:垃圾(回收对象)最大年龄
如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代. 对于年老代比较多的应用,可以提高效率.如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活 时间,增加在年轻代即被回收的概率
该参数只有在串行GC时才有效.


XX:+DisableExplicitGC:关闭System.gc()


XX:+ScavengeBeforeFullGC:Full GC前调用YGC


XX:SoftRefLRUPolicyMSPerMB:为了避免Perm区满引起的full gc,每兆堆空闲空间中SoftReference的存活时间


XX:-ReduceInitialCardMarks:解决意思GC BUG


XX:+ExplicitGCInvokesConcurrent:当使用CMS收集器时,系统GC将是一件很不幸的事,因为它默认会触发一次Full GC。此参数命令JVM无论什么时候调用系统GC,都执行CMS GC,而不是Full GC;不是触发一个 完全stop-the-world的full GC,而是一次并发GC周期


Xloggc:/data/applogs/heap_trace.txt:设置gclog目录


设置gclog 格式:

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC 


XX:-HeapDumpOnOutOfMemoryError :表示当JVM发生OOM时,自动生成DUMP文件。


XX:HeapDumpPath:dump目录


XX:-OmitStackTraceInFastThrow:禁止jvm性能优化导致频闭异常日志。






CMS相关参数:


XX:+UseConcMarkSweepGC:使用CMS内存收集


XX:+UseCMSInitiatingOccupancyOnly:使用手动定义初始化定义开始CMS收集,禁止hostspot自行触发CMS GC


XX:+UseCMSCompactAtFullCollection :在FULL GC的时候, 对年老代的压缩


XX:+CMSParallelRemarkEnabled:降低标记停顿


XX:CMSFullGCsBeforeCompaction:多少次GC后进行内存压缩,由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理.


XX:CMSInitiatingOccupancyFraction:默认CMS是在tenured generation沾满68%的时候开始进行CMS收集,如果你的年老代增长不是那么快,并且希望降低CMS次数的话,可以适当调高此值.


XX:+CMSClassUnloadingEnabled:为了避免Perm区满引起的full gc,建议开启CMS回收Perm区选项


XX:+CMSPermGenSweepingEnabled:为了避免Perm区满引起的full gc,建议开启CMS回收Perm区选项


XX:CMSInitiatingPermOccupancyFraction:设置Perm Gen使用到达多少比率时触发,同XX:CMSInitiatingOccupancyFraction


CATALINA_OPTS="$CATALINA_OPTS -server -Djava.awt.headless=true -Xms2560m -Xmx2560m -Xss512k -XX:PermSize=128m -XX:MaxPermSize=384m 
-XX:NewSize=1024m -XX:MaxNewSize=1024m -XX:SurvivorRatio=22 -XX:+UseParNewGC -XX:ParallelGCThreads=4 -XX:MaxTenuringThreshold=9 
-XX:+UseConcMarkSweepGC -XX:+DisableExplicitGC -XX:+UseCMSInitiatingOccupancyOnly -XX:+ScavengeBeforeFullGC -XX:+UseCMSCompactAtFullCollection 
-XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=9 -XX:CMSInitiatingOccupancyFraction=60 -XX:+CMSClassUnloadingEnabled 
-XX:SoftRefLRUPolicyMSPerMB=0 -XX:-ReduceInitialCardMarks -XX:+CMSPermGenSweepingEnabled -XX:CMSInitiatingPermOccupancyFraction=70 
-XX:+ExplicitGCInvokesConcurrent -Djava.nio.channels.spi.SelectorProvider=sun.nio.ch.EPollSelectorProvider 
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_HOME%\conf\logging.properties" 
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC 
-Xloggc:/data/applogs/heap_trace.txt -XX:-HeapDumpOnOutOfMemoryError 
-XX:HeapDumpPath=/data/applogs/HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow"
### 启动 Apache Tomcat 的方法 在不同的操作系统中,启动 Apache Tomcat 服务器的方法略有差异。以下是针对 Windows 和 Linux/Unix 系统的具体操作说明。 #### 在 Windows 上启动 Tomcat 对于 Windows 用户,可以通过执行 `startup.bat` 脚本来启动 Tomcat。此脚本通常位于 `$TOMCAT_HOME/bin` 文件夹下[^1]。 运行该文件的方式如下: 1. 打开命令提示符 (Command Prompt),导航到 Tomcat 安装目录下的 `bin` 子目录。 2. 输入以下命令并按回车键: ```cmd startup.bat ``` 这会启动 Tomcat 并打开一个新的窗口显示日志输出[^1]。 #### 在 Linux 或 Unix 系统上启动 Tomcat Linux 和其他类 Unix 操作系统的用户可以使用 `startup.sh` 脚本来启动 Tomcat。同样,这个脚本也位于 `$TOMCAT_HOME/bin` 下[^2]。 要启动 Tomcat,请按照以下方式操作: 1. 使用终端进入 Tomcat 的安装路径中的 `bin` 目录。 2. 运行以下命令来启动服务: ```bash ./startup.sh ``` 上述命令会在前台启动 Tomcat,并将日志信息打印至控制台[^2]。 如果希望后台运行而不阻塞当前 shell 终端,则可以直接调用 catalina.sh 脚本带参数 start 来实现: ```bash ./catalina.sh start ``` #### 验证 Tomcat 是否成功启动 无论在哪种平台上完成启动过程之后,默认情况下可通过浏览器访问地址 http://localhost:8080 来验证是否正常工作。页面应展示默认的 Tomcat 主页[^3]。 ```python import webbrowser def check_tomcat(): url = 'http://localhost:8080' try: response = webbrowser.open(url) if not response: print(f"无法加载 {url}") except Exception as e: print(e) check_tomcat() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值