精华内容
下载资源
问答
  • linux下tomcat优化,设置最大连接数,内存,Jconsole监控 分类 Tomcat 2012-08-01 17:31 551人阅读 评论(0) \o "收藏" 收藏 \o "举报" 举报 tomcat linux 优化 java statistics jmx 1. 添加tomcat管理员帐户 添加管理员...
  • Tomcat监控

    2019-09-02 15:54:26
    1.监控tomcat JVM内存:关注GC回收频率,FullGC次数越少越好 最大线程数:线程池连接数长期大于80%以上,建议优化 数据库连接数:活动连接数长期大于80%以上,建议优化连接池 请求数/请求状态:线程数,线程...

    1.监控项

    tomcat

    • JVM内存:关注GC回收频率,FullGC次数越少越好
    • 最大线程数:线程池连接数长期大于80%以上,建议优化
    • 数据库连接数:活动连接数长期大于80%以上,建议优化连接池
    • 请求数/请求状态:线程数,线程状态,大量Blokked状态线程可以Dump线程栈信息进行分析

    应用服务器架构分析

    • web应用服务器是互联网应用系统的基础架构软件,通常也称为“中间件”,它负责处理动态的页面请求,例如,处理JSP的页面请求,再请求数据库读取数据

    Tomcat与内存泄漏

    • tomcat默认可以使用的内存为128M(不同的版本有所区别)在较大型的应用项目中,这点内存是不够的,需要调大,否则很容易出现“Out of Menmery”的问题。在Linux/Unix下,修改配置文件/bin/catalina.sh,增加如下设置:JAVA_OPTS='-Xms[初始化内存大小]' -Xmx[可以使用的最大内存],可以根据服务器可用内存把这两个值调大。
    • 另外,对于SUN的JVM,MaxPermSizi参数的调整也比较重要。PermSizi的大小决定了保持对象(类、方法)的大小。如果碰到“OutofMenmeryError:PermGen”的错误提示,应该考虑调整这个参数的大小。SUN JVM默认保留64MB作为PerSizi大小。

    acceptCount

    • acceptCpunt是指当所有进程都已经被用于处理请求时,允许多少新的连接请求进入排队队列等候处理,当队列满时,任何新的请求都会被拒绝。默认值为100

    Connector

    • 连接器的配置

    2.线程状态

    • RUNNABLE:正常运行中
    • WAITING:此状态指线程拥有了某个锁之后,调用了wait方法,等待其他线程/锁拥有者调用notify/notifyAll唤醒该线程继续下一步操作,典型的例子是生产者消费者模型。
    • TIME-WAITING:有限制的WAITING,一般出现在调用wait(long)、join(long)等情况,另外线程sleep后,也会进入TIME-WAITING状态。
    • BLOCKED:阻塞状态,代表线程繁忙正在执行中,可能有资源等待情况。比如我们常说的多个线程同步操作的场景,一个线程正在等待另一个线程的同步块释放;我们要关注长期的BLOCKED状态线程,Dump线程就可以找到程序,从而分析出在做什么操作,等待哪些资源,这是分析问题、解决问题的常用方法。
    • TERMINATED:表示该线程的run方法已经执行完毕,进入死亡状态,如果线程被长时间持有则可能不会被回收。

    BLOCKED和WAITING的区别,BLOCKED实在临界点外面等待进入(等待获取锁占用资源),WAITING是在临界点里面等待别人notify(唤醒),线程调用了join方法加入了另外的线程的时候,也会进入WAITING状态,等待被它join的线程执行结束,然后自己往下继续执行。

    我们首先要关心的是CURRENT_THREADS_BUSY与CURRENT_THREADS_COUNT是否接近MAX_THREADS,如果是,则需要加大MAX_THREADS的数量;如果服务器硬件支撑不了更多的线程数,就需要更换更强的硬件或者做集群来分担负载

    tomcat的初始线程是10个

    3.maxThreads(最大线程数)

    可通过修改TOMCAT安装目录的Conf文件夹的配置文件server.xml文件来调整Tomcat最大连接线程数。maxThreads是最大并发线程数,如果同时的并发请求量超过这个值,Tomcat也不会再增加线程,这时并发请求将进入队列。增加maxThreads的值可以加大Tomcat的并发处理能力,但是设置过高的maxThreads值也会对性能带来影响,占用过多的系统资源,甚至造成Tomcat崩溃。注意:一般web服务器允许的最大连接数还受限制于操作系统的内核参数设置,通常windows是2000个左右,Linux是1000个左右。

    connectionTimeout(连接超时的设置)

    • connectionTimeout是Connector从接受连接到提交url的等待的时间(单位是毫秒)默认设置为60000(既60秒)

    4.acceptCount

    acceptCount是指当所有线程都已经被用于处理请求时,允许多少新的连接请求进入排队队列等候处理,当队列满时,任何新的请求都将被拒绝。默认设置为100。

    5.Tomcat请求处理机制

    6.连接器配置

    7.APR配置

     

     

    展开全文
  • tomcat监控

    2016-07-01 15:12:00
    不失为一个用来监控tomcat的好工具。 在jdk目录下的bin目录中可以找到jvisualvm.exe文件、直接启动可以看到如下界面: 以上是已经连接远程的界面。直观的监控界面、更有助于我们分析tomcat的运行情况。 下面主....

    jdk自带有个jvisualvm工具、该工具是用来监控java运行程序的cpu、内存、线程等的使用情况。并且使用图表的方式监控java程序、还具有远程监控能力。不失为一个用来监控tomcat的好工具。

    在jdk目录下的bin目录中可以找到jvisualvm.exe文件、直接启动可以看到如下界面:

     

    以上是已经连接远程的界面。直观的监控界面、更有助于我们分析tomcat的运行情况。

    下面主要介绍下怎么样使用本地jvisualvm监控远程tomcat。

    tomcat自带的监控介绍可以参考:

    http://tomcat.apache.org/tomcat-6.0-doc/monitoring.html

    下面是我的配置方法:

    在tomcat/bin目录下打开startup.sh或者startup.bat,在最后一行前面加上,也就是:


    exec "$PRGDIR"/"$EXECUTABLE" start "$@"


    前面加上


    export CATALINA_OPTS="$CATALINA_OPTS
    -Dcom.sun.management.jmxremote -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx -Dcom.sun.management.jmxremote.port=xxx -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access"
    参数说明:

     

    -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 主机地址,我配置的是外网地址
    -Dcom.sun.management.jmxremote.port=xxx 端口号、配置完端口号之后需要将此端口开放出来 可以使用命令:iptables -A INPUT -p tcp --d port 端口号 -j ACCEPT
    -Dcom.sun.management.jmxremote.authenticate=true 是否开启认证、false的时候可以不使用密码访问
    -Dcom.sun.management.jmxremote.password.file=../conf/jmxremote.password -Dcom.sun.management.jmxremote.access.file=../conf/jmxremote.access 以上配置是开启认证时使用的access文件和password文件
    其中jmxremote.access文件的内容可以配置为:
    username1 readonly
    username2 readwrite
    jmxremote.password文件可以配置为:

    username1 password1
    username2 password2
    将以上俩文件放在对应配置目录tomcat/conf/下
    并且将以上俩个文件访问权限配置成:

    chmod 600 jmx*
    如果没有这一步、使用startup启动不了tomcat。
    按照上述配置、再使用startup.sh启动tomcat。

    接下来就是使用jvisualvm来远程监控tomcat了

    右键点击远程-添加远程主机-输入主机ip地址

     

     

    添加远程主机之后,点击远程主机右键-添加jmx连接:

     

    弹出登录框

     

    输入主机名:端口号,如果配置了用户名和密码,请输入用户名和密码。然后点击确定。

    点击确定之后、在远程主机下会有一个jmx连接,打开连接,点击监视tab,可以看到如下界面了。

     

    在上图中可以看到cpu利用率和垃圾回收活动(这个在分析tomcat性能时也很重要)。然后是堆栈使用情况。下面是类的使用情况,最后一个是线程活动情况。

    点击线程tab可以看到:

     

    上图可以非常清晰的看到线程活动情况,那些线程正在执行,哪些线程正在等待中,以及执行完毕的线程等。

    这里可以看到每个线程的状态,点击某个线程右键可以查看该线程的详细情况:

     

    使用左上角的线程dump按钮,还可以看到线程的堆栈情况,这样就可以具体分析线程是在什么地方进入等待,什么地方进入休眠,以及什么地方一直处于执行状态。这也是一个性能分析利器哦!

     

     

    以上就是使用jvisualvm的jmx远程监控tomcat的简单配置。


    来源: http://my.oschina.net/kone/blog/157239

     

    转载于:https://www.cnblogs.com/lin-123/p/5633161.html

    展开全文
  • tomcat调优之监控连接数和连接池

    千次阅读 2019-01-04 18:23:40
    在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat连接器(Connector)。 Tomcat配置文件server.xml中:Connector的主要功能,是接收连接请求,创建Request和...

    一:前言

    在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。

    Tomcat配置文件server.xml中:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Servlet容器)来处理这个请求,并把产生的Request和Response对象传给Engine。当Engine处理完请求后,也会通过Connector将响应返回给客户端。

    可以说,Servlet容器处理请求,是需要Connector进行调度和控制的,Connector是Tomcat处理请求的主干,因此Connector的配置和使用对Tomcat的性能有着重要的影响。这篇文章将从Connector入手,讨论一些与Connector有关的重要问题,包括NIO/BIO模式、线程池、连接数等。

    根据协议的不同,Connector可以分为HTTP Connector、AJP Connector等,本文只讨论HTTP Connector。

     

    二:Nio、Bio、APR

    1.Connector的protocol

    Connector在处理HTTP请求时,会使用不同的protocol。不同的Tomcat版本支持的protocol不同,其中最典型的protocol包括BIO、NIO和APR(Tomcat7中支持这3种,Tomcat8增加了对NIO2的支持,而到了Tomcat8.5和Tomcat9.0,则去掉了对BIO的支持)。

    BIO是Blocking IO,顾名思义是阻塞的IO;NIO是Non-blocking IO,则是非阻塞的IO。而APR是Apache Portable Runtime,是Apache可移植运行库,利用本地库可以实现高可扩展性、高性能;Apr是在Tomcat上运行高并发应用的首选模式,但是需要安装apr、apr-utils、tomcat-native等包。

    2.如何指定protocol

    Connector使用哪种protocol,可以通过<connector>元素中的protocol属性进行指定,也可以使用默认值。

    指定的protocol取值及对应的协议如下:

    • HTTP/1.1:默认值,使用的协议与Tomcat版本有关

    • org.apache.coyote.http11.Http11Protocol:BIO

    • org.apache.coyote.http11.Http11NioProtocol:NIO

    • org.apache.coyote.http11.Http11Nio2Protocol:NIO2

    • org.apache.coyote.http11.Http11AprProtocol:APR

    如果没有指定protocol,则使用默认值HTTP/1.1,其含义如下:在Tomcat7中,自动选取使用BIO或APR(如果找到APR需要的本地库,则使用APR,否则使用BIO);在Tomcat8中,自动选取使用NIO或APR(如果找到APR需要的本地库,则使用APR,否则使用NIO)。

    3.BIO/NIO有何不同

    无论是BIO,还是NIO,Connector处理请求的大致流程是一样的:

    在accept队列中接收连接(当客户端向服务器发送请求时,如果客户端与OS完成三次握手建立了连接,则OS将该连接放入accept队列);在连接中获取请求的数据,生成request;调用servlet容器处理请求;返回response为了便于后面的说明,首先明确一下连接与请求的关系:连接是TCP层面的(传输层),对应socket;请求是HTTP层面的(应用层),必须依赖于TCP的连接实现;一个TCP连接中可能传输多个HTTP请求。

    在BIO实现的Connector中,处理请求的主要实体是JIoEndpoint对象。JIoEndpoint维护了Acceptor和Worker:Acceptor接收socket,然后从Worker线程池中找出空闲的线程处理socket,如果worker线程池没有空闲线程,则Acceptor将阻塞。其中Worker是Tomcat自带的线程池,如果通过<Executor>配置了其他线程池,原理与Worker类似。

    在NIO实现的Connector中,处理请求的主要实体是NIoEndpoint对象。NIoEndpoint中除了包含Acceptor和Worker外,还是用了Poller,处理流程如下图所示

     

    Acceptor接收socket后,不是直接使用Worker中的线程处理请求,而是先将请求发送给了Poller,而Poller是实现NIO的关键。Acceptor向Poller发送请求通过队列实现,使用了典型的生产者-消费者模式。在Poller中,维护了一个Selector对象;当Poller从队列中取出socket后,注册到该Selector中;然后通过遍历Selector,找出其中可读的socket,并使用Worker中的线程处理相应请求。与BIO类似,Worker也可以被自定义的线程池代替。

    通过上述过程可以看出,在NIoEndpoint处理请求的过程中,无论是Acceptor接收socket,还是线程处理请求,使用的仍然是阻塞方式;但在“读取socket并交给Worker中的线程”的这个过程中,使用非阻塞的NIO实现,这是NIO模式与BIO模式的最主要区别(其他区别对性能影响较小,暂时略去不提)。而这个区别,在并发量较大的情形下可以带来Tomcat效率的显著提升:

    目前大多数HTTP请求使用的是长连接(HTTP/1.1默认keep-alive为true),而长连接意味着,一个TCP的socket在当前请求结束后,如果没有新的请求到来,socket不会立马释放,而是等timeout后再释放。如果使用BIO,“读取socket并交给Worker中的线程”这个过程是阻塞的,也就意味着在socket等待下一个请求或等待释放的过程中,处理这个socket的工作线程会一直被占用,无法释放;因此Tomcat可以同时处理的socket数目不能超过最大线程数,性能受到了极大限制。而使用NIO,“读取socket并交给Worker中的线程”这个过程是非阻塞的,当socket在等待下一个请求或等待释放时,并不会占用工作线程,因此Tomcat可以同时处理的socket数目远大于最大线程数,并发性能大大提高。

     

    三:acceptCount、maxConnections、maxThreads

    再回顾一下Tomcat处理请求的过程accept队列中接收连接(当客户端向服务器发送请求时,如果客户端与OS完成三次握手建立了连接,则OS将该连接放入accept队列);在连接中获取请求的数据,生成request;调用servlet容器处理请求;返回response

    相对应的,Connector中的几个参数功能如下:

    1.acceptCount

    accept队列的长度;当accept队列中连接的个数达到acceptCount时,队列满,进来的请求一律被拒绝。默认值是100。

    2.maxConnections

    Tomcat在任意时刻接收和处理的最大连接数。当Tomcat接收的连接数达到maxConnections时,Acceptor线程不会读取accept队列中的连接;这时accept队列中的线程会一直阻塞着,直到Tomcat接收的连接数小于maxConnections。如果设置为-1,则连接数不受限制。

    默认值与连接器使用的协议有关:NIO的默认值是10000,APR/native的默认值是8192,而BIO的默认值为maxThreads(如果配置了Executor,则默认值是Executor的maxThreads)。

    在windows下,APR/native的maxConnections值会自动调整为设置值以下最大的1024的整数倍;如设置为2000,则最大值实际是1024。

    3.maxThreads

    请求处理线程的最大数量。默认值是200(Tomcat7和8都是的)。如果该Connector绑定了Executor,这个值会被忽略,因为该Connector将使用绑定的Executor,而不是内置的线程池来执行任务。

    maxThreads规定的是最大的线程数目,并不是实际running的CPU数量;实际上,maxThreads的大小比CPU核心数量要大得多。这是因为,处理请求的线程真正用于计算的时间可能很少,大多数时间可能在阻塞,如等待数据库返回数据、等待硬盘读写数据等。因此,在某一时刻,只有少数的线程真正的在使用物理CPU,大多数线程都在等待;因此线程数远大于物理核心数才是合理的。

    换句话说,Tomcat通过使用比CPU核心数量多得多的线程数,可以使CPU忙碌起来,大大提高CPU的利用率。

    4.参数设置

    (1)maxThreads的设置既与应用的特点有关,也与服务器的CPU核心数量有关。通过前面介绍可以知道,maxThreads数量应该远大于CPU核心数量;而且CPU核心数越大,maxThreads应该越大;应用中CPU越不密集(IO越密集),maxThreads应该越大,以便能够充分利用CPU。当然,maxThreads的值并不是越大越好,如果maxThreads过大,那么CPU会花费大量的时间用于线程的切换,整体效率会降低。

    (2)maxConnections的设置与Tomcat的运行模式有关。如果tomcat使用的是BIO,那么maxConnections的值应该与maxThreads一致;如果tomcat使用的是NIO,那么类似于Tomcat的默认值,maxConnections值应该远大于maxThreads。

    (3)通过前面的介绍可以知道,虽然tomcat同时可以处理的连接数目是maxConnections,但服务器中可以同时接收的连接数为maxConnections+acceptCount 。acceptCount的设置,与应用在连接过高情况下希望做出什么反应有关系。如果设置过大,后面进入的请求等待时间会很长;如果设置过小,后面进入的请求立马返回connection refused。

     

    四:线程池Executor

    Executor元素代表Tomcat中的线程池,可以由其他组件共享使用;要使用该线程池,组件需要通过executor属性指定该线程池。

    Executor是Service元素的内嵌元素。一般来说,使用线程池的是Connector组件;为了使Connector能使用线程池,Executor元素应该放在Connector前面。Executor与Connector的配置举例如下:

    <Executor name="tomcatThreadPool" namePrefix ="catalina-exec-" maxThreads="150" minSpareThreads="4" />
    <Connector executor="tomcatThreadPool" port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" acceptCount="1000" />
    

    Executor的主要属性包括:

    • name:该线程池的标记

    • maxThreads:线程池中最大活跃线程数,默认值200(Tomcat7和8都是)

    • minSpareThreads:线程池中保持的最小线程数,最小值是25

    • maxIdleTime:线程空闲的最大时间,当空闲超过该值时关闭线程(除非线程数小于minSpareThreads),单位是ms,默认值60000(1分钟)

    • daemon:是否后台线程,默认值true

    • threadPriority:线程优先级,默认值5

    • namePrefix:线程名字的前缀,线程池中线程名字为:namePrefix+线程编号

       

    五:查询当前状态

    上面介绍了Tomcat连接数、线程数的概念以及如何设置,下面说明如何查看服务器中的连接数和线程数。

    查看服务器的状态,大致分为两种方案:(1)使用现成的工具,(2)直接使用Linux的命令查看。

    现成的工具,如JDK自带的jconsole工具可以方便的查看线程信息(此外还可以查看CPU、内存、类、JVM基本信息等),Tomcat自带的manager,收费工具New Relic等。下图是jconsole查看线程信息的界面:

    下面说一下如何通过Linux命令行,查看服务器中的连接数和线程数。

    1.连接数

    假设Tomcat接收http请求的端口是8083,则可以使用如下语句查看连接情况:

    netstat –nat | grep 8083
    

    结果如下所示:

    可以看出,有一个连接处于listen状态,监听请求;除此之外,还有4个已经建立的连接(ESTABLISHED)和2个等待关闭的连接(CLOSE_WAIT)。

    2.线程

    ps命令可以查看进程状态,如执行如下命令:

    ps –e | grep java
    

    结果如下图:

     

    可以看到,只打印了一个进程的信息;27989是线程id,java是指执行的java命令。这是因为启动一个tomcat,内部所有的工作都在这一个进程里完成,包括主线程、垃圾回收线程、Acceptor线程、请求处理线程等等。

    通过如下命令,可以看到该进程内有多少个线程;其中,nlwp含义是number of light-weight process。

    ps –o nlwp 27989
    

    可以看到,该进程内部有73个线程;但是73并没有排除处于idle状态的线程。要想获得真正在running的线程数量,可以通过以下语句完成:

    ps -eLo pid ,stat | grep 27989 | grep running | wc -l
    

    其中ps -eLo pid ,stat可以找出所有线程,并打印其所在的进程号和线程当前的状态;两个grep命令分别筛选进程号和线程状态;wc统计个数。其中,ps -eLo pid ,stat | grep 27989输出的结果如下:

     

     图中只截图了部分结果;Sl表示大多数线程都处于空闲状态。

    展开全文
  • 云服务上的tomcat监控使用到的jar包,需要的可以直接下载,注意tomcat的版本需要和jar包的版本对应
  •  Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题。  经过几个小时的努力,参考了众多网友的资料之后,才最终解决了这个问题...
    问题背景
      Tomcat经常崩溃crash,想看看JVM内存使用情况,就想到了用Jconsole监控,以前只是监控本地的JVM,这次要监控远程的,遇到了不少问题。
      经过几个小时的努力,参考了众多网友的资料之后,才最终解决了这个问题。
      比较坑爹的是,网上的资料,竟然没有一个是:完美无缺的,没有一篇文章提到了“jmxremote.access”这个文件的重要性。
     
    第一阶段
      找到了2种配置,是否需要输入密码。
       JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=60001"
       JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false"
       JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false"
       
       authenticate为false,jconsole连接远程jvm时,就不需要输入用户名和密码。
       否则,要配置密码文件和密码。
       可以指定密码文件的位置
       JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.pwd.file=/root/soft/jdk7/jre/lib/management/jmxremote.password"
       
       我把这些配置放在了catalish.sh中。
       
    第二阶段
       上面的配置遇到了一个问题,如果是第一次启动正常,但是当shutdown时,提示端口号被占用了。
       问题原因是,在关闭Tomcat时,也执行了Catalish中的jmxremote的端口号。
       
       解决办法:在catalish.sh文件中,判断是否为启动命令,如果是start,就设置变量,否则,就不设置。
       相关脚本:
       JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m"
    101 if [ "$1" = "start" ];then
    102      echo "set console";
    103 #   JAVA_OPTS="$JAVA_OPTS -Xms256m -Xmx1024m -XX:PermSize=128M -XX:MaxPermSize=256m"
    104     JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=60001 -Djava.rmi.server.hostname=42.96.84.84";
    105     JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false";
    106     JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false";
    107 #   JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.pwd.file=/root/soft/jdk7/jre/lib/management/jmxremote.password"
    108 else
    109   echo "no startup";
    110 fi;
    111
     
    第三阶段
       上面的设置之后,可能还连接不上,需要配置“java.rmi.server.hostname”为机器的ip,比如我的是“42.96.84.84”。
       
       然后,重启Tomcat,在本地Jconsole连接远程JVM,只输入“42.96.84.84:60001”。
     
       
    第四阶段
       登录使用密码,搞了几个小时,尼玛。
       
       注意问题
       1.-Dcom.sun.management.jmxremote.authenticate=true
       2.-Dcom.sun.management.jmxremote.pwd.file 指定正确的密码文件
       3.用户名及密码(参考jmxremote.password文件) monitorRole只能读,controlRole能读写 
         配置中的安全原因出错,由于密码是以明文的方式保存在:jmxremote.password中,所以对此文件只能有所有者都读取,其他人都不能读取。
     权限需要注意,600,所有者有rw权限。
       4.用户和权限其实是存在jmxremote.access中。
       千万要注意啊,网上的绝大部分资料,都没有提到这个文件的真正作用。
       我是在尝试了若干小时之后,才发现这个文件的作用,竟然是如此的大。
       有点类似于SVN配置,用户名-权限,用户名-密码,2个配置文件。
       fansunion   readonly
       admin   readwrite \
                     create javax.management.monitor.*,javax.management.timer.* \
                     unregister
     
    jmxremote.password内容
    fansunion  12345
    admin  12345
     
       "用户名及密码(参考jmxremote.password文件) monitorRole只能读,controlRole能读写",给我很大的启发。
       为什么monitorRole和controlRole,这2个角色的权限还不一样呢,默认注释的password文件中,没有看出有啥区别呀。
       于是,我才去jmxremote.access文件看了看,最终找到了问题的症结。
       
       至此,不使用密码和使用用户名及密码,“admin”-“12345”成功登录42.96.84.84上的Tomcat使用的JVM。
       
       注意:本文中的ip、用户名、密码,仅供参考,你懂的。
       
    参考资料
     
    1.入门参考
     
     
    3.给我很大的启发,解决用户名和密码登录问题
    http://www.linuxidc.com/Linux/2015-02/113415.htm

    本文永久更新链接地址http://www.linuxidc.com/Linux/2015-02/113420.htm 

    展开全文
  • 在做性能测试的时候,我们常常需要对Tomcat进行监控,一般tomcat使用的配置就是默认配置。这里我们说下Tomcat的默认配置情况在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:minProcessors:最小空闲...
  • 在做性能测试的时候,我们常常需要对Tomcat进行监控,一般tomcat使用的配置就是默认配置。这里我们说下Tomcat的默认配置情况在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:minProcessors:最小空闲...
  • tomcat尽量使用ip_hash规则,这样同一ip的连接会在同一台机器上。Tomcat性能优化JpsJstackJmap一、Jps用来查看基于HotSpot JVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示...
  • tomcat 监控

    2015-03-02 16:43:23
    1、概述   JConsole是一个基于JMX的GUI工具,用于连接正在运行的...JConsole能够提供被监控虚拟机的内存、线程、类的加载以及MBean等信息,从而能够对服务器的运行情况进行实时监控。       其实在 JD...
  • tomcat连接监控

    2013-05-02 17:37:58
    1、方法一:使用probe   ...   使用很简单,只要讲里面的war包放到tomcat/webapps下面即可。 ...然后在conf/tomcat-user.xml中配置一个用户即可...在里面可以看到数据库连接池等信息。   官方网站:http://www.la...
  • Centos Tomcat监控

    2018-03-16 14:02:00
    1、Window环境下jdk的bin目录中提供jvisualvm.exe工具... 两种连接方式:jmx和jstatd,这次主要说jmx的方式监控 2、配置:  1)修改:tomcat的bin目录下catalina.sh,添加脚本:(IP地址和端口号自己配置)  ...
  • tomcat 监控 probe, 一款能够监控tomcat的插件,满足性能测试tomcat的需求,包括数据库连接池 Jvm内存 cpu以及系统的一些性能信息
  • 简介JDBC 连接池org.apache.tomcat.jdbc.pool是Apache Commons DBCP连接池的一种替换或备选方案。那究竟为何需要一个新的连接池?原因如下:Commons DBCP 1.x 是单线程。为了线程安全,在对象分配或对象返回的短期内...
  •  需要监控哪个tomcat就修改哪个。进入tomcat的bin目录下,修改catalina.sh,在下面的位置中添加   1 JAVA_OPTS="-Djava.rmi.server.hostname=192.168.220.147 -Dcom.sun.management.jmxremote.port=8099 -Dcom....
  • JMX配置Tomcat 7.0连接Linux java监控

    千次阅读 2013-06-04 15:56:56
    1、配置Tomcat catalina.sh  找到# OS specific support. $var _must_ be set to either true or false.添加如下变量:  JAVA_OPTS="-Dcom.sun.management.jmxremote.port=1090 --配置jmx远程监听端口1090,指定...
  • tomcat 连接池活动数目监控

    万次阅读 2012-03-09 08:28:59
    关于如何配置Tomcat数据库连接池,网上已有太多文章了。可是找不到一篇文章能 告诉我,怎么能得到Tomcat连接池的当前连接数。如果想要监视Tomcat的运行状况,这 是一个重要参数。所以我花了半天的时间,专门来研究...
  • 本书涵盖了Tomcat的工作方式:服务器,服务,连接器,阀门,管道,引擎,主机,上下文,包装器和管理器不再包含任何秘密。 本书适用于希望了解其产品工作原理的管理员和需要将附加功能纳入其中的架构师 优点...
  • 近期由于业务项目的需要,考虑用zabbix jvm监控tomcat的一些性能等数据,中途出现了一些故障和问题,现记录下来分享给大家。 基础环境: zabbix server: CentOS 7.2 IP:10.201.60.11zabbix_java_getway zabbix 3.2...
  • Lambda Probe 是基于 Web + AJAX 的强大的免费开源工具,可以...包括应用程序、数据源、发布、日志、线程、集群、系统信息、状态、连接器状态这些功能。如配合 JDK 1.5 甚至可以实时的画出 Server 的详细内存占用状态。
  • 使用jdk8自带的Java VisualVM工具,通过JMX连接远程Linux服务器的Tomcat监控其运行时性能(CPU、堆内存、类载入、线程) 背景: 线上系统部署后,希望实时监控其运行状况,以期分析数据并做相应的系统优化(优化...
  • 这篇文章记录一下如何在spring boot中监控tomcat,druid连接池状态,之前我写过一篇文章介绍过类似的,具体背景和监控数据的收集部分这里就不赘述,可以参考在...数据收集JMX再介绍怎么监控连接池状态之前,先来了...
  • tomcat 监控内存的大小

    2011-06-14 12:51:00
    1.在tomcat的cataliana.bat文件中添加set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote 2.启动tomcat3.在命令行模式下面敲入,jconsole.在本地连接可以看到tomcat进程,点击连接进行监控
  • 因为很多java应用服务不是部署在tomcat环境下,比如我们这次的项目需要监控Carte+kettle数据交换平台,最好的方式是直接监控Carte服务的JVM,这时候就没有Tomcat监控页面,需要利用JDK自带的jvisualvm来实时监控,...
  • 192.168.10.98上 netstat -anp | wc -l netstat -anp|grep 8094 | grep ESTABLISHED | wc -l netstat -anp|grep 8094 | wc -l 192.168.10.99或者101上 netstat -anp|grep 3306 | wc -l netstat -anp|grep 192.168....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 648
精华内容 259
关键字:

tomcat监控连接