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

Tomcat 性能优化(连接数、线程、JVM、dir)的更多相关文章

  1. tomcat 性能优化(内存优化 线程优化)

    转自:http://blog.sina.com.cn/s/blog_4b5bc01101014s81.html tomcat 性能优化 linux修改TOMCAT_HOME/bin/catalina. ...

  2. JVM虚拟机详解+Tomcat性能优化

    1.JVM(java virtual mechinal) ()JVM有完善的硬件架构,如处理器.堆栈.寄存器当,还具有相应的指令系统. ()JVM的主要工作时解释自己的指令集(即字节码),并映射到本地 ...

  3. Tomcat性能优化(转载)

    出处:微信订阅号GitChat精品课程 — Tomcat性能优化 Tomcat 简单介绍 Sun 公司创建了第一个 Servlet 容器,即 Java Web Server,但 JWS 只是为了演示 ...

  4. tomcat性能优化梳理

    tomcat性能优化 Tomcat本身优化 Tomcat内存优化 启动时告诉JVM我要一块大内存(调优内存是最直接的方式) 我们可以在 tomcat 的启动脚本 catalina.sh 中设置 jav ...

  5. tomcat 性能优化

    tomcat 性能优化tomcat默认参数是为开发环境制定,而非适合生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈. tomcat内存优化linux修改TOMCAT_HOME/bin/ ...

  6. Tomcat性能优化之(一) 启动GZIP压缩

    Tomcat性能优化之(一) 启动GZIP压缩 1:设置TOMCAT启用GZIP压缩,通过浏览器HTTP访问对应的资源会根据配置进行压缩. <Connector port="8080& ...

  7. Tomcat性能优化及JVM内存工作原理

    Java性能优化原则:代码运算性能.内存回收.应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面) 代码层优化:避免过多循环嵌套.调用和复杂逻辑. Tomcat调优主要内容如下: 1. ...

  8. tomcat性能优化,内存优化和并发线程连接优化

    今天被一同事问到tomcat和内存优化的问题,而网上的资料基本都是来回copy,所以抽时间随便写点.文章中设置的参数都是一个随便写的,具体的还要根据自己的情况来定. 1.内存优化: 说到tomcat不 ...

  9. 关于tomcat性能优化

    前言 关于 Tomcat 性能调优,一直以来就是运维面试的一个重要话题.今天我们就简单聊聊 Tomcat 如何进行性能优化? 首先声明,我不会去说 Tomcat 是什么,内部结构,原理什么的.我不懂. ...

随机推荐

  1. awk处理excel表格数据

    拿到一个ip的excel表格,要对单元格中的ip进行扫描,一看有点乱,有空格分割的,有"/"分割的,有带括号(分割的,有好几百个: 要把左边的变为右边的格式,用excel自带的功能 ...

  2. 2018-2019-1 20189215《Linux内核原理与分析》第二周作业

    本周学习了<庖丁解牛>第1章,以及<Linux内核设计与实现>第1.2.18章.通过视频和实验,学会了反汇编一个简单的C程序,也学习了Linux内核调试的一些小技巧和print ...

  3. 20145326 《Java程序设计》第5周学习总结

    20145326 <Java程序设计>第5周学习总结 教材学习内容总结 第八章 一.语法与继承结构 1.使用try .catch 我们编写程序时总有些由意想不到的状况而引发的错误,java ...

  4. IMX6Q GPIO定义

    ret = gpio_request_array(mx6q_sabresd_flexcan_gpios,                        ARRAY_SIZE(mx6q_sabresd_ ...

  5. java中static关键字的使用

    知识点:java中,static关键字修饰类的变量.方法.代码块.内部类 场景:我们在创建类的方法和变量时,如果这个类在创建多个对象时,共用同一个属性或者方法,就可以使用static关键字修饰,因为s ...

  6. BZOJ 2756 【SCOI2012】 奇怪的游戏

    题目链接:奇怪的游戏 一开始这道题想岔了……想到黑白染色后对总格子数按奇偶性分类讨论,然后没发现奇数个格子的可以直接解方程…… 首先可以发现每次操作是给相邻的两个格子权值加一,因此我们把棋盘黑白染色后 ...

  7. Rails 5 Test Prescriptions 最后一章,如何测试继承下来的代码,legacy code

    Set expectations 你不可能把一个老旧的代码野兽只用一晚就转变成优雅的奇迹marvel.你需要如下做法: 让自己有好的状态,用15分钟挥舞拳头诅咒之前的程序员 开始工作,这个codeba ...

  8. Python环境管理--virtualenvwrapper

    遇到问题: 当最近的开发和部署过程中,多个服务器部署的时候发现对于库和包的管理非常混乱,主要有俩个版本问题: 因为业务需要,代码得分别部署在不同的服务器上面,每次部署的时候都得重复的安装包而且不能确定 ...

  9. 2-15-MySQL进阶

    select select 字段列表 from 数据表 [[as] 别名] [where 条件] 别名: 数据表 [[as] 别名] select AA.money,BB.name from prod ...

  10. HDU 5186 zhx's submissions 模拟,细节 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=5186 题意是分别对每一位做b进制加法,但是不要进位 模拟,注意:1 去掉前置0 2 当结果为0时输出0,而不是全 ...