首页 > 编程知识 正文

jdk11环境变量配置win10,tomcat查看jvm使用情况

时间:2023-05-05 20:31:30 阅读:23826 作者:4151

系统环境: jdk1.8、apache-tomcat-8.5.35

一. jvm优化

进入frdlt/catalina.sh,更改JAVA_OPTS的配置。

jva _ opts='-server-xms 8192 m-xmx 8192 m-xx : newratio=4- xx 3360 survivor ratio=8- xx : useconcmarkswepgc-1 usr/local/javamemorylogs/dump-xx 3360 printgcdetails-xx 3360 printgcdetails

每个参数的含义:

(1)-server )这是应用于服务器的配置,表示JVM内部将进行特殊处理。

)2)-xms 8192 m :设置JVM的最小内存。 可以设置与-Xmx相同的值,以防止每次垃圾回收完成时JVM重新分配内存。

(3)-Xmx8192m )设置JVM的最大可用内存。

(4)-XX:NewRatio=4)年轻一代)设置phdcdq和包括两个Survivor区域)相对于终生一代的比率(永久一代除外)。 如果设置为4,则年轻一代和终身一代所占比例为1:4,年轻一代占堆栈总数的1/5。

(4)-XX:SurvivorRatio=8)年轻一代中phdcdq区与两个Survivor区的比率。 请注意Survivor区有两个。 例如,8代表phdcdq:Survivor=8:2,一个Survivor区占整个年轻一代的1/10。

)5)-XX: UseConcMarkSweepGC:CMS采集,设置老年人代为同时采集。 它主要适用于对响应时间重要性的需求大于对吞吐量的需求,能够承受垃圾回收线程和APP应用程序线程共享CPU资源,并且在APP应用程序中存在相对多的长寿命对象的场景。 CMS收集的目标是尽量减少APP应用的暂停时间,减少Full GC发生的概率,并利用与APP应用线程同时发生的垃圾收集线程清除老一代内存。

)6) xx : parallelgcthreads=8:表示JVM进行并行GC时用于GC的线程数。

)7) xx : heapdumponoutofmemoryerror :允许JVM在发生内存溢出时dump当前内存转储快照。

)8) xx : heap dump path :生成dump文件的路径。 如果不设置,则默认存储在jvm执行环境目录中。

(9) xx : printgcdetails :打印GC详细信息。

(10 ) xx : printgcdatestamps :建议您尽可能记录日志,因为记录GC日志不会特别影响Java程序的性能。

(11 )-xlog GC :指定GC log的位置,输出为文件。 帮助开发者分析问题。

(12 ) xx : disableexplicitgc :由于将忽略手动调用GC的代码,因此System.gc )的调用用于空调,GC不启动。

二、tomcat优化

将conf/server.xml更改为以下两种配置:

max threads=' 700 ' minsparethreads=' 100 ' maxsparethreads=' 400 ' prestartminsparethreads=' true ' maxqueuesize=' 3330

port='80 '

protocol=' org.Apache.coyote.http 11.http 11 nio2protocol '

acceptCount='500 '

连接时间out=' 20000 '

redirectPort='8443 '

compression='on '

disableUploadTimeout='true '

compressionMinSize='2048 '

acceptor thread count='2' compressablemimetype=' text/html,text/xml,text/plain,text/css,text/javascript

URIEncoding='utf-8 '

enableLookups='false '

useURIValidationHack='false '

maxConnections='1000 '

tcpNoDelay='true '

/

重点参数说明:

)1) maxThreads )最大并发行数,默认设置为200,一般为500 ~ 800,硬件设备和

业务来判断

(2)minSpareThreads:Tomcat 初始化时创建的线程数,默认设置 25

(3)prestartminSpareThreads:在 Tomcat 初始化的时候就初始化 minSpareThreads 的参数值,如果不等于 true,minSpareThreads 的值就没啥效果了

(4)maxQueueSize:最大的等待队列数,超过则拒绝请求

(5)acceptCount:指定当所有可以使用的处理请求的线程数都被使用时,可以放到处理队列中的请求数,超过这个数的请求将不予处理,默认设置 100

(6)maxConnections:服务器在任何给定时间将接受和处理的最大连接数。当达到这个数字时,服务器将接受,但不处理另一个连接。这个额外的连接将被阻塞,直到正在处理的连接数量低于maxConnections,此时服务器将开始接受并再次处理新的连接。请注意,一旦达到限制,操作系统仍然可以接受基于acceptCount设置的连接。默认值因连接器类型而异。对于BIO,默认值是maxThreads的值,除非使用Executor,在这种情况下,默认值将是执行者的maxThreads的值。对于NIO和NIO2,默认值为10000.对于APR/native,默认值为8192。简单来说就是nio使用maxConnections代替maxThreads。

(7)enableLookups:禁用DNS查询

2.关闭shutdown端口

shown端口是写在Server参数里的,直接去掉是不管用,也是会默认启动的,一般在安全设置时候建议把端口修改为其他端口,shutdown修改为其他复杂字串。实际上这个端口是可以直接屏蔽不监听的。设置时候将其port值修改为-1即可:

3、禁用tomcat Manager管理入口

为防止从tomcat web管理界面上传文件,破坏运行环境,可以手动删除tomcat自带的管理界面。

进入tomcat默认页面时有“server status”、“manager app”、“Host manager”。

如果修改conf/tomcat-users.xml,配置后:

访问tomcat web页面,用上面配置的用户名密码登录将会出现如下界面,一旦用户名密码泄露或被攻击,服务器很容易被破坏。

Server Status

Manager App

Host Manager

避免如上界面入口引发问题,操作如下:

1、进入tomcat/webapps目录

2、只保留manager,ROOT,以及项目相关文件,删除其他包含docs、examples、host-manager文件(rm -rf 目录名称),如果怕出错,请先备份要删除的文件。

重新启动tomcat后,Tomcat Manager Web将如下:

Server Status

Manager App

Host Manager

恭喜!优化设置到此结束,赶紧尝试一下吧!

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。