• Tomcat最大连接数问题


     

    分类: 第三方插件

    Tomcat的server.xml中Context元素的以下参数应该怎么配合适

    <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时,还可以接收排队的连接,超过这个连接的则直接返回拒绝连接。

    根据你的配置建议
    maxThreads="500"
    minSpareThreads="100" 如果你的网站经常访问量都很大的话,缺省就开比较大
    maxSpareThreads="300"
    acceptCount="100"
    这只是说你的服务器可以支持这么多用户,但还要看你安装了哪些东西,还有你的程序是否足够高效率。

    (第二种方法)

    tomcat中的几点配置说明

    如何加大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个左右。Unix中如何设置这些参数,请参阅Unix常用监控和管理命令

    tomcat4中的配置示例:
    port="8080" minProcessors="10" maxProcessors="1024"
    enableLookups="false" redirectPort="8443"
    acceptCount="1024" debug="0" connectionTimeout="30000" />

    对于其他端口的侦听配置,以此类推。

    2. tomcat中如何禁止列目录下的文件
    在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:

    ...

    listings
    false


    ---------------------------------------------------------------




    linux下tomcat设置最大连接数,设置最大内存

    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 -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]

    方法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)文件中添加下面语句: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是这个作用。
  • 相关阅读:
    获取PeopleEditor控件中的用户或用户组
    关于PeopleEditor控件的SelectionSet属性
    SharePoint上禁用列表编辑(上)
    SharePoint上禁用列表编辑(下)
    Windows 7 证书导入工具
    一段奇怪的代码,可以用来检测杀毒软件
    在MyEclipse看到的消息,这应该是不能访问的真正原因了。
    Windows 7 导入证书命令
    Windows Server 2008 R2 Standard DELL OEM
    Netbeans 语言设置
  • 原文地址:https://www.cnblogs.com/zhengah/p/4794520.html
Copyright © 2020-2023  润新知