`

Tomcat 5常用优化和配置

    博客分类:
  • J2EE
阅读更多

Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java 虚拟机。您可以选择自己的需要选择不同的操作系统和对应的JDK的版本
(只要是符合Sun发布的Java规范的),但我们推荐您使用Sun公司发布的 JDK。确保您所使用的版本是最新的,因为Sun公司和其它一些公司一直在为提高性能而对
java虚拟机做一些升级改进。一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%。


可以给Java虚拟机设置使用的内存,但是如果你的选择不对的话,虚拟机不会补偿。可通过命令行的方式改变虚拟机使用内存的大小。如下表所示有两个参数
用来设置虚拟机使用内存的大小。

参数

描述


-Xms

JVM初始化堆的大小


-Xmx

JVM堆的最大值


这两个值的大小一般根据需要进行设置。初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。一般而言,这个参数不重要。但是有的应用程序在大负载的
情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,
虚拟机就必须重复地增加内存来满足使用。由于这种原因,我们一般把-Xms和-Xmx设为一样大,而堆的最大值受限于系统使用的物理内存。
一般使用数据量较大的应用程序会使用持久对象,内存使用有可能迅速地增长。当应用程序需要的内存超出堆的最大值时虚拟机就会提示内存溢出,
并且导致应用服务崩溃。因此一般建议堆的最大值设置为可用内存的最大值的80%。


Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。


Windows下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:


JAVA_OPTS="-Xms【初始化内存大小】 -Xmx【可以使用的最大内存】"


需要把这个两个参数值调大。例如:


JAVA_OPTS="-Xms256m -Xmx512m"


表示初始化内存为256MB,可以使用的最大内存为512MB。


另外需要考虑的是Java提供的垃圾回收机制。虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。收集垃圾可以接受的速度与应用有关,
应该通过分析实际的垃圾收集的时间和频率来调整。如果堆的大小很大,那么完全垃圾收集就会很慢,但是频度会降低。如果你把堆的大小和内存的需要一致,
完全收集就很快,但是会更加频繁。调整堆大小的的目的是最小化垃圾收集的时间,以在特定的时间内最大化处理客户的请求。在基准测试的时候,为保证最好的性能,
要把堆的大小设大,保证垃圾收集不在整个基准测试的过程中出现。


如果系统花费很多的时间收集垃圾,请减小堆大小。一次完全的垃圾收集应该不超过 3-5 秒。如果垃圾收集成为瓶颈,那么需要指定代的大小,
检查垃圾收集的详细输出,研究 垃圾收集参数对性能的影响。一般说来,你应该使用物理内存的 80% 作为堆大小。当增加处理器时,记得增加内存,
因为分配可以并行进行,而垃圾收集不是并行的。


Tomcat 5常用优化和配置


1、JDK内存优化:

Tomcat默认可以使用的内存为128MB,Windows下,在文件{tomcat_home}/bin/catalina.bat,Unix下,在文件{tomcat_home}/bin/catalina.sh的前面,增加如下设置:

JAVA_OPTS="-Xms[初始化内存大小] -Xmx[可以使用的最大内存]

一般说来,你应该使用物理内存的 80% 作为堆大小。


2、连接器优化:

在tomcat配置文件server.xml中的配置中,和连接数相关的参数有:

maxThreads:

Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。默认值200。

acceptCount:

指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。默认值10。

minSpareThreads:

Tomcat初始化时创建的线程数。默认值4。

maxSpareThreads:

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

enableLookups:

是否反查域名,默认值为true。为了提高处理能力,应设置为false

connnectionTimeout:

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

maxKeepAliveRequests:

保持请求数量,默认值100。

bufferSize:

输入流缓冲大小,默认值2048 bytes。

compression:

压缩传输,取值on/off/force,默认值off。

其中和最大连接数相关的参数为maxThreads和acceptCount。如果要加大并发连接数,应同时加大这两个参数。web server允许的最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux是1000个左右。


3、tomcat中如何禁止和允许列目录下的文件

在{tomcat_home}/conf/web.xml中,把listings参数设置成false即可,如下:

<servlet>
...
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
...
</servlet>

4、tomcat中如何禁止和允许主机或IP地址访问
<Host name="localhost" ...>
  ...
  <Valve className="org.apache.catalina.valves.RemoteHostValve"
         allow="*.mycompany.com,www.yourcompany.com"/>
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         deny="192.168.1.*"/>
  ...
</Host>

 

这是我们服务器的配置,具体文件不能给你,因为涉及到公司机密,所以那一行我给你,我拷贝下来了

JAVA_OPTS="-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8

分享到:
评论
1 楼 mercyblitz 2010-06-24  


引用
这是我们服务器的配置,具体文件不能给你,因为涉及到公司机密,所以那一行我给你,我拷贝下来了


是不是买了RT Java 的License?

引用
JAVA_OPTS="-server -Xms512m -Xmx768m -XX:NewSize=128m -XX:MaxNewSize=192m -XX:SurvivorRatio=8


贵公司项目内存管理得这么好,还是只是一个小应用?

相关推荐

    tomcat终极优化设置.pdf

    tomcat终极优化设置 tomcat终极优化设置 PDF格式

    【高并发】高并发环境下如何优化Tomcat性能?看完我懂了!

    Tomcat作为最常用的Java Web服务器,随着并发量越来越高,Tomcat的性能会急剧下降,那有没有什么方法来优化Tomcat在高并发环境下的性能呢? Tomcat运行模式 Tomcat的运行模式有3种。 1.bio模式 默认的模式,性能非常...

    Web服务器三剑客运维配置实战 Nginx+JVM+Tomcat+HTTP协议.zip

    课程内容包括了Nginx进阶基础,Nginx配置提升,JVM虚拟机尝试,JVM运维实用排障工具,JVM监控工具,Tomcat配置,Tomcat运维与部署等Web服务器的必备运维部署技术。 ===============课程目录=============== (1)\...

    tomcat-jvm调优

    tomcat-jvm参数调优配置,以及常用参数的配置方式。并发数优化

    apache-tomcat-7.0.100防攻击版.zip

    此tomcat服务器已配置防数据泄露,高并发调优,不常用的危险请求方法禁用,只保留POST,GET等核心请求.字符过滤等

    Linux服务器下常用应用环境安装

    详细介绍了Linux服务器上常用WEB应用环境安装与配置及优化,包括: nginx配置及优化; mysql配置及优化; tomcat安装; nginx+tomcat建立虚拟主机; ant环境配置; jdk环境配置; 按日期切割tomcat日志; 按日期切割...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    5.1 Nginx与JSP(Tomcat)在Linux上的安装、配置 5.2 Nginx与ASP.NET(Mono+FastCGI)在Linux上的安装、配置 5.3 Nginx与Perl(FastCGI)在Linux上的安装、配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 6.1...

    Linux运维从入门到高级全套案例v3.rar

    5.3.2 Tomcat性能优化……… 5.3.3 Resin安装配置… 5.3.4 Resin性能优化…… 5.3.5 Resin多实例配置…… 5.4 Nginx Tomcat动静分离…… 5.5 LNAMP高性能架构配置……… 5.6构建DNS域名解析服务器 5.7 MySQL主从高...

    Nginx高性能WEB服务器视频.zip

    5 Nginx配置文件精讲二及多站点配置.ts 6 企业实战Nginx+Tomcat动静分离架构.ts 7 企业实战Nginx+PHP(FastCGI)高性能服务器.ts 8 Nginx与Tomcat-PHP架构优化.ts 9 Nginx配置优化及深入讲解 10 Nginx Rewrite规则...

    java框架搭建+IDEA使用技巧

    原创java框架搭建+idea使用技巧整理,最新最全java编码一篇到位,适用idea2020.2 1、JDK安装 2、Tomcat配置 3、Maven配置 4、Git配置 5、idea优化设置 6、常用插件安装 7、常用快捷键

    Nginx高性能WEB服务器视频.rar

    5 Nginx配置文件精讲二及多站点配置。rar 6企业实战Nginx+Tomcati动静分离架构.rar 7企业实战Nginx+PHP(FastCGI)高性能服务器.rar 8 Nginx与Tomcat-PHP架构优化.rar 9 Nginxi配置优化及深入讲解.ran l0 Nginx ...

    Java后端开发学习路线

    Java后端开发学习路线 Java后端开发学习路线主要包括以下阶段: Java基础: 掌握Java语法、面向对象编程、异常处理、集合类、I/O操作等。 数据库技术: 熟悉SQL语言。... 了解如何配置和管理服务器

    JAVA高并发高性能高可用高扩展架构视频教程

    企业常用框架springMVC基于注解+xml配置方式实现链接 WEB服务器优化之Tomcat7性能调优 JVM概述 Java开发技术之(项目工程的日志管理) 数据库连接池原理详解 Java企业级框架之核心技术(反射) Java-Base64算法(创新_...

    服务器全能环境UPUPW ANK 64位版.zip

    02、优化配置文件修复逻辑提升处理速度。  03、优化全局配置默认只启用PHP,MySQL,FTP,Memcached,Redis等常用功能。  04、优化数据库配置增强数据库稳定性与兼容性。  05、优化删除虚拟...

    nginx视频教程.txt

    基于docker实现nginx+keepalived实现web高可用web系统集群视频教程(无加密) P101_Nginx简介 P202_Nginx基于Docker安装以及运行...P3030_Nginx视频教程_springboot+nginx+tomcat +redis实现session共享 配置和测试

    实战Nginx.取代Apache的高性能Web服务器

    5.1 Nginx与JSP(Tomcat)在Linux上的安装、配置 5.2 Nginx与ASP.NET(Mono+FastCGI)在Linux上的安装、配置 5.3 Nginx与Perl(FastCGI)在Linux上的安装、配置 第6章 Nginx HTTP负载均衡和反向代理的配置与优化 ...

    Java面试宝典2020修订版V1.0.1.doc

    5、用css3语法中,如何实现一个矩形框的圆角效果和50%红色透明效果?,请写出关键脚本 12 6、Div与Table的区别 13 7、行级标签转块级标签,块级标签转行级标签 13 二、Java基础部分 13 1、java中有哪些基本类型? 13...

    实战nginx-张宴

    5.1 Nginx与JSP( Tomcat) 在Linux上的安装、 配置 5.2 Nginx与ASP.NET( Mono+FastCGI) 在Linux上的安装、 配置 5.3 Nginx与Perl( FastCGI) 在Linux上的安装、 配置 第6章 Nginx HTTP负载均衡和反向代理的配置...

    开涛高可用高并发-亿级流量核心技术

    8.2 系统优化和容灾 147 8.3 应急预案 148 第3部分高并发 153 9 应用级缓存 154 9.1 缓存简介 154 9.2 缓存命中率 155 9.3 缓存回收策略 155 9.3.1 基于空间 155 9.3.2 基于容量 155 9.3.3 基于时间 155 9.3.4 基于...

    必看1年-本科-程序员面试简历模版

     熟悉Mysql、Oracle等主流数据库管理系统、相关技术及工具,熟悉Redis等Nosql数据库的配置、部署和优化;  熟悉tomcat,jboss等常见应用服务器;  熟悉Linux及Apache、Ngnix等主流Web服务器的基本配置及常用...

Global site tag (gtag.js) - Google Analytics