`

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是这个作用。
 

==============================================================

 

网上回答:

 

其实并发连接数和实际访问人数的比例可以认为是 1:10 也就是说 256可以同时2000多人访问了。一般都是够的。
至于说 tomcat的同步修改,其实关键在于你的访问中有多少是访问数据库的。一般来说tomcat 连接数 50就够用了。 如果你升到 800 ,那么最多200连接也就够了。除非碰上恶意攻击。那么就是另外的处理方式了。

 

 

 

 

 

分享到:
评论

相关推荐

    tomcat 最大并发连接数 acceptCount

    tomcat 最大并发数 并发量 tomcat 最大并发连接数 acceptCount不能说只要大于acceptCount的连接就一定被拒绝!

    JBOSS\Tomcat最大连接数配置和jvm内存配置.docx

    JBOSS\Tomcat最大连接数配置和jvm内存配置,解决内存溢出问题 Java中OutOfMemoryError(内存溢出)的情况 第一种OutOfMemoryError: PermGen space 第二种OutOfMemoryError: Java heap space

    linux下tomcat优化设置最大连接数内存jconsole监控.docx

    linux下tomcat优化设置最大连接数内存jconsole监控.docx

    支持websocket的tomcat

    支持websocket的tomcat

    tomcat性能配置

    tomcat性能配置 tomcat内存 jvm内存 tomcat连接数 tomcat最大连接数

    tomcat中的几点配置说明

    1. 如何加大tomcat连接数 在tomcat配置文件server.xml中的配置中,和连接数相关的参数有: minProcessors:最小空闲连接线程数,用于提高系统...acceptCount:允许的最大连接数,应大于等于maxProcessors,默认值为100

    TOMCAT6.0配置数据库连接池

    * maxIdle - 同一时刻数据库连接池中处于非活动状态的最大连接数。 * maxWait - 当连接池中没有可用连接时,连接池在抛出异常前将等待的最大时间,单位毫秒。 *password - 传给JDBC驱动的数据库密码。 * url - 传给...

    Tomcat中配置数据源连接池

    maxAction="20" //连接池的最大数据库连接数。设为0表示无限制。 maxldle="10" //最大空闲数 设为0表示无限制 maxWait="-1" //最大连接等待时间。如果超时将接到异常。设-1表示 无限制。 /&gt; &lt;/Context&gt;

    TOMCAT配置数据源连接池

    driverClassName:驱动 ... maxActive:连接池可以存储的最大连接数 maxIdle:最大空闲连接数 maxWait:暂时无法获得数据库连接的等待时间(单位:毫秒) 可根据应用程序的用户访问情况对这三个参数进行调整。

    tomcat-jvm优化

    tomcat-jvm优化。配置内存、最大连接数等信息。

    Nginx+Tomcat负载均衡

    #允许最大连接数 worker_connections 2048; } http { include mime.types; default_type application/octet-stream; #定义日志格式 #log_format main '$remote_addr - $remote_user [$time_local] $request...

    Tomcat配置jsp连接mysql的连接池方法

    maxActive:同时能够从连接池中被分配的可用实例的最大数; maxIdle:可以同时闲置在连接池中的连接的最大数; maxWait:最大超时时间,以毫秒计; password:用户密码; url:到JDBC的URL连接; user:用户...

    MySQL并Tomcat优化记录

    # MySQL的最大连接数,如果服务器的并发连接请求量比较大,建议调高此值,以增加并行连接数量,当然这建立在机器能支撑的情况下,因为如果连接数越多, 介于MySQL会为每个连接提供连接缓冲区,就会开销越多的内存,...

    Tomcat面试专题及答案.pdf

    -- acceptCount 允许的最大连接数,应大于等于 maxProcessors--&gt; &lt;!-- enableLookups 如果为 true,requst.getRemoteHost 会执行 DNS 查 找,反向解析 ip 对应域名或主机名--&gt; protocol="org.apache.coyote....

    jsp全攻略,tomcat技术

    maxProcessors 最大可以创建的处理请求的线程数 enableLookups 如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址 ...

    Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: ….. this is incompatible with sq

    2、连接数超过系统最大连接数 3、Can’t connect to local MySQL server through socket ‘/Data/mydata/mysql.sock’ socket文件目录不对应导致的问题 4、今天要说的就是 没有打开only_full_group_by Cause:...

    Nginx+Tomcat高性能负载均衡集群搭建教程

    单个Tomcat最大支持在线访问是500左右,要通知支持更多的访问量一个Tomcat就没法做到了。在这里我们采用集群部署方式,使用多个Tomcat,反向代理使用Nginx。 架构如下: 准备工作 apache-tomcat-7.0.61 nginx-...

    Loadrunner报错日志

    数据库启动的最大连接数(跟硬件的内存有关) 4)、有时关闭防火墙如卡巴斯基也会解决如上问题 5,Loadrunner报错日志: Action.c(43) Error -26612 HTTP Status-Code=500 (Internal Server Error) for ...

    vxworks 并发服务器程序

    #define BACKLOG 50 //最大连接数 #define BUF_SIZE 200 //缓冲区大小 #define OUT_TIME_SEC 3 //连接超时(在该时间内无数据收发)时间设置(秒/单位) #define CHECK_DELAY 1 //检查超时连接的时间间隔(秒/单位...

    SkyHome网站源码

    password,最大连接数等参数,注意应和您的数据库设置一致; 4.配置web服务器。 配置Resin(2.1.6 OR LATER) ------------------------- 1.安装resin并使其能正确运行(请参考resin的帮助文档); 2....

Global site tag (gtag.js) - Google Analytics