JVM调优(二)参数配置解释 以及tomcat调优

调优参数网站

https://docs.oracle.com/javase/8/docs/technotes/tools/windows/toc.html

1、上个例子

这节用某项目做示例

java -jar -server -XX: -PrintGCDetails -xloggc: ./1g/gc. log-xx: +HeapDumpOnOutOfMemoryError -Xms1g -xmx lg XX: MaxGCPauseMillis=250 -Djava.awt. headless=true stress-test-demo-001SNAPSHOT. jar

-server 提高吞吐量
-client 提高响应时间
-Xms 堆内存的最小大小,默认为物理内存的1/64

-Xmx 堆内存的最大大小,默认为物理内存的1/4

-Xmn 堆内新生代的大小。通过这个值也可以得到老生代的大小:-Xmx减去-Xmn

-Xss 设置每个线程可使用的内存大小,即栈的大小。在相同物理内存下,减小这个值能生成更多的线程,当然操作系统对一个进程内的线程数还是有限制的,不能无限生成。线程栈的大小是个双刃剑,如果设置过小,可能会出现栈溢出,特别是在该线程内有递归、大的循环时出现溢出的可能性更大,如果该值设置过大,就有影响到创建栈的数量,如果是多线程的应用,就会出现内存溢出的错误。

 java -Xms500m -Xmx500m -Xmn250m -Xss256k -server -XX:+HeapDumpOnOutOfMemoryError -jar  bdf_apiroute_boot.jar

https://blog.csdn.net/userofithis/article/details/92420624

2、修改jar包的tomcat连接数

server.tomcat.uri-encoding: UTF-8
server.tomcat.max-threads: 1000
server.tomcat.max-connections: 20000

3、优化:移除servlet(假设不需要jsp,只是个rest服务、不需要静态资源)

去除下面一段
在这里插入图片描述

4、内置tomcat调线程数等参数

#线程池大小
server.tomcat.maxThreads=100
server.tomcat.minSpareThreads=10
# 取消 tomcat ACCESSlogvalue
server.tomcat.accesslog.enabled=false
#取消jsp servlet
server.jspServlet.registered=false
#取消静态资源处理
spring.resources.chain.enable=false

5、接上个问题 如何计算tomcat线程池大小?

线程大小 = ( (线程io时间 + 线程cpu) / 线程cpu time) * cpu核数
举例: 线程io时间为100ms(IO操作比如数据库查询,同步远程调用等),线程cpu时间10ms,服务器物理机核数为4个。通过上面的公式,我们计算出来的大小是 ((100 + 10 )/10 ) *4 = 44。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值