優化springboot

介紹

在SpringBoot的Web項目中,默認採用的是內置Tomcat,固然也能夠配置支持內置的jetty,內置有什麼好處呢?
1. 方便微服務部署。
2. 方便項目啓動,不須要下載Tomcat或者Jettyjava

針對目前的容器優化,目前來講沒有太多地方,須要考慮以下幾個點web

  1. 線程數
  2. 超時時間
  3. jvm優化

針對上述的優化點來講,首先線程數是一個重點,初始線程數和最大線程數,初始線程數保障啓動的時候,若是有大量用戶訪問,可以很穩定的接受請求,
而最大線程數量用來保證系統的穩定性,而超時時間用來保障鏈接數不容易被壓垮,若是大批量的請求過來,延遲比較高,不容易把線程打滿。這種狀況在生產中是比較常見的
一旦網絡不穩定,寧願丟包也不肯意把機器壓垮。
jvm優化通常來講沒有太多場景,無非就是加大初始的堆,和最大限制堆,固然也不是無限增大,根據的狀況進快速開始spring

 

在spring boot配置文件中application.yml,添加如下配置shell

server:
  tomcat:
    min-spare-threads: 20
    max-threads: 100
  connection-timeout: 5000

 這塊對tomcat進行了一個優化配置,最大線程數是100,初始化線程是20,超時時間是5000ms tomcat

 Jvm優化

這塊主要不是談如何優化,jvm優化是一個須要場景化的,沒有什麼太多特定參數,通常來講在server端運行都會指定以下參數
初始內存和最大內存基本會設置成同樣的,具體大小根據場景設置,-server是一個必需要用的參數,
至於收集器這些使用默認的就能夠了,除非有特定需求。 springboot

1.使用-server模式服務器

設置JVM使用server模式。64位JDK默認啓動該模式網絡

java -server -jar springboot-1.0.jar

2.指定堆參數app

這個根據服務器的內存大小,來設置堆參數。dom

-Xms :設置Java堆棧的初始化大小
-Xmx :設置最大的java堆大小

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中,點擊Edit Configuration按鈕。

出現彈窗,點擊+按鈕,找到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服務都輸部署在服務器上的,在window使用jconsole是很方便的,相對於Linux就有一些麻煩了,須要進行一些設置。

1.查看hostname,首先使用

hostname -i

 

 查看,服務器的hostname爲127.0.0.1,這個是不對的,須要進行修改

2.修改hostname

修改/etc/hosts文件,將其第一行的「127.0.0.1  localhost.localdomain localhost」,修改成:「192.168.44.128  localhost.localdomain localhost」.「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和端口便可

點擊鏈接,通過稍稍等待以後,便可完成鏈接,以下圖所示:

 

 同理,JvisualVm的遠程鏈接是一樣的,啓動參數也是同樣.

而後在本機JvisualVm輸入IP:PORT,便可進行遠程鏈接:以下圖所示:

相比較Jvisualvm功能更增強大一下,界面也更美觀

 

 

註明:現已入住騰訊雲自媒體分享計劃

相關文章
相關標籤/搜索