美文网首页
Tomcat使用

Tomcat使用

作者: 天边010 | 来源:发表于2017-02-28 17:05 被阅读0次

常用命令

显示控制台日志
进入tomcat/logs/文件夹下 
tail -f catalina.out

安装

基本配置

优化

Tomcat内存优化

在启动脚本 catalina.sh/catalina.bat 中设置 java_OPTS 参数完成内存优化的;

JAVA_OPTS="-Xms1024m -Xmx2048m -XX:PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m"

服务器内存在2G以上,这里没有考虑多个节点的问题;
参数说明:
-Xms [Java]虚拟机初始化时的最小内存;
-Xmx java虚拟机可使用的最大内存;
-XX: PermSize 内存永久保留区域;
-XX:MaxPermSize 内存最大永久保留区域 
并发数优化

修改conf目录下的server.xml文件;

默认:
   <Connector 
      port="8080" 
      protocol="HTTP/1.1" 
      connectionTimeout="20000" 
      redirectPort="8443" 
  />

修改为:

  <Connector port="9027"
  protocol="HTTP/1.1"
  maxHttpHeaderSize="8192"
  maxThreads="1000"
  minSpareThreads="100"
  maxSpareThreads="1000"
  minProcessors="100"
  maxProcessors="1000"
  enableLookups="false"
  compression="on"
  compressionMinSize="2048"
  compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain"
  connectionTimeout="20000"
  URIEncoding="utf-8"
  acceptCount="1000"
  redirectPort="8443"
  disableUploadTimeout="true"/>

参数说明:
  maxThreads 客户请求最大线程数 
  minSpareThreads Tomcat初始化时创建的 socket 线程数 
  maxSpareThreads Tomcat连接器的最大空闲 socket 线程数 
  enableLookups 若设为true, 则支持域名解析,可把 ip 地址解析为主机名 
  redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端口 
  acceptAccount 监听端口队列最大数,满了之后客户请求会被拒绝(不能小于maxSpareThreads ) 
  connectionTimeout 连接超时 
  minProcessors 服务器创建时的最小处理线程数 
  maxProcessors 服务器同时最大处理线程数 
  URIEncoding URL统一编码
       minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为 10
       maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为 75
       acceptCount:允许的最大连接数,应大于等于 maxProcessors ,默认值为 100
       enableLookups:是否反查域名,取值为: true 或 false 。为了提高处理能力,应设置为 false
       connectionTimeout:网络连接超时,单位:毫秒。设置为 0 表示永不超时,这样设置有隐患的。通常可设置为 30000 毫秒。
其中和最大连接数相关的参数为maxProcessors 和 acceptCount 。如果要加大并发连接数,应同时加大这两个参数。
       web server允许的最大连接数还受制于操作系统的内核参数设置,通常 Windows 是 2000 个左右, Linux 是 1000 个左右。 
       connectionTimeout   连接超时

性能监控

查看tomcat已经使用的线程数
ps aux |grep tomcat    //先 查看tomcat的PID
ps -T -p  <PID>           //根据pid查看tomcat下的线程数

日常维护

强制停止tomcat运行,在./shutdown.sh不好用的情况下
ps -ef |grep tomcat   //看是否已经有tomcat在运行了
kill -9 pid           //如果有,用kill;pid为相应的进程号

例如 pe -ef |grep tomcat 输出如下
sun 5144 1 0 10:21 pts/1 00:00:06 /java/jdk/bin/java -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.endorsed.dirs=/java/tomcat/common/endorsed -classpath :/java/tomcat/bin/bootstrap.jar:/java/tomcat/bin/commons-logging-api.jar -Dcatalina.base=/java/tomcat -Dcatalina.home=/java/tomcat -Djava.io.tmpdir=/java/tomcat/temp org.apache.catalina.startup.Bootstrap start

则 5144 就为进程号 pid = 5144
kill -9 5144 就可以彻底杀死tomcat
解决tomcat占用cpu高的问题
1.jps 获取Java进程的PID。
2.top -H -p PID 查看对应进程的哪个线程占用CPU过高。
2.1 使用 ps -mp pid -o THREAD,tid,time 命令查看该进程的线程情况,发现该进程的多个线程占用率很高。
3.jstack pid >> java.txt 导出CPU占用高进程的线程栈。
使用jstack命令查看进程的堆栈情况
4.echo “obase=16; PID” | bc 将线程的PID转换为16进制。
5.在第二步导出的Java.txt中查找转换成为16进制的线程PID。找到对应的线程栈。
6.分析负载高的线程栈都是什么业务操作。优化程序并处理问题。

相关文章

  • tomcat部署为服务

    使用命令 service tomcat start 启动tomcat报错 然后,使用命令 su - tomcat ...

  • Dubbo部署

    使用软件版本 使用工具 部署Tomcat 下载Tomcat,下载地址:https://tomcat.apache....

  • Tomcat 快速入门

    Tomcat 快速入门 版本说明本文使用 Tomcat 版本为 Tomcat 8.5.24。Tomcat 8.5 ...

  • springboot打war包

    spring boot 在内置了 tomcat,但是会使用到外置 tomcat 的情况。在使用外置 tomcat ...

  • liunx看日志2018/08/13_day26 tomca

    使用什么发布网站 使用Tomcat发布Tomcat :网站的服务器 如何发布一个网站 使用Tomcat发布Weba...

  • tomcat

    使用什么发布网站 使用Tomcat发布Tomcat :网站的服务器 如何发布一个网站 使用Tomcat发布Weba...

  • Tomcat

    使用什么发布网站 使用Tomcat发布Tomcat :网站的服务器 如何发布一个网站 使用Tomcat发布Weba...

  • Linux下Tomcat

    在Linux系统下,重启Tomcat使用命令操作的!首先,进入Tomcat下的bin目录 使用Tomcat关闭命令...

  • Linux下Tomcat停止和重新启动

    在Linux系统下,停止和重启Tomcat使用命令操作的! 首先,进入Tomcat下的bin目录 使用Tomcat...

  • tomcat源码分析(1) Embed Tomcat快速搭建

    tomcat是我们常用web服务器,这里我们使用嵌入式tomcat进行讲解,后续使用tomcat源码进行分析(如果...

网友评论

      本文标题:Tomcat使用

      本文链接:https://www.haomeiwen.com/subject/htwpwttx.html