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