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)。
分享到:
相关推荐
4. **配置简单**:Tomcat的配置文件结构清晰,易于理解和管理,使得开发者可以快速进行服务器配置和应用部署。 5. **开源与社区支持**:作为开源项目,Tomcat拥有庞大的开发者社区,提供了丰富的文档、教程和问题...
它支持丰富的数据结构,如字符串、哈希、列表、集合、有序集合,同时提供了丰富的API,使得与各种应用集成变得简单。在本示例中,我们将使用Redis作为Session的存储介质。 实现步骤如下: 1. **安装和配置Redis**...
【标题】:“Tomcat Redis Session”指的是在Tomcat集群环境中,通过Redis来实现Session的共享与同步,以解决集群中的Session一致性问题。 【描述】:“Tomcat集群Nginx使用Redis保证Session同步”这一场景中,通常...
无论是对于开发人员还是系统管理员而言,掌握Tomcat的工作机制都是至关重要的,它能帮助我们更有效地管理和优化Web应用程序的运行环境。 总之,Tomcat通过其精妙的架构设计和强大的功能,成为了Java Web开发领域不...
总之,"tomcat依赖jar包"代表了Tomcat运行时的核心组件,它们对于理解和优化Tomcat服务器的性能以及开发和部署基于Java的Web应用程序至关重要。了解这些JAR文件的功能和用途,有助于提升开发效率,确保应用程序的...
【标题】"Tomcat tools-x64-x86" 提供了针对64位和32位系统的Tomcat工具集合。 【描述】"Tomcat tools-x64-x86Tomcat tools-x64-x86Tomcat tools-x64-x86" 的重复描述可能是一个错误,但我们可以理解为这是强调这个...
Tomcat标签强调了讨论的主题是关于Tomcat服务器的相关知识,这包括但不限于安装配置、启动与关闭、日志管理、性能优化、安全性设置以及与其他应用服务器(如JBoss、WebLogic等)的比较。 【压缩包子文件的文件名称...
4. **Stream API**:提供了对集合进行声明式处理的新方式,使得操作集合数据更简单,同时支持并行流,提升性能。 5. **方法引用和构造器引用**:简化了代码,使调用已有方法或构造器更直观。 6. **类型注解**:...
1. **性能优化**:Tomcat7对内存管理和线程池进行了优化,提高了服务器的响应速度和并发处理能力。 2. **增强的安全性**:支持最新的SSL/TLS协议,提供了更好的安全保护,防止数据传输过程中的窃听和篡改。 3. **更...
Apache Tomcat是一个开源的软件应用服务器,主要用于部署和运行Java Servlet和JavaServer Pages(JSP)应用程序。...无论是初学者还是经验丰富的开发者,理解并掌握Tomcat的使用都能极大地提升开发效率。
本资源集合包含了Tomcat的两个主要版本——7.0和8.5.4,这些版本各自拥有不同的特性和改进,下面我们将详细探讨这两个版本的主要特点。 **Tomcat 7.0** Tomcat 7.0是Apache Tomcat的一个重要里程碑,它首次引入了...
本篇文章将深入探讨JDK 1.8及其在Linux环境下的安装与配置,同时也会提及与之配合使用的Tomcat 7服务器。 首先,JDK 1.8带来了Lambda表达式,这是Java语言的一次重大语法更新,使得代码更加简洁、易读。Lambda允许...
"Tomcat源码工具包"是一个针对Apache Tomcat服务器的源代码集合,它包含了Tomcat的完整源代码,对于开发者而言,这是一个深入理解Tomcat工作原理、进行定制开发或优化的重要资源。 【Tomcat简介】 Apache Tomcat是...
- **Servlet容器**:Tomcat的核心功能之一是作为一个Servlet容器,它能够承载并运行基于Servlet的应用程序。 - **组件结构**: - **Server**:整个Tomcat服务器的基础,包含多组服务,负责管理和启动各个Service。...
假设你需要通过 Nginx 来反向代理后端端口为 8080 的 Tomcat 服务,以下是一个简单的配置示例: ```nginx server { listen 80; // 监听的端口号 server_name 192.168.0.238; // server 名称 # 设置代理相关的...
- **什么是集群**:集群是一组协同工作的服务器,对客户端呈现为单一服务,但实际上是多服务器的集合。集群通过增加服务器数量来提升性能,并通过冗余机制保证服务的持续可用。 - **集群特性**:集群的两个关键特性...
本资源集合提供的"Jax-ws RI"(Java API for XML Web Services Reference Implementation)正是用于实现SOAP协议的Java工具包,它为开发和部署WebService提供了全面的支持。 首先,让我们详细了解一下JAX-WS(Java ...
5. **性能优化**:Tomcat 6.0.53版可能包括一些性能优化和bug修复。例如,调整线程池大小、启用连接器的Keep-Alive选项、使用NIO(非阻塞I/O)连接器等,都能提高服务器处理并发请求的能力。 6. **集群和负载均衡**...
在【描述】中提到的"简单实用"是指Tomcat的配置相对简单,对于小型到中型的Java Web应用来说,它是理想的部署平台。Tomcat 6.0是较早的版本,支持Java EE 5规范,提供了基本的Web服务功能;Tomcat 7.0则增加了对Java...
Redis提供了丰富的数据结构,如字符串、哈希、列表和集合,可以灵活地存储和操作Session数据。同时,为了防止单点故障,我们还可以将Redis配置为集群模式,或者配合持久化机制,以保证数据安全。 总的来说,通过...