摘要:分別在幾個(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ī)和測(cè)試機(jī)在機(jī)房處于不同網(wǎng)段,網(wǎng)絡(luò)環(huán)境質(zhì)量有差異,最開(kāi)始懷疑的是網(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)該沒(méi)問(wèn)題了。
3.驗(yàn)證進(jìn)行優(yōu)化驗(yàn)證,發(fā)現(xiàn)調(diào)用平均時(shí)長(zhǎng)有明顯降低(廢話)。但是,但可是,發(fā)現(xiàn)了新問(wèn)題,在spring boot啟動(dòng)后第一次調(diào)用本服務(wù),耗時(shí)仍舊遠(yuǎn)遠(yuǎn)高于后續(xù)調(diào)用,正常在20ms/次,第一次平均在600ms/次,于是開(kāi)始google
于是看到了這個(gè)提問(wèn)修改項(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í),也沒(méi)有明顯的效率提升,服務(wù)首次加載還是比之后慢。所以考慮,是不是文件是不是沒(méi)有改全(待完成,還沒(méi)驗(yàn)證)
最后,通過(guò)驗(yàn)證發(fā)現(xiàn)一個(gè)規(guī)律,假設(shè)有A B兩個(gè)服務(wù),在Spring Boot 啟動(dòng)后,
如果先首次訪問(wèn)A,那么B的首次訪問(wèn)時(shí)間會(huì)縮短,但是還是會(huì)高于第二次及以后的訪問(wèn)時(shí)間
如果先首次訪問(wèn)B,那么A的首次訪問(wèn)時(shí)間會(huì)縮短,但是還是會(huì)高于第二次及以后的訪問(wèn)時(shí)間
因此,在Spring boot啟動(dòng)后,第一個(gè)被訪問(wèn)的服務(wù)耗時(shí)一定大于第二個(gè)被訪問(wèn)的服務(wù),且每個(gè)服務(wù)之后的訪問(wèn)時(shí)間一定小于本服務(wù)第一次被訪問(wèn)的時(shí)間。
暫時(shí)就這么多,這是個(gè)記錄。
之后會(huì)對(duì)基礎(chǔ)鏡像中jdk里面的java.security進(jìn)行修改,如果有效果 會(huì)再更新。
剛才又找了一下,發(fā)現(xiàn)jdk目錄里沒(méi)有java.security,是我秀逗了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/77521.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ī)和測(cè)試機(jī)在機(jī)房處于不同網(wǎng)段,網(wǎng)絡(luò)環(huán)境質(zhì)量有差異,最開(kāi)始懷疑的是網(wǎng)絡(luò)導(dǎo)致的。分別在幾個(gè)環(huán)境中跑相同代碼,發(fā)現(xiàn)是網(wǎng)絡(luò)影響的調(diào)用三方服務(wù)返回時(shí)間...
摘要:前言這篇文章的主題是記錄一次程序的性能優(yōu)化,在優(yōu)化的過(guò)程中遇到的問(wèn)題,以及如何去解決的。因?yàn)槲覀兊倪B接數(shù)只有,一旦請(qǐng)求過(guò)多,勢(shì)必會(huì)導(dǎo)致數(shù)據(jù)庫(kù)瓶頸。我們?cè)俅螇簻y(cè),結(jié)果顯示萬(wàn),服務(wù)器數(shù)據(jù)庫(kù)連接正常,連接正常,響應(yīng)時(shí)間平均為,錯(cuò)誤率為。 前言 這篇文章的主題是記錄一次Python程序的性能優(yōu)化,在優(yōu)化的過(guò)程中遇到的問(wèn)題,以及如何去解決的。為大家提供一個(gè)優(yōu)化的思路,首先要聲明的一點(diǎn)是,我的方式...
摘要:高性能代碼的最佳實(shí)踐前言在這篇文章中,我們將討論幾個(gè)有助于提升應(yīng)用程序性能的方法。要獲得有關(guān)應(yīng)用程序需求的最好最可靠的方法是對(duì)應(yīng)用程序執(zhí)行實(shí)際的負(fù)載測(cè)試,并在運(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è)公司為代表,開(kāi)始提出數(shù)據(jù)中心操作系統(tǒng)的概念。數(shù)據(jù)中心操作系統(tǒng)與開(kāi)發(fā)方有一個(gè)非常清晰和低成本的接入接口,完全省去了運(yùn)維這個(gè)角色寫(xiě)膠水腳本的必要性,從而徹底顛覆這個(gè)崗位。 崗位價(jià)值有: 權(quán)限縮小 提供操作安全的保險(xiǎn)服務(wù) 提供操作的可擴(kuò)展性 提供業(yè)務(wù)和資源能見(jiàn)度 屏蔽資源的部署細(xì)節(jié) 靜態(tài)資源調(diào)平 動(dòng)態(tài)資源調(diào)平 故障處理和善后 權(quán)限縮小 通過(guò)配置文件修改...
摘要:學(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你可以不用或者只需要很...
閱讀 1403·2023-04-26 00:10
閱讀 2492·2021-09-22 15:38
閱讀 4111·2021-09-22 15:13
閱讀 3606·2019-08-30 13:11
閱讀 703·2019-08-30 11:01
閱讀 3105·2019-08-29 14:20
閱讀 3269·2019-08-29 13:27
閱讀 1785·2019-08-29 11:33