您的位置:首页 > 运维架构 > Tomcat

Linux下Tomcat 8 常用命令和优化

2017-04-01 10:51 375 查看

1.常用命令

启动Tomcat服务,有三种方式:

(1)直接启动startup.sh

[root@node3 apache-tomcat-8.5.9]# bin/startup.sh
Using CATALINA_BASE:   /opt/apache-tomcat-8.5.9
Using CATALINA_HOME:   /opt/apache-tomcat-8.5.9
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.9/temp
Using JRE_HOME:        /usr/jdk1.8.0_101
Using CLASSPATH:       /opt/apache-tomcat-8.5.9/bin/bootstrap.jar:/opt/apache-tomcat-8.5.9/bin/tomcat-juli.jar
Tomcat started.


(2) 作为服务启动 startup.sh &

[root@node3 apache-tomcat-8.5.9]# bin/startup.sh &
[1] 26387
Using CATALINA_BASE:   /opt/apache-tomcat-8.5.9
Using CATALINA_HOME:   /opt/apache-tomcat-8.5.9
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.9/temp
Using JRE_HOME:        /usr/jdk1.8.0_101
Using CLASSPATH:       /opt/apache-tomcat-8.5.9/bin/bootstrap.jar:/opt/apache-tomcat-8.5.9/bin/tomcat-juli.jar
Tomcat started.
[root@node3 apache-tomcat-8.5.9]#


startup.sh &
启动方式可以作为linux服务一直运行

(3)控制台动态输出方式启动 catalina.sh run

[root@node3 apache-tomcat-8.5.9]# bin/catalina.sh run
Using CATALINA_BASE:   /opt/apache-tomcat-8.5.9
Using CATALINA_HOME:   /opt/apache-tomcat-8.5.9
Using CATALINA_TMPDIR: /opt/apache-tomcat-8.5.9/temp
Using JRE_HOME:        /usr/jdk1.8.0_101
Using CLASSPATH:       /opt/apache-tomcat-8.5.9/bin/bootstrap.jar:/opt/apache-tomcat-8.5.9/bin/tomcat-juli.jar
23-Jun-2017 08:38:51.451 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:        Apache Tomcat/8.5.9
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:          Dec 5 2016 20:18:12 UTC
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:         8.5.9.0
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:               Linux
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:            3.10.0-327.el7.x86_64
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:          amd64
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:             /usr/jdk1.8.0_101/jre
23-Jun-2017 08:38:51.456 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:           1.8.0_101-b13
23-Jun-2017 08:38:51.457 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:            Oracle Corporation
23-Jun-2017 08:38:51.457 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:         /opt/apache-tomcat-8.5.9
23-Jun-2017 08:38:51.457 信息 [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:         /opt/apache-tomcat-8.5.9
......(以下内容省略)


该命令可以动态查看tomcat控制台输出信息,按Ctrl+C后退出并关闭服务

2. Tomcat优化

shutdown.sh

可能shutdown.sh 无法停止 tomcat,可以修改其配置

修改shutdown.sh的最后这一行

[root@webServer bin]# vim shutdown.sh
#exec "$PRGDIR"/"$EXECUTABLE" stop "$@"
exec "$PRGDIR"/"$EXECUTABLE" stop 10 -force


server.xml

编辑配置文件

[root@webServer conf]# vim server.xml
<Connector port="7080"
protocol="org.apache.coyote.http11.Http11Nio2Protocol"
enableLookups="false"
connectionTimeout="20000"
redirectPort="8443" />


protocol,Tomcat 8 设置 nio2 更好:org.apache.coyote.http11.Http11Nio2Protocol

enableLookups,禁用DNS查询

CATALINA_OPTS

[root@webServer ~]# vim /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_112
export PATH=$PATH:$JAVA_HOME/bin

export CATALINA_HOME= /opt/apache-tomcat-8.5.9
# 下面参数根据自己机子内存进行配置
# CATALINA_OPTS 只配置给 Tomcat 的 VM
# JAVA_OPTS 配置给所有调用 Java 的程序的 VM
# 有 CATALINA_OPTS 的时候 Tomcat 优先读这个
# 其中:-server 表示启用 jdk 的 server 版,一定要作为第一个参数,在多个 CPU 时性能佳;
export CATALINA_OPTS="-server -Xms2048m -Xmx4096m -XX:PermSize=1024m -XX:MaxPermSize=1024m"

# 设置生成的 PID 位置
export CATALINA_PID=$CATALINA_HOME/catalina.pid


-Xms:初始堆大小

-Xmx:最大堆大小

-Xmn:最小值

PermSize 永久保存区域初始大小

MaxPermSize 永久保存区域初始最大值

[root@webServer ~]# source /etc/profile

3.日志目录

运行一段时间后,Tomcat的日志catalina.out文件可能高达几百个G,直接把操作系统撑崩溃了。

修改Tomcat日志输出目录 /var/log/tomcat(/var目录单独挂载独立磁盘)

[root@hadron conf]# pwd
/opt/apache-tomcat-8.0.23/conf
[root@hadron conf]# vi logging.properties
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0 #
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

##################################################################
#
# 20170-05-25 chengyuqiang
#
##################################################################

# 可配置项(5类日志):catalina、localhost、manager、admin、host-manager
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

#日志输出为输出到文件和输出到控制台
.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

############################################################
# Handler specific properties.
# Describes specific configuration info for Handlers.
############################################################

#日志输出级别:SEVERE (最高级别) > WARNING > INFO > CONFIG > FINE > FINER(精心) > FINEST (所有内容,最低级别)

#配置文件使catalina日志输出级别为FINE
1catalina.org.apache.juli.AsyncFileHandler.level = FINE
#修改日志输出目录。若无这样的路径,将会自动生成对应文件夹。
1catalina.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
#catalina日志前缀为catalina
1catalina.org.apache.juli.AsyncFileHandler.prefix = catalina.

2localhost.org.apache.juli.AsyncFileHandler.level = FINE
2localhost.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

3manager.org.apache.juli.AsyncFileHandler.level = FINE
3manager.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
3manager.org.apache.juli.AsyncFileHandler.prefix = manager.

4host-manager.org.apache.juli.AsyncFileHandler.level = FINE
4host-manager.org.apache.juli.AsyncFileHandler.directory = /var/log/tomcat
4host-manager.org.apache.juli.AsyncFileHandler.prefix = host-manager.

java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = org.apache.juli.OneLineFormatter

############################################################
# Facility specific properties.
# Provides extra control for each logger.
############################################################

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager].handlers = 3manager.org.apache.juli.AsyncFileHandler

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager].handlers = 4host-manager.org.apache.juli.AsyncFileHandler

# For example, set the org.apache.catalina.util.LifecycleBase logger to log
# each component that extends LifecycleBase changing state:
#org.apache.catalina.util.LifecycleBase.level = FINE

# To see debug messages in TldLocationsCache, uncomment the following line:
#org.apache.jasper.compiler.TldLocationsCache.level = FINE
[root@nb0 conf]#


修改apache-tomcat-8.0.23/bin/catalina.sh

[root@hadron bin]# pwd
/opt/apache-tomcat-8.0.23/bin
[root@hadron bin]# vi catalina.sh


约198行左右

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT="$CATALINA_BASE"/logs/catalina.out
fi


修改为:

if [ -z "$CATALINA_OUT" ] ; then
CATALINA_OUT=/dev/null
fi


修改apache-tomcat-8.0.23/conf/server.xml

[root@hadron conf]# vi server.xml


第125行左右

注释掉

<!--<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log" suffix=".txt"/>-->


再次重启,发现/opt/apache-tomcat-8.0.23/logs目录下面没有日志输出了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: