- 浏览: 834282 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
JAVA_OPTS="-Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=%CATALINA_BASE\conf\logging.properties"
1、修改启动时内存参数、并指定JVM时区(在windows server 2008 下时间少了8个小时):
在Tomcat上运行j2ee项目代码时,经常会出现内存溢出的情况,解决办法是在系统参数中增加系统参数:
window下, 在catalina.bat最前面:
查看源代码打印帮助1 set JAVA_OPTS=-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m
一定加在catalina.bat最前面。
linux下,在catalina.sh最前面增加:
查看源代码打印帮助1 JAVA_OPTS="-XX:PermSize=64M -XX:MaxPermSize=128m -Xms512m -Xmx1024m -Duser.timezone=Asia/Shanghai"
注意:前后二者区别,有无set,有无双引号。
2、线程池配置(Tomcat6下)
使用线程池,用较少的线程处理较多的访问,可以提高tomcat处理请求的能力。使用方式:
首先。打开/conf/server.xml,增加
查看源代码打印帮助
<executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" minSpareThreads="20" maxIdleTime="60000" />
最大线程500(一般服务器足以),最小空闲线程数20,线程最大空闲时间60 秒。
然后,修改节点,增加executor属性,如:
查看源代码打印帮助
<connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1" redirectPort="443" />
注意:可以多个connector公用1个线程池。
3、调整连接相关Connector的参数:
查看源代码打印帮助
<connector executor="tomcatThreadPool" port="80" protocol="HTTP/1.1" connectionTimeout="60000" keepAliveTimeout="15000" maxKeepAliveRequests="1" redirectPort="443" maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="100" disableUploadTimeout="true"/>
参数说明:
* connectionTimeout - 网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
* keepAliveTimeout - 长连接最大保持时间(毫秒)。此处为15秒。
* maxKeepAliveRequests - 最大长连接个数(1表示禁用,-1表示不限制个数,默认100个。一般设置在100~200之间)
the maximum number of HTTP requests that can be held in the pipeline until the connection is closed by the server. Setting this attribute to 1 disables HTTP/1.0 keep-alive, as well as HTTP/1.1 keep-alive and pipelining. Setting this to -1 allows an unlimited number of pipelined or keep-alive HTTP requests. If not specified, this attribute is set to 100.
* maxHttpHeaderSize - http请求头信息的最大程度,超过此长度的部分不予处理。一般8K。
* URIEncoding - 指定Tomcat容器的URL编码格式。
* acceptCount - 指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个。defines the maximum queue length for incoming connection requests when all possible request processing threads are in use. Any requests received when the queue is full are refused. The default value is 10.
* disableUploadTimeout - 上传时是否使用超时机制
* enableLookups - 是否反查域名,取值为:true或false。为了提高处理能力,应设置为false
* bufferSize - defines the size (in bytes) of the buffer to be provided for input streams created by this connector. By default, buffers of 2048 bytes are provided.
* maxSpareThreads - 做多空闲连接数,一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程 the maximum number of unused request processing threads that are allowed to exist until the thread pool starts stopping the unnecessary threads. The default value is 50.
* maxThreads - 最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。。 the maximum number of request processing threads to be created by this Connector, which therefore determines the maximum number of simultaneous requests that can be handled. If not specified, this attribute is set to 200.
* minSpareThreads - 最小空闲线程数,Tomcat初始化时创建的线程数 the number of request processing threads that are created when this Connector is first started. The connector will also make sure it has the specified number of idle processing threads available. This attribute should be set to a value smaller than that set for maxThreads. The default value is 4.
* minProcessors - 最小空闲连接线程数,用于提高系统处理性能,默认值为10。(用于Tomcat4中)
* maxProcessors - 最大连接线程数,即:并发处理的最大请求数,默认值为75。(用于Tomcat4中)
备注:
Tomcat4中可以通过修改minProcessors和 maxProcessors的值来控制线程数。
在Tomcat5+主要对以下参数调整
maxThreads
Tomcat使用线程来处理接收的每个请求。这个值表示Tomcat可创建的最大的线程数。
acceptCount
指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理。
connnectionTimeout
网络连接超时,单位:毫秒。设置为0表示永不超时,这样设置有隐患的。通常可设置为30000毫秒。
minSpareThreads
Tomcat初始化时创建的线程数。
maxSpareThreads
一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
4、负载均衡、集群的配置
Tomcat6支持分布式部署,可以实现集群功能,提高响应能力。
5、利用JMX监控Tomcat运行情况,需要手工调整启动参数,如下:
打开cataline.bat,增加一行
查看源代码打印帮助
set JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.management.jmxremote.port=10090 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file="%CATALINA_BASE%\conf\logging.properties"
linux下修改cataline.sh:
查看源代码打印帮助
注意JDK\jre\lib\management \management.properties文件必须存在。
重新启动tomcat节点,然后用jconsole连接(此处端口 wei10090)
6、Tomcat增加一个应用
在server.xml的Host标签中增加行
查看源代码打印帮助1 <context displayName="OA" docBase="/app/web-apps/GACWP" path="" />
path代表上下文名称,空表示是根路径。
发表评论
-
Jackson2.x通用工具类
2014-11-03 11:38 4909import java.io.IOException; i ... -
面试题
2013-02-27 09:04 1709从1加到100(考虑减少循环次数)使用数学公式 首先要知道 ... -
单例延迟实例化
2013-01-23 08:55 13291.如果出于性能的考虑而需要对实例域使用延迟初始化,就使用双 ... -
java中重载与重写的区别
2013-01-21 10:03 925首先我们来讲讲:重载(Overloading) ( ... -
自定义标签
2012-12-15 12:58 1001package com.fsti.tag; import ... -
JAXB格式化beanToXml
2012-12-14 15:03 1283context = JAXBContext.n ... -
面向对象的特征有哪些方面?
2012-12-13 09:36 1009计算机软件系统是现实 ... -
java nio缓冲器
2012-12-05 17:03 3606缓冲器仅仅是一个" 多功能 " 的数组。可 ... -
面向对象三大特性一句话概括
2012-12-04 15:58 1553封装可以隐藏实现细节,使得代码模块化; 继承可以扩 ... -
Java序列化高级认识
2012-12-04 09:13 1067将 Java 对象序列化为二进制文件的 Java 序列化技术是 ... -
面向接口编程——提升系统多态性和可扩展性
2012-12-03 14:10 1286接口的本质 接口,在表面上是由几个没有主体代码的方 ... -
面向对象之多态
2012-11-23 19:22 876多态性(polymorphisn)是允许你将父对象设置成为和一 ... -
我对"秒杀"在技术性上的一些看法
2012-11-22 11:31 1014秒杀,是指电子商务 ... -
项目编码
2012-11-16 13:59 1158看两个项目所用的编码是否一样 Java的乱码问题: ... -
SVN错误:Attempted to lock an already-locked dir
2012-11-07 09:08 1030出现这个问题后使用“ ... -
面向对象的三个基本特征
2012-11-04 08:31 1088面向对象的三个基本特征是:封装、继承、多态。 封装 封装最 ... -
预编译防sql注入
2012-11-03 20:23 1973prepareStatement会先初始化SQL,先把这个SQ ... -
Java类与对象的初始化
2012-10-19 09:33 897Java类与对象的初始化 面试的时候,经常会遇到这样的笔试题 ... -
commons bean
2012-10-19 09:15 892这是两个javabean对象 package com.bea ... -
java工具DateUtil
2012-10-12 14:42 1056//一年内的周一 public final class Da ...
相关推荐
在文件中添加以下内容来指定 JVM 的内存参数: ```sh JAVA_OPTS='-Xms512m -Xmx1024m' ``` 其中,`-Xms512m` 表示 JVM 启动时的初始堆内存大小为 512MB;`-Xmx1024m` 表示 JVM 最大堆内存大小为 1GB。 3. **...
JVM 内存参数详解以及配置调优 JVM 内存参数是 Java 虚拟机中最重要的参数之一,它直接影响着 Java 应用程序的性能和稳定性。在这个资源中,我们将详细讨论 JVM 内存参数的配置和调优,包括 JVM 的结构、内存管理、...
Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 区别 Java JVM 虚拟机选项 Xms Xmx PermSize MaxPermSize 是 Java ...因此,合理地配置 JVM 的内存参数是非常重要的,可以避免内存溢出错误和提高应用的性能。
### JVM内存参数调优详解 #### 一、概述 Java虚拟机(JVM)是执行Java字节码的软件环境,为了提高Java程序的性能和稳定性,合理调整JVM的内存参数至关重要。根据Java启动参数的不同分类,我们可以将其分为标准参数...
在开发和调优Java应用时,了解和使用JVM启动参数至关重要。这些参数可以调整JVM的行为,优化内存分配、垃圾收集、线程设置等。以下是一些常见的JVM启动参数及其详细解释: 1. **-Xms和-Xmx**: 这两个参数用于设置...
二是物理解决,增大物理内存,然后通过调整 JVM 的参数来调整内存的大小。 JVM 内存溢出类型有两种:java.lang.OutOfMemoryError: PermGen space 和 java.lang.OutOfMemoryError: Java heap space。PermGen space ...
#### 一、内存参数设置 在JVM参数配置中,内存管理是最为关键的部分之一。下面我们将详细解释几个重要的内存相关参数及其作用: 1. **-Xms**: 设置JVM启动时的初始堆内存大小。例如,`-Xms1024m`表示初始堆内存为...
### JVM内存空间分配详解 #### 一、JVM内存模型概览 ...综上所述,理解JVM内存分配机制对于Java开发者来说至关重要,这不仅有助于编写高效、稳定的代码,还能在遇到性能瓶颈时快速定位问题并进行优化。
JVM_启动参数_总结。详细介绍JVM的详细启动参数及JVM垃圾回收机制。
为了解决这个问题,我们需要调整Tomcat启动时的Java虚拟机(JVM)参数,具体来说是添加或修改`-Duser.timezone`参数,以确保Tomcat运行在一个正确的时区环境中。 #### 四、详细步骤 1. **定位启动脚本** 首先,...
在开发和优化Java应用程序时,理解JVM内存日志至关重要,因为它可以帮助我们诊断性能问题,例如内存泄漏或过度的垃圾收集。`jmap`是Java的一个命令行工具,用于获取堆内存的详细信息,包括堆dump,这对于分析JVM内存...
该文档描述了开发测试环境中Docker及JVM内存限制部署方案
JVM参数调优部分未在提供的内容中显示,但一般来说,JVM参数调优会涉及到调整堆内存分配、堆外内存大小、垃圾回收器选择、新生代和老年代的比例,以及各种相关参数如-Xms、-Xmx、-Xmn、-XX:+UseG1GC等。这些调整能...
在JDK 8及之前的版本中,可以通过修改JVM参数`-XX:PermSize`和`-XX:MaxPermSize`来控制永久代的大小。但在JDK 8及更高版本中,类的元数据被移到了元空间,因此不再出现此类错误。 3. **`java.lang.StackOverflow...
- `-Xms20M -Xmx20M -Xmn10M -XX:+UseSerialGC`:设置初始堆大小、最大堆大小、新生代大小,并指定使用串行GC。 - `-Xms20M -Xmx20M -Xmn10M -XX:PretenureSizeThreshold=3145728 -XX:+UseSerialGC`:设置对象大小...
在启动Java应用程序时,可以通过命令行参数来设置JVM的初始堆内存和最大堆内存。常用的参数有: - `-Xms<size>`:设置初始堆内存大小。例如,`-Xms256M`表示初始堆内存为256MB。 - `-Xmx<size>`:设置最大堆内存...
本文将深入探讨JVM内存参数调优的相关知识点,帮助开发者更好地理解并掌握如何优化JVM的内存设置。 #### JVM内存概述 JVM内存主要分为以下几个部分: 1. **堆内存(Heap Memory)**:用于存储对象实例、数组等...
3. **准备**:在验证通过后,JVM为类的静态变量分配内存,并赋予默认初始值。这些变量存储在方法区的运行时常量池中。 4. **解析**:此时,JVM将常量池中的符号引用转换为直接引用。这个阶段不是必需的,可以在类或...