摘要:分別在幾個環境中跑相同代碼,發現是網絡影響的調用三方服務返回時間波動。調優基于業務需求,更改調用三方服務方法為異步調用。
背景
今天和分子公司合并服務接口(降低成本),對方反應我這邊有個服務慢,搞了一天,就順便記錄下服務調優 1. 網絡
由于生產機和測試機在機房處于不同網段,網絡環境質量有差異,最開始懷疑的是網絡導致的。分別在幾個環境中跑相同代碼,發現是網絡影響的調用三方服務返回時間波動。
2.調優基于業務需求,更改調用三方服務方法為異步調用。嗯!應該沒問題了。
3.驗證進行優化驗證,發現調用平均時長有明顯降低(廢話)。但是,但可是,發現了新問題,在spring boot啟動后第一次調用本服務,耗時仍舊遠遠高于后續調用,正常在20ms/次,第一次平均在600ms/次,于是開始google
于是看到了這個提問修改項目
https://segmentfault.com/q/10...
在查看Dockerfile后,發現啟動腳本中有加如下參數
JAVA_ALL_OPTS=" -Djava.security.egd=file:/dev/./urandom "
繼而想修改docker基礎鏡像中jre的java.security文件
遂在Dockerfile中增加如下shell
sed -i "117csecurerandom.source=file:/dev/./urandom" /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/security/java.security
就是用shell 替換了文本的內容
結論其實,也沒有明顯的效率提升,服務首次加載還是比之后慢。所以考慮,是不是文件是不是沒有改全(待完成,還沒驗證)
最后,通過驗證發現一個規律,假設有A B兩個服務,在Spring Boot 啟動后,
如果先首次訪問A,那么B的首次訪問時間會縮短,但是還是會高于第二次及以后的訪問時間
如果先首次訪問B,那么A的首次訪問時間會縮短,但是還是會高于第二次及以后的訪問時間
因此,在Spring boot啟動后,第一個被訪問的服務耗時一定大于第二個被訪問的服務,且每個服務之后的訪問時間一定小于本服務第一次被訪問的時間。
暫時就這么多,這是個記錄。
之后會對基礎鏡像中jdk里面的java.security進行修改,如果有效果 會再更新。
剛才又找了一下,發現jdk目錄里沒有java.security,是我秀逗了
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/27785.html
摘要:分別在幾個環境中跑相同代碼,發現是網絡影響的調用三方服務返回時間波動。調優基于業務需求,更改調用三方服務方法為異步調用。 背景 今天和分子公司合并服務接口(降低成本),對方反應我這邊有個服務慢,搞了一天,就順便記錄下 服務調優 1. 網絡 由于生產機和測試機在機房處于不同網段,網絡環境質量有差異,最開始懷疑的是網絡導致的。分別在幾個環境中跑相同代碼,發現是網絡影響的調用三方服務返回時間...
摘要:前言這篇文章的主題是記錄一次程序的性能優化,在優化的過程中遇到的問題,以及如何去解決的。因為我們的連接數只有,一旦請求過多,勢必會導致數據庫瓶頸。我們再次壓測,結果顯示萬,服務器數據庫連接正常,連接正常,響應時間平均為,錯誤率為。 前言 這篇文章的主題是記錄一次Python程序的性能優化,在優化的過程中遇到的問題,以及如何去解決的。為大家提供一個優化的思路,首先要聲明的一點是,我的方式...
摘要:高性能代碼的最佳實踐前言在這篇文章中,我們將討論幾個有助于提升應用程序性能的方法。要獲得有關應用程序需求的最好最可靠的方法是對應用程序執行實際的負載測試,并在運行時跟蹤性能指標。 showImg(https://segmentfault.com/img/bVbtgk4?w=256&h=254); 高性能Java代碼的最佳實踐前言 在這篇文章中,我們將討論幾個有助于提升Java應用程序性...
摘要:數據中心操作系統以和等新一代創業公司為代表,開始提出數據中心操作系統的概念。數據中心操作系統與開發方有一個非常清晰和低成本的接入接口,完全省去了運維這個角色寫膠水腳本的必要性,從而徹底顛覆這個崗位。 崗位價值有: 權限縮小 提供操作安全的保險服務 提供操作的可擴展性 提供業務和資源能見度 屏蔽資源的部署細節 靜態資源調平 動態資源調平 故障處理和善后 權限縮小 通過配置文件修改...
摘要:學習筆記使用很容易創建一個獨立運行運行內嵌容器準生產級別的基于框架的項目,使用你可以不用或者只需要很少的配置。異常消息如果這個錯誤是由異常引起的。錯誤發生時請求的路徑。 Spring-Boot 1.5 學習筆記 使用Spring Boot很容易創建一個獨立運行(運行jar,內嵌Servlet容器)、準生產級別的基于Spring框架的項目,使用Spring Boot你可以不用或者只需要很...
閱讀 3932·2021-10-12 10:12
閱讀 2889·2021-09-10 11:18
閱讀 3677·2019-08-30 15:54
閱讀 2811·2019-08-30 15:53
閱讀 642·2019-08-30 13:54
閱讀 973·2019-08-30 13:21
閱讀 2263·2019-08-30 12:57
閱讀 1694·2019-08-30 11:10