作者:Janti 来源:https://www.cnblogs.com/superfj/p/8667977.html
介绍
在SpringBoot的Web项目中,默认采用的是外置Tomcat,其实也可以配置支持外置的jetty,外置有哪些益处呢?
便捷微服务布署。便捷项目启动,不须要下载Tomcat或则Jetty
针对目前的容器优化,目前来说没有太多地方,须要考虑如下几个点
针对上述的优化点来说,首先线程数是一个重点,初始线程数和最大线程数,初始线程数保障启动的时侯,假如有大量用户访问,就能很稳定的接受恳求。
而最大线程数目拿来保证系统的稳定性,而超时时间拿来保障联接数不容易被压死,假如大批量的恳求过来,延后比较高,不容易把线程打满。此类情况在生产中是比较常见的,一旦网路不稳定,即便丢包也不乐意把机器压死。
jvm优化通常来说没有太多场景,无非就是加强初始的堆,和最大限制堆,其实也不是无限减小,依据的情况进快速开始
在springboot配置文件中application.yml,添加以下配置
server: tomcat: min-spare-threads: 20 max-threads: 100 connection-timeout: 5000
这块对tomcat进行了一个优化配置,最大线程数是100,初始化线程是20,超时时间是5000ms
Jvm优化
这块主要不是谈怎样优化,jvm优化是一个须要场景化的,没有哪些太多特定参数,通常来说在server端运行就会指定如下参数
初始显存和最大显存基本会设置成一样的,具体大小依据场景设置,-server是一个必需要用的参数,至于搜集器这种使用默认的就可以了centos 6.4关闭防火墙步骤,除非有特定需求。
1.使用-server模式
设置JVM使用server模式。64位JDK默认启动该模式
java -server -jar springboot-1.0.jar
2.指定堆参数
这个依照服务器的显存大小,来设置堆参数。
java -server -Xms512m -Xmx768m -jar springboot-1.0.jar
设置初始化堆显存为512MB,最大为768MB。
3.远程Debug
在服务器中将启动参数更改为:
java -Djavax.net.debug= ssl -Xdebug -Xnoagent -Djava.compiler= NONE -Xrunjdwp:transport= dt_socket,server=y,suspend= n,address=8888 -jar springboot-1.0.jar
这个时侯服务端远程Debug模式开启,端标语为8888。
在IDEA中,点击EditConfiguration按键。
出现弹窗,点击+按键,找到Remote选项。
在【1】中填入Remote项目名称,在【2】中填IP地址和端标语,在【3】选择远程调试的项目module,配置完成后点击OK即可
假如遇到联接超时的情况,很有可能服务器的防火墙的问题,举例CentOs7,关掉防火墙
systemctl stop firewalld.service #停止firewall systemctl disable firewalld.service #禁止firewall开机启动
点击debug按键,IDEA控制台复印信息:
说明远程调试成功。
JVM工具远程联接
jconsole与Jvisualvm远程联接
一般我们的web服务都输布署在服务器上的RAR FOR LINUX,在window使用jconsole是很便捷的,相对于Linux就有一些麻烦了,须要进行一些设置。
1.查看hostname,首先使用
hostname -i
查看,服务器的hostname为127.0.0.1,这个是不对的红联linux论坛,须要进行更改
2.更改hostname
更改/etc/hosts文件,将其第一行的“127.0.0.1localhost.localdomainlocalhost”,更改为:“192.168.44.128localhost.localdomainlocalhost”.“192.168.44.128”为实际的服务器的IP地
3.重启Linux,在服务器上输入hostname-i,查看实际设置的IP地址是否为你设置的
4.启动服务,参数为:
java -jar -Djava.rmi.server.hostname=192.168.44.128 - Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=911 - Dcom.sun.management.jmxremote.ssl=false - Dcom.sun.management.jmxremote.authenticate=false jantent-1.0-SNAPSHOT.jar
ip为192.168.44.128,端口为911。
5.打开Jconsole,进行远程联接,输入IP和端口即可
点击联接,经过稍微等待以后,即可完成联接centos 6.4关闭防火墙步骤,如右图所示:
同理,JvisualVm的远程联接是同样的,启动参数也是一样。
之后在本机JvisualVm输入IP:PORT,即可进行远程联接:如右图所示:
相比较Jvisualvm功能更加大大一下,界面也更美观~