`

Tomcat优化之简单集合经验

阅读更多
Tomcat优化
1. 如何加大tomcat连接数
在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:

maxThreads : tomcat起动的最大线程数,即同时处理的任务个数,默认值为200。

minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10 。

maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75 。

acceptCount: 当tomcat起动的线程数达到最大时,接受排队的请求个数,默认值为100。

minSpareThreads :Tomcat初始化时创建的线程数。

maxSpareThreads :一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。

enableLookups:是否反查域名,取值为:true或false。 缺省值为false,表示使用客户端主机名的DNS解析功能,被ServletRequest.getRemoteHost方法调用。

connectionTimeout:网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。


其中和最大连接数相关的参数为maxProcessors和acceptCount。如果要加大并发连接数,应同时加大这两个参数。

web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。

Unix中如何设置这些参数,请参阅Unix常用监控和管理命令
tomcat5中的配置示例:
<Connector port="8090" maxHttpHeaderSize="8169"  maxThreads="1000" minSpareThreads="75" maxSpareThreads="300"               enableLookups="false" redirectPort="8649" acceptCount="100" connectionTimeout="50000" disableUploadTimeout="true" URIEncoding="GBK"/>
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector" 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即可,如下:
<servlet> ... <init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param> ... </servlet>
3. 如何加大tomcat可以使用的内存
tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:
JAVA_OPTS='-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】' 需要把这个两个参数值调大。
例如: JAVA_OPTS='-Xms256m -Xmx512m' 表示初始化内存为256MB,可以使用的最大内存为512MB 。
export JAVA_HOME='/home/ftpuser/xjSheetHome/java/jdk1.5.0_22/'
JAVA_OPTS="-Xms1500m -Xmx1500m -Xss1024K -XX:PermSize=128m -XX:MaxPermSize=256m -Dfile.encoding=GBK"
参数说明:
-Xms 是指设定程序启动时占用内存大小。一般来讲,大点,程序会启动的 快一点,但是也可能会导致机器暂时间变慢。
-Xmx 是指设定程序运行期间最大可占用的内存大小。如果程序运行需要占 用更多的内存,超出了这个设置值,就会抛出OutOfMemory 异常。
-Xss 是指设定每个线程的堆栈大小。这个就要依据你的程序,看一个线程 大约需要占用多少内存,可能会有多少线程同时运行等。
-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64 。
-XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。
<Context path="/Sheet" defaultSessionTimeOut="3600" docBase="/home/user/Sheet"  >
  <Resource name="jdbc/app" auth="Container"
                        type="javax.sql.DataSource"
                        username="SHEET" password="SHEET"
            driverClassName="oracle.jdbc.driver.OracleDriver"
            url="jdbc:oracle:thin:@136.24.248.106:1521:kf"
            maxActive="1000" maxIdle="75"/>
  <ResourceLink name="UserTransaction"
            global="UserTransaction"
            type="javax.transaction.UserTransaction"/>
</Context>
参数说明:
defaultSessionTimeOut:设置会话时间 单位为秒
maxActive : 连接池的最大数据库连接数。设为0表示无限制。
maxIdle :可以同时闲置在连接池中的连接的最大数
maxWait : 最大超时时间,以毫秒计
4.设置解决乱码问题
URIEncoding="UTF-8" acceptCount="1000" />

注:对于tomcat优化,具体还得根据项目详细情况而定。可以去掉对web.xml的监视,把jsp提前编辑成Servlet。有富余物理内存的情况下,可以加大tomcat使用的jvm的内存(如3)。
分享到:
评论

相关推荐

    goon:一款集合了fscan和kscan等优秀工具功能的扫描爆破工具

    goon集合了fscan和kscan等优秀工具功能。功能包含:ip探活、port扫描、web指纹扫描、title扫描、压缩文件扫描、fofa获取、ms17010、mssql、mysql、postgres、redis、ssh、smb、rdp、telnet、tomcat等bp以及如netbios...

    Java-review-gudie:【Java快速面试指南】Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等

    利用空余时间整理了一份《Java面试进阶核心知识点笔记》,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。 之前有分享过这份知识点笔记的初稿,现在又对知识点笔记进行了一定的优化...

    java必了解的六大问题

    *第十阶段:Servlet开发,从此开始踏入java开发的重要一步,包括XML,Tomcat服务器的安装使用操作,HTTP协议简单理解,Servlet API等,这个是java web开发的基础。 *第十一阶段:JSP开发:JSP语法和标签,自定义...

    Java及大数据学习路线.pdf

    全⽂检索+⽇志搜集+数据可视化ELK 多范式编程语⾔Scala SparkCore/Spark SQL/Spark Streaming/Spark mlib Spark内核和优化 JVM/JUC python 数据结构 ⼤数据框架Flink 3 Java基础图谱 4 软件开发介绍 软件开发 软件,...

    Android最新资料以及源码

    22、Android应用程序的自动更新升级(自身升级、通过tomcat) 共4个目标文件!~如题。 23、Android游戏疯狂连连看源代码 共15个目标文件!~代码注释比较丰富,而且资源文件完整,还有文档,看上去一切都很规范,...

    java面试题,180多页,绝对良心制作,欢迎点评,涵盖各种知识点,排版优美,阅读舒心

    【架构】简单描述MVC模式 120 【架构】RPC的介绍 121 什么叫RPC 121 RPC流程 121 【架构】SOA介绍 122 【Redis】redis五种常见的数据类型详解 123 String字符串类型 124 List列表类型 126 Set集合类型 128 Hash散列...

    Java面试宝典2010版

    1、Tomcat的优化经验 2、HTTP请求的GET与POST方式的区别 3、解释一下什么是servlet; 4、说一说Servlet的生命周期? 5、Servlet的基本架构 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么情况下调用...

    最新Java面试宝典pdf版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试笔试资料大全

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java数据编程指南

    使用服务程序进行数据访问 引言 使用服务程序的数据库连接 范例应用程序 JDBC驱动器之结语 小结 第15章 JSP JSP与服务程序 JSP与ASP 实现JSPs JavaServer Page范例 JavaBeans综述...

    大数据培训课程安排.pdf

    主要技术包括:java基础语法、java⾯向对象(类、对象、封装、继承、多态、 抽象类、接⼝、常见类、内部类、常见修饰符等) 、异常、集合、⽂件、IO、 MYSQL(基本SQL语句操作、多表查询、⼦查询、存储过程、事务、...

    JAVA面试宝典2010

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典-经典

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    java面试题大全(2012版)

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    Java面试宝典2012版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7...

    java面试宝典2012

    1、Tomcat的优化经验 93 2、HTTP请求的GET与POST方式的区别 93 3、解释一下什么是servlet; 93 4、说一说Servlet的生命周期? 93 5、Servlet的基本架构 94 6、SERVLET API中forward() 与redirect()的区别? 94 7、什么...

    Java面试宝典2012新版

    1、Tomcat的优化经验 85 2、HTTP请求的GET与POST方式的区别 85 3、解释一下什么是servlet; 85 4、说一说Servlet的生命周期? 86 5、Servlet的基本架构 86 6、SERVLET API中forward() 与redirect()的区别? 86 7、什么...

    java面试题

    59. 请对以下在J2EE中常用的名词进行解释(或简单描述) 40 59.1. web 容器 40 59.2. EJB容器 40 59.3. JNDI 40 59.4. JMS 41 59.5. JTA 41 59.6. JAF 41 59.7. RMI/IIOP 41 60. JAVA语言如何进行异常处理,关键字:...

Global site tag (gtag.js) - Google Analytics