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是这个作用。
分享到:
相关推荐
### Linux 下 Tomcat 优化设置最大连接数及内存 JConsole 监控 #### 一、Tomcat 内存优化 ##### 1.1 基本原理 在启动 Java 应用程序时,JVM(Java 虚拟机)会为应用程序分配一定的初始内存和最大内存。这些设置对...
监控Tomcat的内存使用情况,可以使用JConsole工具,它是一个强大的Java性能监视和管理工具。另外,你还可以通过编写简单的JSP页面来查看内存统计信息: ```jsp Runtime lRuntime = Runtime.getRuntime(); out....
3. **连接器状态**:监控HTTP、AJP等连接器的连接状态,如连接数、等待队列长度等,有助于分析服务器是否面临过载风险。 4. **应用健康检查**:通过定义特定的URL或端点,定期检查应用是否正常响应,例如使用curl或...
2. **监控Tomcat**:通过`jconsole`或`jvisualvm`等工具监控Tomcat的内存使用、线程状态等。 3. **部署应用**:将WAR文件放入 `$CATALINA_HOME/webapps` 目录,Tomcat会自动部署。 **五、优化Tomcat** 1. **调整...
- 限制并发连接数,通过调整`MaxThreads`和`MinSpareThreads`等参数。 - 开启压缩以减少网络传输,配置`conf/server.xml`的`<Connector>`属性`compressableMimeType`和`compression`。 - 使用JVM内存调优,设置...
2. **连接池**:Tomcat的连接池(`conf/server.xml`中的`<Executor>`元素)可以配置以提高并发性能,例如设置最大线程数和空闲线程存活时间。 3. **性能调优**:根据应用负载调整参数,如增大堆内存、优化JVM设置、...
2. 使用JVM的调优工具,如JConsole或VisualVM,监控和调整内存分配。 **启动和停止Tomcat**: 1. 在命令行中,使用`bin`目录下的相应脚本来启动或停止Tomcat。 通过以上步骤,你应该能成功配置并管理你的Tomcat...
2. **使用JMX监控**:开启JMX功能,通过JConsole或其他工具监控Tomcat的运行状态,如内存使用、线程池等。 3. **社区支持**:Apache Tomcat拥有庞大的用户社区,遇到难题时,可以在官方论坛或Stack Overflow等平台...
9. **监控与调优工具**: 使用JConsole、VisualVM等工具实时监控Tomcat的性能,以便及时发现和解决问题。 通过以上这些配置和优化,我们可以使Tomcat更好地适应每秒处理1000次请求的高并发场景。然而,具体数值需要...
通过修改conf/server.xml和conf/context.xml,可以设置连接器参数,例如增大最大连接数、调整超时时间等。 七、集群与负载均衡 Tomcat7.0支持集群部署,通过复制Session数据实现故障转移和负载均衡。可以借助mod_...
1. **Tomcat配置文件**:检查server.xml、web.xml等配置文件,确保配置正确无误,如最大连接数、线程池大小等。 2. **JVM参数**:确认JVM的启动参数是否合适,如-Xms、-Xmx设置是否过大或过小,是否设置了适当的垃圾...
2. JMX监控:启用JMX(Java Management Extensions),通过JConsole、VisualVM等工具实时监控Tomcat的运行状态。 总结,解压版的Tomcat6.0提供了灵活且高效的Java应用服务器解决方案。通过上述步骤,我们可以轻松地...
- 配置合理的最大连接数和线程池大小,以应对不同负载。 - 使用HTTPS进行安全通信,配置SSL证书。 - 分离日志文件,便于故障排查和维护。 - 考虑使用负载均衡和集群,提高可用性和可扩展性。 8. **常见问题及...
1. JMX监控:启用JMX(Java Management Extensions),通过JConsole等工具监控Tomcat性能。 2. 线程池配置:调整`conf/server.xml`中的`Executor`元素参数,如最大线程数、空闲时间等。 3. 响应缓存:启用静态资源的...
4. 启动与关闭:在bin目录下执行startup.bat(Windows)或sh startup.sh(Linux/Unix)启动Tomcat,关闭则使用shutdown.bat/shutdown.sh。 三、目录结构 - bin:包含启动和停止Tomcat的脚本。 - conf:存储服务器和...
2. **JMX监控**: 使用JMX工具如JConsole或VisualVM监控Tomcat运行状态。 3. **Tomcat Manager**: 通过`http://localhost:8080/manager/html`访问管理界面,进行应用部署、监控等操作。 总的来说,Tomcat 5.5.7是一...
- **连接器优化**:配置`<Connector>`元素,如调整最大连接数、超时时间等。 - **缓存策略**:利用`<Cache>`元素控制静态资源的缓存,减少服务器负载。 5. **集群与负载均衡** - **复制配置**:通过复制`shared/...
- 调整`conf/context.xml`和`conf/server.xml`中的参数,例如最大线程数、连接超时等,以适应不同负载。 - 使用JVM的内存调优选项(如-Xms, -Xmx)来优化性能。 9. **故障排查:** - 查看`logs/catalina.out`...
1. **调整连接器参数**:如最大连接数、超时时间等。 2. **线程池配置**:通过`Executor`元素定义线程池,优化并发性能。 3. **JVM调优**:调整JVM内存大小、垃圾回收策略等。 **故障排查:** 1. **日志查看**:...