linux下tomcat设置最大链接数,设置最大内存,使用Jconsole监控

1. 添加tomcat管理员账户 
添加管理员帐户tomcat-users.xml 
<?xml version='1.0' encoding='utf-8'?> 
<tomcat-users> 
<role rolename="tomcat"/> 
<role rolename="role1"/> 
<role rolename="manager"/> 
<role rolename="admin"/> 
<user username="tomcat" password="tomcat" roles="tomcat"/> 
<user username="both" password="tomcat" roles="tomcat,role1"/> 
<user username="role1" password="tomcat" roles="role1"/> 
<user username="admin" password="admin123" roles="admin,manager"/> 
</tomcat-users>



2. TOMCAT内存 

基本原理:JAVA程序启动时都会JVM 都会分配一个初始内存和最大内存给这个应用程序。这个初始内存和最大内存在必定程度都会影响程序的性能。好比说在应用程序用到最大内存的时候,JVM是要 先去作垃圾回收的动做,释放被占用的一些内存。 因此想调整Tomcat的启动时初始内存和最大内存就须要向JVM声明,通常的JAVA程序在运行均可以经过中-Xms -Xmx来调整应用程序的初始内存和最大内存:   如:java

java -Xms64m -Xmx128m application.jar. 


方法1:若是是使用的tomcat_home/bin/catalina.sh(linux)或catalina.bat(win)启动的: 
修改相应文件,加上下面这句: 

JAVA_OPTS='$JAVA_OPTS -server -Xmx800m -Xms512m -XX:MaxNewSize=256m -XX:MaxPermSize=256m -Djava.awt.headless=true'--ms是最小内存,mx是最大内存。这里设置最小内存为512M,最大内存为 800M。


$JAVA_OPTS是保留先前设置。 CATALINA_OPTS彷佛能够与JAVA_OPTS不加区别的使用。[对于catalina.bat则是如此设置: set   JAVA_OPTS=-Xms1024m   -Xmx1024m] linux


方法2:若是使用的winnt服务启动: 
在命令行键入regedit,找到 HKEY_LOCAL_MACHINE-->SOFTWARE-->Apache Software Foundation-->Procrun 2.0-->Tomcat5-->Parameters的Java, 
修改Options的值,新添加属性: 
-Xms64m 
-Xmx128m 或者直接修改JvmMx(最大内存)和JvmMs(最小内存)。 

有人建议Xms和Xmx的值取成同样比较好,说是能够加快内存回收速度。 
修改完以后,能够访问http://127.0.0.1:8080/manager/status查看内存大小。 

也能够编写下面测试tomcat内存大小的jsp页面: 
<% 
Runtime lRuntime = Runtime.getRuntime(); 
out.println("*** BEGIN MEMORY STATISTICS ***<br/>"); 
out.println("Free Memory: "+lRuntime.freeMemory()+"<br/>"); 
out.println("Max   Memory: "+lRuntime.maxMemory()+"<br/>"); 
out.println("Total Memory: "+lRuntime.totalMemory()+"<br/>"); 
out.println("Available Processors : "+lRuntime.availableProcessors()+"<br/>"); 
out.println("*** END MEMORY STATISTICS ***"); 
%>



3. 增长tomcat链接数 
在tomcat配置文件server.xml中的配置中,和链接数相关的参数有: 
minProcessors:最小空闲链接线程数,用于提升系统处理性能,默认值为10 
maxProcessors:最大链接线程数,即:并发处理的最大请求数,默认值为75 
acceptCount:容许的最大链接数,应大于等于maxProcessors,默认值为100 
enableLookups:是否反查域名,取值为:true或false。为了提升处理能力,应设置为false 
connectionTimeout: 网络链接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。一般可设置为30000毫秒。 其中和最大链接数相关的参数为maxProcessors和acceptCount。若是要加大并发链接数,应同时加大这两个参数。 web server容许的最大链接数还受制于操做系统的内核参数设置,一般Windows是2000个左右,Linux是1000个左右。 
如: 
<Connector   port="8080"   
      maxThreads="150"     
      minSpareThreads="25"     
      maxSpareThreads="75"   
      acceptCount="100"   
  />


  maxThreads="150"     表示最多同时处理150个链接   
  minSpareThreads="25"     表示即便没有人使用也开这么多空线程等待   
  maxSpareThreads="75"     表示若是最多能够空75个线程,例如某时刻有80人访问,以后没有人访问了,则tomcat不会保留80个空线程,而是关闭5个空的。   
    
  acceptCount="100"   当同时链接的人数达到maxThreads时,还能够接收排队的链接,超过这个链接的则直接返回拒绝链接。 

4.使用Jconsole监控 

在须要监控的tomcat_home/bin/catalina.sh(linux)文件中添加下面语句:web

JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=8089 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.authenticate=false"


设置一个新的端口号。而后在本机dos下输入Jconsole命令,弹出“JAVA 监视和管理控制台”,若是是远程监视,就输入<hostname>:<port>,这个port就上上面配置的8089,而后再输入远程主机的用户名跟口令,就能够监控啦。 
传说这里面还能够加一句话"-Djava.rmi.server.hostname=192.168.1.80" 没有试过 ⊙﹏⊙b汗  先拷贝上一句话,留做记忆: 

   再找找远程tomcat的jmx配置,多了个参数-Djava.rmi.server.hostname=ip_or_hostname。而后我就加上了服务器的IP。而后再链接就能够了。对这样的状况有点不解,再官方又没有找任何这个参数的说明。回来后,再试用一下。在虚拟机的开一个linux,而后配上jmx参数(没有java.rmi.server.hostname的)。结果能够链接。... 公司的为何不能链接呢?为何加了IP就行?怀疑多网卡。而后在虚拟机上再加一个网上,而后启动 tomcat ,恩,不能链接(没有server.hostname),而后再加上java.rmi.server.hostname启动 tomcat ,结果或以链接。原来java.rmi.server.hostname是这个做用。
相关文章
相关标签/搜索