優化springboot
優化springboot
介紹
在SpringBoot的Web專案中,預設採用的是內建Tomcat,當然也可以配置支援內建的jetty,內建有什麼好處呢?
1. 方便微服務部署。
2. 方便專案啟動,不需要下載Tomcat或者Jetty
針對目前的容器優化,目前來說沒有太多地方,需要考慮如下幾個點
- 執行緒數
- 超時時間
- jvm優化
針對上述的優化點來說,首先執行緒數是一個重點,初始執行緒數和最大執行緒數,初始執行緒數保障啟動的時候,如果有大量使用者訪問,能夠很穩定的接受請求,
而最大執行緒數量用來保證系統的穩定性,而超時時間用來保障連線數不容易被壓垮,如果大批量的請求過來,延遲比較高,不容易把執行緒打滿。這種情況在生產中是比較常見的
一旦網路不穩定,寧願丟包也不願意把機器壓垮。
jvm優化一般來說沒有太多場景,無非就是加大初始的堆,和最大限制堆,當然也不是無限增大,根據的情況進快速開始
在spring boot配置檔案中application.yml,新增以下配置
1 2 3 4 5 |
|
這塊對tomcat進行了一個優化配置,最大執行緒數是100,初始化執行緒是20,超時時間是5000ms
Jvm優化
這塊主要不是談如何優化,jvm優化是一個需要場景化的,沒有什麼太多特定引數,一般來說在server端執行都會指定如下引數
初始記憶體和最大記憶體基本會設定成一樣的,具體大小根據場景設定,-server是一個必須要用的引數,
至於收集器這些使用預設的就可以了,除非有特定需求。
1.使用-server模式
設定JVM使用server模式。64位JDK預設啟動該模式
java -server -jar springboot-1.0.jar
2.指定堆引數
這個根據伺服器的記憶體大小,來設定堆引數。
-Xms :設定Java堆疊的初始化大小
-Xmx :設定最大的java堆大小
1 |
|
設定初始化堆記憶體為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功能更加強大一下,介面也更美觀
註明:現已入住騰訊雲自媒體分享計劃
相關文章
- SpringBoot專案校驗規則優化Spring Boot優化
- SpringBoot之日誌註解和快取優化Spring Boot快取優化
- SpringBoot自定義初始化Bean+HashMap優化策略模式實踐Spring BootBeanHashMap優化模式
- 前端效能優化(JS/CSS優化,SEO優化)前端優化JSCSS
- 效能優化案例-SQL優化優化SQL
- MSSQL優化之索引優化SQL優化索引
- CUDA優化之指令優化優化
- Android效能優化----卡頓優化Android優化
- 資料庫優化 - SQL優化資料庫優化SQL
- 【前端效能優化】vue效能優化前端優化Vue
- 前端效能優化 --- 圖片優化前端優化
- sql優化之邏輯優化SQL優化
- [效能優化]DateFormatter深度優化探索優化ORM
- SQL優化:limit分頁優化SQL優化MIT
- (mysql優化-3) 系統優化MySql優化
- MySQL 效能優化之索引優化MySql優化索引
- MySQL優化-安裝配置優化MySql優化
- Web效能優化:圖片優化Web優化
- MySQL 效能優化之SQL優化MySql優化
- 【SpringBoot】Spring-->SpringBoot 習慣優於配置Spring Boot
- SpringBoot外部化配置Spring Boot
- 在SpringBoot中使用logback優化異常堆疊的輸出Spring Boot優化
- Oracle效能優化-SQL優化(案例一)Oracle優化SQL
- Oracle效能優化-SQL優化(案例二)Oracle優化SQL
- Oracle效能優化-SQL優化(案例三)Oracle優化SQL
- Oracle效能優化-SQL優化(案例四)Oracle優化SQL
- Android 效能優化 ---- 啟動優化Android優化
- 效能優化(二) UI 繪製優化優化UI
- hive優化-資料傾斜優化Hive優化
- 效能優化|Tomcat 服務優化優化Tomcat
- Apache網頁優化與安全優化Apache網頁優化
- Android優化之佈局優化Android優化
- web前端優化之圖片優化Web前端優化
- 效能優化04-圖片優化優化
- TableView 優化之資料模型優化View優化模型
- Web效能優化之圖片優化Web優化
- 最優化之無約束優化優化
- CUDA程式優化心得之序列優化優化