[vip专享]linux下tomcat优化,设置最大连接数,内存,Jconsole监控
linux 允许的最大连接数
linux 允许的最大连接数Linux操作系统是一个开源的操作系统,它具有非常高的可定制性和灵活性。
在Linux环境下,系统管理员可以根据自己的需求进行一些系统的配置调整。
其中一个重要的配置是允许的最大连接数。
Linux内核默认情况下对最大连接数有限制,这是为了保护系统免受过多的连接请求。
不过,对于一些高负载的应用程序来说,这个限制可能会成为瓶颈。
这时,需要对最大连接数进行调整。
要调整Linux允许的最大连接数,可以通过修改以下两个参数:1. `net.core.somaxconn`: 这个参数控制内核中每个监听的TCP socket 所能接受的最大未完成连接数。
默认值是128,可以设置为更高的值。
2. `net.ipv4.tcp_max_syn_backlog`: 这个参数控制SYN队列的最大长度,即半连接队列的最大长度。
默认值是1024,可以设置为更高的值。
修改这两个参数的方法如下:1. 通过命令行修改,可以使用以下命令:```sysctl -w net.core.somaxconn=4096sysctl -w net.ipv4.tcp_max_syn_backlog=4096```1. 如果想要永久修改,可以编辑`/etc/sysctl.conf`文件,添加以下内容:```net.core.somaxconn = 4096net.ipv4.tcp_max_syn_backlog = 4096```修改完以上两个参数后,可以通过以下命令查看当前的连接数限制:```sysctl -a | grep somaxconnsysctl -a | grep tcp_max_syn_backlog```总之,通过调整Linux允许的最大连接数,可以使高负载的应用程序更好地运行,提高系统的稳定性和性能。
Liunx下Tomcat调优指南
Liunx下Tomcat调优指南1概述由于Tomcat的运行依赖于JVM,从虚拟机的角度我们把Tomcat的调整分为外部环境调优和自身调优两类来描述。
2调优方案1.1外部环境调优1)操作系统性能优化对于操作系统优化来说,是尽可能的增大可使用的内存容量、提高CPU的频率,保证文件系统的读写速率等。
经过压力测试验证,在并发连接很多的情况下,CPU的处理能力越强,系统运行速度越快。
对于并发数很大的情况来说,带宽也是影响系统性能的一个重要指标,因此要实现系统的快速响应,必须拥有较高的带宽。
建议使用64位操作系统,如果是32位操作系统,建议使用企业版。
2)JAVA虚拟机性能优化Tomcat需要依赖Java虚拟机运行。
根据客户选用的主机的操作系统选择对应的JDK 的版本。
无论哪个厂商的JDK,都建议使用最新的版本。
虚拟机可通过命令行的方式改变虚拟机使用内存的大小。
如下表所示有两个参数用来设置虚拟机使用内存的大小。
Tomcat默认可以使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
Windows下,在文件% TOMCAT_HOME %/bin/catalina.bat,Unix下,在文件$TOMCAT_HOME/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS=’-Xms【初始化内存大小】-Xmx【可以使用的最大内存】’需要把这个两个参数值调大。
例如:JAVA_OPTS='-Xms256m -Xmx512m',表示初始化内存为256MB,可以使用的最大内存为512MB。
另外需要考虑的是Java提供的垃圾回收机制。
虚拟机的堆大小决定了虚拟机花费在收集垃圾上的时间和频度。
收集垃圾可以接受的速度与应用有关,应该通过分析实际的垃圾收集的时间和频率来调整。
如果堆的空间很大,那么完全垃圾收集(FULL GC)就会很慢,但是频度会降低。
如果在客户系统中把堆的大小和内存的需要一致,完全收集就很快,但是会更加频繁。
linux下tomcat优化设置最大连接数内存jconsole监控
linux下tomcat优化,设置最大连接数,内存,Jconsole监控分类:Tomcat 2012-08-01 17:31 551人阅读评论(0) 收藏举报tomcatlinux优化javastatisticsjmx1. 添加tomcat管理员帐户添加管理员账户tomcat-users.xml< ?xml version='1.0' encoding='utf-8'?>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(最小内存)。
tomcat常用的调优参数
tomcat常用的调优参数Tomcat常用的调优参数Tomcat是一个开源的Java Servlet容器,广泛应用于Java Web 应用程序的部署和运行。
为了提高Tomcat的性能和稳定性,我们可以通过调优参数来优化其配置。
本文将介绍一些常用的Tomcat 调优参数,帮助您更好地配置和优化T omcat服务器。
1. 内存设置- -Xms: 设置JVM的初始堆大小,建议设置为物理内存的1/4或1/3。
- -Xmx: 设置JVM的最大堆大小,建议设置为物理内存的1/2或2/3。
- -XX:MaxPermSize: 设置JVM的永久代大小,建议设置为256MB或512MB。
- -XX:MaxMetaspaceSize: 设置JVM的元空间大小,建议设置为256MB或512MB。
2. 线程设置- maxThreads: 设置Tomcat的最大线程数,建议根据服务器的硬件配置和并发请求数进行调整。
- acceptCount: 设置Tomcat接受请求的队列大小,建议设置为200或300。
- connectionTimeout: 设置Tomcat的连接超时时间,建议设置为30秒或60秒。
3. 连接器设置- protocol: 设置连接器的协议,常用的有HTTP/1.1和AJP/1.3。
- port: 设置连接器的监听端口,建议使用80端口作为HTTP连接器的默认端口。
- maxKeepAliveRequests: 设置每个Keep-Alive连接的最大请求数,建议设置为100或200。
- keepAliveTimeout: 设置Keep-Alive连接的超时时间,建议设置为5秒或10秒。
4. 缓存设置- cacheSize: 设置Tomcat的静态文件缓存大小,建议根据静态文件的数量和大小进行调整。
- cacheTTL: 设置静态文件缓存的过期时间,建议设置为1小时或更长。
- cacheObjectMaxSize: 设置缓存对象的最大大小,建议根据缓存对象的平均大小进行调整。
TOMCAT服务器中的性能优化
TOMCAT服务器中的性能优化Tomcat是一款开源的Java Servlet容器,广泛应用于企业级Web应用程序的开发和运行。
由于其使用方便、可灵活配置的优点,被越来越多的开发者所喜爱,并成为了Java Web开发的重要组成部分。
然而,Tomcat服务器在高并发的情况下可能会出现性能问题,影响Web应用程序的正常运行。
因此,本文将介绍Tomcat服务器中的性能优化方法,帮助开发者更好地优化自己的Web应用程序。
一、Tomcat的架构在进行Tomcat服务器的性能优化前,我们需要了解其架构。
Tomcat服务器的架构主要包括以下几个组件:1. Servlet容器:负责处理HTTP请求和响应,并将它们转发给相应的Servlet。
2. 连接器:负责与客户端建立TCP连接、处理协议和编解码等任务。
3. Engine:Tomcat服务器的核心组件,负责管理虚拟主机、容器和线程池等资源。
4. Host:虚拟主机,负责处理来自特定主机的请求,并将请求转发给相应的Context。
5. Context:Web应用程序的执行环境,包括Servlet、JSP和静态文件等资源。
6. Valve:过滤器,可以拦截请求和响应,并在它们到达目的地之前对它们进行处理。
了解Tomcat服务器的架构有助于我们更好地理解性能优化的方法和原理。
二、基础优化在进行高级优化前,我们需要进行一些基础优化,以确保Tomcat服务器的最大性能。
1. 使用最新版本的Java和Tomcat:Java的性能和稳定性在不断提高,因此使用最新版本的Java和Tomcat可以提高服务器的性能和稳定性。
2. 调整Tomcat配置参数:Tomcat服务器的性能受到其配置参数的影响,因此调整Tomcat的配置参数可以提高服务器的性能。
可以通过更改server.xml文件来修改Tomcat参数。
调整参数时需要注意保持平衡,避免调整一个参数而使其他参数受到负面影响。
Tomcat6 一些调优设置内存和连接数
Tomcat6 一些调优设置内存和连接数公司的一个服务器使用Tomcat6默认配置,在后台一阵全点击服务器就报废了,查了一下就要是PERMSIZE默认值过小造成(16-64)TOMCAT_HOME/bin/catalina.sh添加一行:JAVA_OPTS=" -XX:PermSize=64M -XX:MaxPermSize=128m"问题解决(可能为调用JAR包过多原因)下面是网上看到一些设置JAVA_OPTS="-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true "当在对其进行并发测试时,基本上30个USER上去就当机了,还要修改默认连接数设置:以下红色四行TOMCAT6中好相没有,手工加上就可以了,基本上可以解决连接数过大引起的死机。
具体数值可跟据实际情况设置<Connector port="80" protocol="HTTP/1.1"maxThreads="600"minSpareThreads="100"maxSpareThreads="500"acceptCount="700"connectionTimeout="20000"redirectPort="8443" />这样设置以后,基本上没有再当机过。
maxThreads="600" ///最大线程数minSpareThreads="100"///初始化时创建的线程数maxSpareThreads="500"///一旦创建的线程超过这个值,Tomcat就会关闭不再需要的socket线程。
linux tomcat jvm参数
在Linux系统下,可以通过修改Tomcat的启动脚本设置JVM参数。
具体步骤如下:
1. 打开Tomcat的启动脚本(通常是catalina.sh或catalina.bat),通常位于Tomcat安装目录下的bin文件夹中。
2. 在脚本中找到JAVA_OPTS或CATALINA_OPTS这一行,如果这一行不存在,可以在脚本开头添加一行。
3. 在该行中设置JVM参数,例如:
* -Xms512m:设置Java堆的初始大小为512MB。
* -Xmx1024m:设置Java堆的最大大小为1024MB。
* -Xss2m:设置每个线程的堆栈大小为2MB。
* -XX:MaxPermSize=256m:设置永久代的最大大小为256MB(仅适用于Java 7及更早版本)。
4. 保存并关闭启动脚本。
5. 重新启动Tomcat服务器,使设置生效。
请注意,JVM参数的具体设置取决于应用程序的需求和可用资源。
以上参数只是一个示例,您可以根据实际情况进行调整。
另外,请确保您具有足够的系统资源来支持所设置的JVM参数,以避免系统资源不足的问题。
Tomcat性能优化及JVM内存工作原理
Java性能优化原则:代码运算性能、内存回收、应用配置(影响Java程序主要原因是垃圾回收,下面会重点介绍这方面)代码层优化:避免过多循环嵌套、调用和复杂逻辑。
Tomcat调优主要内容如下:1、增加最大连接数2、调整工作模式3、启用gzip压缩4、调整JVM内存大小5、作为Web服务器时,与Apache整合或Nginx6、合理选择垃圾回收算法7、尽量使用较新JDK版本生产配置实例:<Connectorport="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"maxThreads="1000"minSpareThreads="100"maxSpareThreads="200"acceptCount="900"disableUploadTimeout="true"connectionTimeout="20000"URIEncoding="UTF-8"enableLookups="false"redirectPort="8443"compression="on"compressionMinSize="1024"compressableMimeType="text/html,text/xml,text/css,text/java script"/>参数说明:org.apache.coyote.http11.Http11NioProtocol:调整工作模式为NiomaxThreads:最大线程数,默认150。
增大值避免队列请求过多,导致响应缓慢。
minSpareThreads:最小空闲线程数。
tomcat常用的调优参数
tomcat常用的调优参数调优Tomcat 的性能可以通过调整一些参数来提升其运行效率和吞吐量。
以下是一些常用的Tomcat 调优参数:1. 内存设置:- `-Xms`:设置JVM 初始堆内存大小。
- `-Xmx`:设置JVM 最大堆内存大小。
-`-XX:MaxPermSize`(适用于Java 7 之前的版本):设置JVM 持久代(PermGen)的最大大小。
2. 线程池设置:- `maxThreads`:在`<Connector>` 元素中设置最大线程数。
- `acceptCount`:在`<Connector>` 元素中设置等待队列的最大大小。
3. 垃圾回收(GC)设置:- `-XX:+UseConcMarkSweepGC`:使用并发标记清除(CMS)垃圾收集器。
- `-XX:+CMSParallelRemarkEnabled`:启用CMS 垃圾收集器的并行标记阶段。
- `-XX:+UseParNewGC`:使用ParNew 垃圾收集器与CMS 进行协作。
4. 连接器设置:- `connectionTimeout`:在`<Connector>` 元素中设置连接超时时间。
- `keepAliveTimeout`:在`<Connector>` 元素中设置Keep-Alive 连接的超时时间。
5. 静态资源缓存:- `<Context>` 元素中的`cachingAllowed` 和`cacheMaxSize`:启用静态资源缓存,并设置最大缓存大小。
6. 请求处理:-`<Connector>` 元素中的`maxKeepAliveRequests`:设置每个Keep-Alive 连接允许的最大请求数量。
以上只是一些常见的调优参数示例,具体的参数设置和效果可能取决于你的应用程序和环境。
建议在调优前备份配置文件,并根据具体的需求和实际情况进行调整。
tomcat优化方案
--tomcat优化方案-- 修改tomcat server.xml 文件<Connector port="8080" protocol="HTTP/1.1"maxThreads="500" --最多同时处理的连接数,Tomcat使用线程来处理接收的每个请求。
这个值表示Tomcat可创建的最大的线程数minSpareThreads="25"maxSpareThreads="75" --最多空闲连接数,一旦创建的线程超过这个值,Tomcat 就会关闭不再需要的socket线程minProcessors="10" --最小空闲连接线程数,用于提高系统处理性能,默认值为10。
maxProcessors="1024" --最大连接线程数,即:并发处理的最大请求数,默认值为75 最大值根据环境不同自行调整acceptCount="1024" --指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认为10个enableLookups="false" --是否反查域名,取值为:true或false。
为了提高处理能力,应设置为falseredirectPort="8443"connectionTimeout="30000" --网络连接超时,单位:毫秒。
设置为0表示永不超时,这样设置有隐患的。
通常可设置为30000毫秒。
disableUploadTimeout="true" --上传时是否使用超时机制/>--其中和最大连接数相关的参数为maxProcessors和acceptCount。
如果要加大并发连接数,应同时加大这两个参数--最大连接数还受制于操作系统的内核参数设置,通常Windows是2000个左右,Linux 是1000个左右--设置tomcat可使用内存大小默认jvm 占128m--linux修改tomcat bin 目录下的catalina.sh 文件在第一行加入JAVA_OPTS='-server –Xms256m -Xmx2048m'--windows在catalina.bat最前面加入set JAVA_OPTS=-server –Xms256m-Xmx2048mserver:一定要作为第一个参数,在多个CPU时性能佳-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些-Xmx:java heap最大值,使用的最大内存上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。
tomcat性能调优方案
tomcat性能调优方案在开发和部署Web应用程序时,Tomcat是一款广泛使用的Java Servlet容器。
然而,随着业务的增长和用户量的上升,Tomcat性能问题可能会成为一个挑战。
为了确保应用程序的高效运行,我们需要采取一些性能调优措施。
本文将介绍一些Tomcat性能调优方案,以提高应用程序的性能和响应速度。
一、优化Tomcat服务器配置1. 调整内存参数:通过修改Tomcat的启动脚本‘catalina.sh’(Linux)或‘catalina.bat’(Windows),可以配置JVM的内存参数。
可以增加-Xms和-Xmx参数来增加JVM的初始堆大小和最大堆大小。
适当调整这些参数可以提高应用程序的内存管理效率,从而提高性能。
2. 调整连接器配置:Tomcat使用连接器来处理HTTP请求,可以通过调整连接器的配置参数来提高性能。
例如,调整maxThreads参数来增加同时处理请求的线程数,增加acceptCount参数来增加等待处理的请求队列长度,以及调整keepAliveTimeout参数来控制HTTP连接的持久化时间等。
二、优化应用程序代码1. 减少HTTP请求:每次HTTP请求都会消耗系统资源,并且增加网络延迟。
通过优化应用程序代码,减少不必要的HTTP请求可以提高性能。
例如,可以使用CSS sprites来减少图片加载请求,合并和压缩JavaScript和CSS文件来减少文件加载请求等。
2. 使用缓存:合理使用缓存机制可以减少对数据库和其他资源的请求次数,提高应用程序的性能。
例如,可以使用缓存技术来缓存数据库查询结果、页面片段或整个页面,以减少对数据库和服务器的访问次数。
3. 避免同步阻塞:多线程并发请求可能会导致同步阻塞,影响应用程序的性能。
通过合理使用同步机制和锁机制,避免同步阻塞可以提高性能。
例如,使用线程池来管理并发请求的线程,使用并发集合类来替代同步集合类等。
三、数据库优化1. 数据库索引优化:在使用数据库时,合理的索引设计可以大大提高查询性能。
设置TOMCAT请求超时时间和最大连接数
设置TOMCAT请求超时时间和最⼤连接数可以通过设置tomcat下conf⽂件夹的server.xml⽂件,对请求连接数和请求超时时间进⾏设置。
1.<Connector port="8080" protocol="HTTP/1.1"2.connectionTimeout="20000"3.redirectPort="8443" acceptCount="500" maxThreads="400" />connectionTimeout以毫秒为单位,默认设置为20秒。
通过修改该参数,可以修改tomcat的请求超时时间;关于修改最⼤并发请求连接数,需要修改maxThreads和acceptCount两个参数,其中,maxThreads的介绍如下:(最⼤并发请求数)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. If an executor is associated with this connector, this attribute is ignored as the connector will execute tasks using the executor rather than an internal thread pool.⽽acceptCount的介绍为:(传⼊连接请求的最⼤队列长度)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 will be refused. The default value is 100.所以两者的默认值分别是200和100,要调整Tomcat的默认最⼤连接数,可以增加这两个属性的值,并且使acceptCount⼤于等于maxThreads。
优化Tomcat配置(内存、并发、缓存等方面)方法详解
优化Tomcat配置(内存、并发、缓存等⽅⾯)⽅法详解Tomcat有很多⽅⾯,我从内存、并发、缓存等⽅⾯介绍优化⽅法。
⼀.Tomcat内存优化Tomcat内存优化主要是对 tomcat 启动参数优化,我们可以在 tomcat 的启动脚本 catalina.sh 中设置 java_OPTS 参数。
JAVA_OPTS参数说明server 启⽤jdk 的 server 版;-Xms java虚拟机初始化时的最⼩内存;-Xmx java虚拟机可使⽤的最⼤内存;-XX: PermSize 内存永久保留区域-XX:MaxPermSize 内存最⼤永久保留区域服务器参数配置现公司服务器内存⼀般都可以加到最⼤2G ,所以可以采取以下配置:JAVA_OPTS='-Xms1024m -Xmx2048m -XX: PermSize=256M -XX:MaxNewSize=256m -XX:MaxPermSize=256m'配置完成后可重启Tomcat ,通过以下命令进⾏查看配置是否⽣效:⾸先查看Tomcat 进程号:sudo lsof -i:9027我们可以看到Tomcat 进程号是 12222 。
查看是否配置⽣效:sudo jmap – heap 12222我们可以看到MaxHeapSize 等参数已经⽣效。
⼆.Tomcat并发优化1.Tomcat连接相关参数在Tomcat 配置⽂件 server.xml 中的 <Connector port="9027" protocol="HTTP/1.1" maxHttpHeaderSize="8192" minProcessors="100" maxProcessors="1000" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true"/>2.调整连接器connector的并发处理能⼒1>参数说明maxThreads 客户请求最⼤线程数minSpareThreads Tomcat初始化时创建的 socket 线程数maxSpareThreads Tomcat连接器的最⼤空闲 socket 线程数enableLookups 若设为true, 则⽀持域名解析,可把 ip 地址解析为主机名redirectPort 在需要基于安全通道的场合,把客户请求转发到基于SSL 的 redirectPort 端⼝acceptAccount 监听端⼝队列最⼤数,满了之后客户请求会被拒绝(不能⼩于maxSpareThreads )connectionTimeout 连接超时minProcessors 服务器创建时的最⼩处理线程数maxProcessors 服务器同时最⼤处理线程数URIEncoding URL统⼀编码2>Tomcat中的配置⽰例 <Connector port="9027" protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="100" maxSpareThreads="1000" minProcessors="100" maxProcessors="1000" enableLookups="false" URIEncoding="utf-8" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true"/>3.Tomcat缓存优化1>参数说明c ompression 打开压缩功能compressionMinSize 启⽤压缩的输出内容⼤⼩,这⾥⾯默认为2KBcompressableMimeType 压缩类型connectionTimeout 定义建⽴客户连接超时的时间. 如果为 -1, 表⽰不限制建⽴客户连接的时间2>Tomcat中的配置⽰例 <Connector port="9027" protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="100" maxSpareThreads="1000" minProcessors="100" maxProcessors="1000" enableLookups="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" URIEncoding="utf-8" acceptCount="1000" redirectPort="8443" disableUploadTimeout="true"/>4.参考配置1>旧有的配置参考⽹络对服务器做过如下配置,拿出来分享下: <Connector port="9027" protocol="HTTP/1.1" maxHttpHeaderSize="8192" maxThreads="1000" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" compression="on" compressionMinSize="2048" compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" connectionTimeout="20000" URIEncoding="utf-8" acceptCount="200" redirectPort="8443" disableUploadTimeout="true" />后来发现在访问量达到3 百万多的时候出现性能瓶颈。
Tomcat的常用设置及优化
Tomcat的常用设置及优化当我们公司使用tomcat作为web应用服务器的规模越来越大,为保证T omcat配置安全,防止信息泄露,恶意攻击以及配置的安全规范,特制定此T omcat安全配置规范。
1|1Tomcat用户设置useradd -d /tomcat -u 501 tomcatecho "123" |passwd --stdin tomcatsu - tomcatid tomcat# uid=501(tomcat) gid=1000(tomcat) groups=1000(tomcat) pwd# /tomcat1|2Tomcat配置wgethttps:///apache/tomcat/tomcat-8/v8.5.55/bin/apache-tomcat-8.5.55.tar.gztail -5 .bash_profileJAVA_HOME=/usr/local/jdkexport PATH=$JAVA_HOME/bin:$PATHexportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar export CATALINA_HOME=/usr/local/tomcat1|3应用程序配置mkdir webappstar xvf apache-tomcat-8.5.55.tar.gz -C /tomcat/webapps//tomcat/webapps/apache-tomcat-8.5.55/bin/startup.sh2|0安全设置规范2|1telnet管理端口保护(强制)2|2ajp链接端口保护(推荐)2|3禁用管理端(强制)tomcat/webapps/*tomcat/conf/tomcat-user.xml 2|4降权启动(强制)2|5文件列表访问控制(强制)2|6版本信息隐藏(强制)2|7Server header重写(推荐)2|8访问限制(可选)2|9起停脚本权限回收(推荐)chmod 744–R tomcat/bin/* 2|10访问日志格式规范(推荐)2|11屏蔽DNS查询enableLookups: 调用request,getRemoteHost()执行DNS查询,以返回远程主机的主机名,如果设置为false,<Connector enableLookups="false"/>2|12压缩管理tomcat作为一个应用服务器,也是支持gzip 压缩功能的。
tomcat参数调优
tomcat参数调优1、查看linux服务器环境,cpu数,内存数-bash-4.2$ cat /proc/cpuinfo |grep processorprocessor : 0processor : 1processor : 2processor : 3processor : 4processor : 5processor : 6processor : 7-bash-4.2$ cat /proc/meminfo | grep MemTotalMemTotal: 32948192 kB2、设置tomcat启动参数参数说明:-servertomcat默认是以⼀种叫java –client的模式来运⾏的,server即意味着你的tomcat是以真实的production的模式在运⾏的,这也就意味着你的tomcat以 server模式运⾏时将拥有:更⼤、更⾼的并发处理能⼒,更快更强捷的JVM垃圾回收机制,可以获得-Xms–Xmx即JVM内存设置了,把Xms与Xmx两个值设成⼀样是最优的做法。
如何知道我的JVM能够使⽤最⼤值?在设这个最⼤内存即Xmx值时请先打开⼀个命令⾏,键⼊如下的命令:qiaohongdeMacBook-Pro:bin hong$ java -Xmx3500m -versionjava version "1.8.0_131"Java(TM) SE Runtime Environment (build 1.8.0_131-b11)Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)看,能够正常显⽰JDK的版本信息,说明,这个值你能够⽤。
由于我系统是64位的,没有内存限制,32位最⼤只能⽤2g内存(理论值)。
–Xmn设置年轻代⼤⼩为512m。
整个堆⼤⼩=年轻代⼤⼩ + 年⽼代⼤⼩ + 持久代⼤⼩。
Linux和Windows中tomcat修改内存大小的方法
Linux和Windows中tomcat修改内存⼤⼩的⽅法其初始空间(即-Xms)是物理内存的1/64,最⼤空间(-Xmx)是物理内存的1/4。
可以利⽤JVM提供的-Xmn -Xms -Xmx等选项可进⾏设置实例,以下给出1G内存环境下java jvm 的参数设置参考:复制代码代码如下:JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”JAVA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m-XX:MaxPermSize=256m -XX:NewSize=192m -XX:MaxNewSize=384m”CATALINA_OPTS=”-server -Xms768m -Xmx768m -XX:PermSize=128m-XX:MaxPermSize=256m-XX:NewSize=192m -XX:MaxNewSize=384m”Linux:在/usr/local/apache-tomcat-5.5.23/bin⽬录下的catalina.sh添加:JAVA_OPTS='-Xms512m -Xmx1024m'要加“m”说明是MB,否则就是KB了,在启动tomcat时会报内存不⾜。
-Xms:初始值-Xmx:最⼤值-Xmn:最⼩值Windows在catalina.bat最前⾯加⼊复制代码代码如下:set JAVA_OPTS=-Xms128m -Xmx350m如果⽤startup.bat启动tomcat,OK设置⽣效.够成功的分配200M内存.但是如果不是执⾏startup.bat启动tomcat⽽是利⽤windows的系统服务启动tomcat服务,上⾯的设置就不⽣效了,就是说set JAVA_OPTS=-Xms128m -Xmx350m 没起作⽤.上⾯分配200M内存就OOM了windows服务执⾏的是bin/tomcat.exe.他读取注册表中的值,⽽不是catalina.bat的设置.解决办法:复制代码代码如下:修改注册表HKEY_LOCAL_MACHINE/SOFTWARE/Apache Software Foundation/Tomcat Service Manager/Tomcat5/Parameters/JavaOptions原值为复制代码代码如下:-Dcatalina.home=”C:/ApacheGroup/Tomcat 5.0″-Djava.endorsed.dirs=”C:/ApacheGroup/Tomcat 5.0/common/endorsed”-Xrs加⼊复制代码代码如下:-Xms300m -Xmx350m重起tomcat服务,设置⽣效(Tomcat 5.5 的话,在Apache Software Foundation下有个Procrun 2.0的 Tomcat5/Parameters/Java下设置JvmMs和JvmMx的值就可以了,要修改10进制的值哦)不过,OS对内存也有限制附:如何获得JVM的最⼤可⽤内存在命令⾏下⽤ java -XmxXXXXM -version 命令来进⾏测试,然后逐渐的增⼤XXXX的值,如果执⾏正常就表⽰指定的内存⼤⼩可⽤,否则会打印错误信息。
Tomcat最大线程数、最大连接数、超时时间及高效配置
Tomcat最⼤线程数、最⼤连接数、超时时间及⾼效配置⼀、前⾔Tomcat 作为 Java Web 程序⽐较常⽤的 Servlet 容器实现,在 Web 开发中有⽐较重要的地位。
⼆、Tomcat使⽤的IO模式Tomcat 有三种 IO 模式,BIO、NIO、APR。
在 Tomcat7 及以下 Linux 中默认启⽤的是 BIO 模式,Tomcat8 及以上使⽤的是 NIO 模式,利⽤ Java 的异步 IO 处理,可以通过少量的线程处理⼤量的连接请求。
除这两种⽅式外,还有⼀种 APR(Apache Portable Runtime)模式,从操作系统层⾯解决 IO 阻塞问题。
Tomcat7 或Tomcat8 在 Win7 或以上的系统中启动默认使⽤这种⽅式。
要注意的是,在 SpringBoot 内嵌的 Tomcat 不⾃动开启 APR 模式,需要⼿动进⾏配置。
可以通过启动⽇志看到 SpringBoot 中启⽤的 IO 模式:2021-01-26 17:22:53.076 INFO 8604 --- [nio-9999-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet' 2021-01-26 17:22:53.076 INFO 8604 --- [nio-9999-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'2021-01-26 17:22:53.087 INFO 8604 --- [nio-9999-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 10 ms关于 BIO、NIO、APR 的详解不做过多介绍。
tomcat性能优化参数
tomcat性能优化参数线上环境使⽤默认tomcat配置⽂件,性能很⼀般,为了满⾜⼤量⽤户的访问,需要对tomcat进⾏参数性能优化,具体优化的地⽅如下:Linux内核的优化服务器资源JVM 配置的优化Tomcat参数优化Tomcat配置连接器配置负载集群优化这⾥着重讲解tomcat参数的优化:server.xml⽂件,关闭DNS查询、配置最⼤并发等参数。
maxThreads:tomcat起动的最⼤线程数,即同时处理的任务个数,默认值为200acceptCount:当tomcat起动的线程数达到最⼤时,接受排队的请求个数,默认值为100当然这些值都不是越⼤越好,需要根据实际情况来设定。
可以基于测试的基础上来不断的调优分析。
1,vim /usr/local/tomcat/conf/server.xml 优化http 8080访问端⼝段加⼊以下优化,再把默认的删掉真实企业也是⼀下的参数不变<Connector port="8080"protocol="org.apache.coyote.http11.Http11NioProtocol"connectionTimeout="20000"redirectPort="8443"maxThreads="5000"minSpareThreads="20"acceptCount="1000"disableUploadTimeout="true"enableLookups="false"URIEncoding="UTF-8" />2,Catalina.sh JVM 参数优化,java系统内存优化,根据⾃⼰虚拟机得内存来优化⼀下XmsXmx Xmn的参数这⾥配置的内存不要太⼤⼀般位置系统内存的3/1 真实企业系统内存最低要留2个G 其中Xmn为Xmx内存的4/1如果不配置优化jvm tomcat默认是502参数添加位置如下:其中参数⼀般有开发⼈员来配置算出最优值添加如下内容:vim /usr/local/tomcat/bin/ catalina.shCATALINA_OPTS="$CATALINA_OPTS –Xms1024M –Xmx1024M –Xmn512M -XX:SurvivorRatio=4 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=82 -DLOCALE=UTF-16LE -DRAMDISK=/ -DUSE_RAM_DISK=ture -DRAM_DISK=true3,优化server.conf配置⽂件<Executor name="tomcatThreadPool" namePrefix="catalina-exec-" maxThreads="500" //最⼤并发数,默认设置 200,⼀般建议在 500 ~ 800,根据硬件设施和业务来判断minSpareThreads="100" //Tomcat 初始化时创建的线程数,默认设置 25prestartminSpareThreads = "true"//在 Tomcat 初始化的时候就初始化 minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就⽆效maxQueueSize = "100"//最⼤的等待队列数,超过则拒绝请求 /><Connector executor="tomcatThreadPool" port="8080"protocol="org.apache.coyote.http11.Http11Nio2Protocol" //Tomcat 8 设置 nio2 更好,Tomcat 6 、7设置nio更好:org.apache.coyote.http11.Http11NioProtocolconnectionTimeout="20000"minSpareThreads="100" maxSpareThreads="1000"最⼤处理连接数线程minProcessors="100“同时处理请求的最⼩数maxProcessors=“1000”同时处理请求的最⼤数maxConnections="1000" redirectPort="8443"enableLookups="false" //禁⽤DNS查询 acceptCount="100" //指定当所有可以使⽤的处理请求的线程数都被使⽤时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100maxPostSize="10485760" //以 FORM URL 参数⽅式的 POST 提交⽅式,限制提交最⼤的⼤⼩,默认是2097152(2兆),它使⽤的单位是字节。
Tomcat 的内存配置及优化
Tomcat 的内存配置及优化Tomcat本身不能直接在计算机上运行,需要依赖于硬件基础之上的操作系统和一个java 虚拟机。
你能选择自己的需要选择不同的操作系统和对应的JDK的版本(只要是符合Sun 发布的Java规范的),但我们推荐你使用Sun公司发布的JDK。
确保你所使用的版本是最新的,因为Sun公司和其他一些公司一直在为提高性能而对java虚拟机做一些升级改进。
一些报告显示JDK1.4在性能上比JDK1.3提高了将近10%到20%。
能给Java虚拟机设置使用的内存,不过如果你的选择不对的话,虚拟机不会补偿。
可通过命令行的方式改动虚拟机使用内存的大小。
如下表所示有两个参数用来设置虚拟机使用内存的大小。
参数描述-XmsJVM初始化堆的大小-XmxJVM堆的最大值这两个值的大小一般根据需要进行设置。
初始化堆的大小执行了虚拟机在启动时向系统申请的内存的大小。
一般而言,这个参数不重要。
不过有的应用程式在大负载的情况下会急剧地占用更多的内存,此时这个参数就是显得非常重要,如果虚拟机启动时设置使用的内存比较小而在这种情况下有许多对象进行初始化,虚拟机就必须重复地增加内存来满足使用。
由于这种原因,我们一般把-Xms和-Xmx设为相同大,而堆的最大值受限于系统使用的物理内存。
一般使用数据量较大的应用程式会使用持久对象,内存使用有可能迅速地增长。
当应用程式需要的内存超出堆的最大值时虚拟机就会提示内存溢出,并且导致应用服务崩溃。
因此一般建议堆的最大值设置为可用内存的最大值的80%。
Tomcat默认能使用的内存为128MB,在较大型的应用项目中,这点内存是不够的,需要调大。
视窗系统下,在文件/bin/catalina.bat,Unix下,在文件/bin/catalina.sh的前面,增加如下设置:JAVA_OPTS=’-Xms【初始化内存大小】-Xmx【能使用的最大内存】’需要把这个两个参数值调大。
例如:JAVA_OPTS=’-Xms256m -Xmx512m’表示初始化内存为256MB,能使用的最大内存为512MB。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
方法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 ***
");
out.println("Free Memory: "+lRuntime.freeMemory()+"
");
out.println("Max Memory: "+lRuntime.maxMemory()+"
");
out.println("Total Memory: "+lRuntime.totalMemory()+"
");
out.println("Available Processors : "+lRuntime.availableProcessors()+" ");
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个左右。
如:
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 监视和管理控制台”,如果是远程监视,就输入:,这个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是这个作用。
另外找一台服务器,
命令行进入%JAVA_HOME%/bin ,运行jconsole,远程连接192。
168.84.165:12345用户名controlRole,密码XXXXXX
连接成功,就可以监控啦。
----------------------------华丽分割线-------------------------------
还有服务器为windows的,大同小异,
在catalina.bat文件中加入:
第一步:
修改tomcat的catalina.bat文件,打开catalina.bat,
找到搜索“set JAVA_OPTS=%JAVA_OPTS%”,前面加上rem 给注释掉。
在下面一行添加如下代码:
set JAVA_OPTS=%JAVA_OPTS%
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8086
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
注意:port端口不能和tomcat的重复。