日韩欧美中国a v-日韩欧美在线综合网高清-日韩欧美在线中文字幕-日韩欧美在线视频观看-国产人妖系列在线精品-国产人妖视频一区在线观看

Internet Develppment
互聯網開發& 推廣服務提供商

我們擅長商業策略與用戶體驗的完美結合。

歡迎瀏覽我們的案例。

首頁 > 新聞中心 > 新聞動態 > 正文

增加了一行代碼,讓我們提高了3000%的性能

發布時間:2022-03-15 08:52:18來源:InfoQ


圖片來自網絡/侵刪
  本文最初發布于 Itamar Lechowicer 博客,經原作者授權由 InfoQ 中文站翻譯并分享
  
  概    述
  
  我們公司運維著 15 個 Web 應用,主要的工作就是按需交付基于數據驅動的 Web 應用程序,用于支撐實時決策的制定。
  
  這些應用的預期是在高負載下依然保持高可用。其中的主 Web 應用是一個歷史遺留的大型多服務系統。系統中的大部分服務都有超過 15 年的歷史并且經過了好幾代人的重構。試想一下,負責編寫系統代碼的人現在可能已經離職或已經調整到其他崗位了。
  
  過去幾年我們團隊的主要目標是就是針對這些服務進行性能優化。本次我將和你分享在性能優化的過程中,我們的一些主要經驗總結和當時決定這么做的原因。
  
  認知改變時刻
  
  在某次事件中,用戶增加了對我們應用的使用率,導致我們應用的數據流量大幅增加。在此事件過程中,用戶抱怨我們的應用性能實在太差,以至于無法在應用上完成全套的業務流程。為此,我們開始利用監控工具分析應用的性能瓶頸。通過應用監控工具,我們發現服務在獲取 DB 連接上消耗了 90% 的響應時間。
  
  但是 DB 看上去一切正常,所以,我們開始分析應用的 DB 連接池。分析發現,所有的 pod 將連接池中全部可用的連接都使用了。因此我們猜測服務在關閉連接上可能有問題。于是,我們花了幾個小時時間檢查代碼,嘗試找到連接沒有被釋放的地方。最終,我們的一個 TeamLeader 發現,pod 的存活探針在做一次簡單的 DB 心跳請求之后沒有釋放 DB 連接。隨后,我們立即在 pod 存活探針的請求中增加了一行用于釋放 DB 連接的代碼。影響是可怕的。眨眼間,應用的性能就開始穩定下來并且用戶也恢復了正常使用。
  
  就在此次事件的前一天,我們才執行過一次負載測試,以確保應用程序能夠承受預期的使用量增長,測試結果表明應用的性能是在正常范圍內的。然而事實證明這個測試結論是錯誤的,錯誤的測試結論誤導我們以為應用程序沒有需要修復的問題。我們深刻認識到了錯誤,我們需要做得更好。以下是我們在此次事件中學習到的一些經驗和總結。
  
  總結一:不要使用平均等待時長作為衡量服務負載的指標——核查應用的“尾部”值
  
  當用戶抱怨應用響應慢的時候,我們發現平均等待時長指標并沒有明顯的變化。當我們回顧了這些指標數據的時候,注意到了一些有趣的事情:之前我們是將平均請求時間作為服務等待的主要指標,因此,這次我們將 90% 請求等待時長的數據做了一個圖表,看看這個圖表能不能反饋些信息。果不其然,在用戶抱怨應用慢的時候,我們觀察到圖表中等待時長急劇增加。平均等待時長指標之所以沒有明顯變化,是因為太多的快速請求將平均值拉下來了。所以我的建議是,不使用平均等待時長,而使用 50%,90%,95%,99% 的平均等待時長作為服務響應的指標。核查那些遠遠超過正常值范圍的“尾部”值是非常重要的。
  
  總結二:在性能優化上投入時間、工具和人力
  
  要保持應用的高性能,我們必須具備以下條件:
  
  負載測試和負載場景——具備可用的負載測試和負載場景非常重要。
  
  應用監控工具(APM)——諸如 Dyanatrace,AppDynamics 和 Epsagon 等工具。APM 在監控服務上可以幫我們節約大量的時間。因此在生產環境安裝至少一個 APM 是非常有必要的。
  
  有效的日志——有效的日志是生產服務中斷調查和性能問題調查的基本條件。因此你必須確保應用的日志是清晰且有用的。
  
  日志分析工具——你不能從很多文件中讀取和搜索日志,尤其當你的服務是集群的時候,通過文件讀取日志將變得更加困難。因此,花時間投產一個諸如 ELK,Grafana 或 Splunk 的日志收集器和分析工具是非常有必要的。
  
  專業的人力支撐——對于上面提到的知識或者工具,如果你的團隊沒有相關的專業人才,那么你將什么也干不了。
  
  因此,針對復雜的系統,我建議投入專門的人和時間來處理。(例如,SRE 團隊就能很好的勝任此項工作)
  
  總結三:老系統將會消亡(除非我們激活它們)
  
  作為人類,我們都有創造新事物的沖動和欲望,并且對創造出來的產品有一種所有權感。在軟件的世界里,在我們需要處理的矛盾中,有時候也會包含這樣的矛盾。一方面,有一個老系統需要我們維護;而另一方面,有一個炫酷的新系統我們想要去開發。那么這個時候,我們就需要決定將時間投入到那塊。當我們面對這樣的矛盾時,我們必須記住,如果我們不繼續在老系統上進行開發和添加新功能,那么對老系統的了解會隨著時間的推移而消失。因此,當我們面對系統故障或客戶新需求時,由于缺少對老系統的了解或者能力問題,將無法達成目標。換句話說,當我們失去對于老系統的了解之后,系統的 MTTR(平均修復時間) 上升了。
  
  因此,我的建議是,要時常克制想要創造一個新的、炫酷事物的沖動,將時間投入到對老維護系統的熟悉和提升解決問題的能力上。另外,保持對老系統熟悉度的最佳方式就是嘗試在老系統中添加代碼。
  
  結論四:每一行代碼都很重要
  
  有時,當我們在編寫代碼的時候,我們可能會忘記這些代碼最終運行將在生產環境中,并為一個真實用戶的真實工作服務。上面提到的我們親身經歷的案例中,僅僅只是因為程序員忘記了釋放 DB 連接(一行代碼而已),就可以干擾一個用戶的正常工作(那些工作受影響的用戶估計很不愿意給我們付錢)。
  
  我的建議是:
  
  想象一下(雖然很難),在世界的另一端,某個用戶的工作完全依賴你編寫的代碼,同時試想一下,你寫的每一行代碼都將影響其使用應用的體驗。
  
  在 CI 或者 CD 環節執行負載測試。如果你想確保代碼高可用,那么就針對每個即將投產的 PR 或版本都進行負載測試。
  
  當你發現性能問題的時候,請懷疑每一行代碼——據我們的經驗,代碼中的每個字符都有可能是導致性能的瓶頸。
  
  總    結
  
  此文章闡述了我們在系統性能優化上的全部經驗教訓和體會心得,我希望通過此文章能夠幫助你意識到系統性能缺陷所存在的潛在風險。
  
  我認為,應用的性能應該被視為最高優先處理事項。因為和終端用戶不能使用系統相比,漂亮的 UI 和炫酷的產品都顯得微不足道。
  
  我寫的這些結論都是我根據日常性能優化的經驗總結而來,因此,在我看來,上面的所有結論都是每一次成功的性能優化的基石。所以,我也希望你能發現它們的用處。
  (邯鄲微信托管

最新資訊
? 2018 河北碼上網絡科技有限公司 版權所有 冀ICP備18021892號-1   
? 2018 河北碼上科技有限公司 版權所有.
国产成人亚洲精品| 午夜私人理论电影| 成人无码特黄特黄AV片在线| 亚洲AV无码成人网站WWW| 精品久久久久久人妻无码中文字幕| 亚洲中文字幕久久精品无码喷水 | 精品高潮呻吟99AV无码视频| 6080YY新视觉影院| 性色生活片在线观看| 欧美一区二区三区激情| 激情综合激情五月俺也去| 亚洲精品无码永久在线观看男男| 人妻斩り56歳无码| 国色天香网WWW在线观看| 锕锕锕锕锕锕锕好疼JK| 亚洲午夜无码极品久久| 无码人妻久久一区二区三区免费 | 白丝JK高潮喷水在线观看| 亚洲熟妇一区二区| 色综合天天综合网天天小说| 久久精品国产清自在天天线| 国产免费人成在线视频| 99久在线国内在线播放免费观看| 亚洲色大成网站WWW在线观看| 色既是空在线观看| 人妻熟妇乱又伦精品无码专区| 贵为皇后却被用来犒赏三军| 亚洲综合一区自偷自拍| 亚洲AⅤ永久无码精品三区在线| 日本XXXX18裸体XXXX| 女女互揉吃奶揉到高潮视频| 狠狠爱ADY亚洲色| 国产美女精品自在线拍免费| 777久久精品一区二区三区无码| 午夜不卡久久精品无码免费| 色综合亚洲一区二区小说性色AⅤ| 久久久久亚洲AV成人网址| 锕锕锕锕锕锕好污网站大全 | 哈昂~哈昂够了太多了老师| 18禁自慰网址进入| 2020国产亚洲美女精品久久久| 正在播放东北夫妻内射| 伊人色综合网一区二区三区| 亚洲AV成人网人人蜜臀| 欧美XXXX做受欧美| 欧美乱妇日本无乱码特黄大片 | 少妇被 到高潮喷出白浆av| 嫩草国产福利视频一区二区| 免费的最近直播比较火的黄台 | 亚洲国产精品久久久久婷蜜芽| 少妇人妻无码精品视频APP| 欧美成人精品高清在线播放| 国产乱子伦视频一区二区三区| 国产乱子伦视频一区二区三区| 成人伊人亚洲人综合网 | 精品久久久久久久免费人妻| 九九视频麻婆豆腐在线观看| 激情内射亚洲一区二区三区爱妻| 久久精品国产成人AV| 免费无码午夜福利电影网| 老熟妇乱子伦牲交视频| 欧美性狂猛BBBBBBXXXX| 欧美巨大XXXX做受高清| 搡老女人ⅩXXX搡老女人电影看| 无人区码一码二码三码网页| 无码毛片内射白浆视频| 亚洲欧洲日产国码无码| 亚洲综合区小说区激情区| 一二三四在线看日本高清| ぱらだいす天堂中文网.WWW| 国产精品美女久久久久久| 国产一二三四2021精字窝| 麻豆国产蜜桃臀视频在线观看| 日本嫩交12一16XXX视频| 香蕉尹人综合在线观看| 中文字幕 制服 亚洲 另类| 97精品伊人久久大香线蕉APP| 2020久久国产综合精品SWA| 国产95在线 | 传媒麻豆有限| 国产精品JIZZ在线观看老狼| 精品无码久久久久成人漫画| 欧美和日本操逼视频| 熟妇的奶头又大又粗视频| 日韩综合亚洲色在线影院| 无码人妻精品中文字幕不卡| 亚洲午夜性春猛交ⅩXXX| 一边摸一边叫床一边爽AV| 吃奶呻吟打开双腿做受动态图| 国产精品女同一区二区| 女人18毛片A级毛片嫰阝| 性XXXXBBBB农村小树林| 亚洲中文字幕无码中字| 成人无码网WWW在线观看| 精品日本久久久久久人妻日本| 妺妺窝人体色WWW网| 少妇无码一区二区三区| 中文字幕无码一线二线三线| 福利乱码卡一卡二卡新区| 蜜桃AV一区二区三区| 亚洲AⅤ中文无码字幕色| 苍井空一区二区三区在线观看| 久久亚洲精品成人无码| 无码专区6080YY免费视频| EEUSS影院在线观看| 久久久亚洲欧洲日产国码是AV| 四虎在线观看视频9E9| JAPANESE日本护士XXX| 国产午夜成人免费看片APP| 蜜中蜜3在线观看视频 | 国产成人精品无码专区| 可以差差差的视频无掩盖| 亚洲国产精品久久久久久久| 丰满性熟妇ⅩXXOOOSEX| 欧美精品偷自拍另类在线观看| 污污污污污WWW网站免费| 被主人调教边C边打屁股作文| 麻豆果冻视频传媒APP下载| 性少妇中国内射XXXX狠干| 锕锕锕锕锕锕锕好疼视频真人| 免费无码成人AV片在线在线播放| 亚洲一二三四2021不卡| 精品久久久久久无码免费| 亚洲AV成人无码精品直播在线| 国产精品JIZZ视频| 日本无吗无卡V免费清高清| YY影院电视剧大全| 欧美三级一区二区| 97一期涩涩97片久久久久久久| 久久青草精品38国产| 亚洲熟妇色XXXXX高潮喷水| 久爱无码精品免费视频在线观看| 亚洲国产美女精品久久久| 国外AV无码精品国产精品| 亚洲VA无码手机在线电影| 国产一区二区三区久久精品| 性一交一乱一伦一| 精品人妻一区二区三区免费看| 雯雅婷在工地被民工玩| 短裙公车被直接进入被C| 偷窥@MADSEXTUBE| 国产日产久久高清欧美一区| 天堂А√资源中文在线地址BT| 久久久WWW免费人成精品| 交换朋友夫妻互换客厅韩国5| 国产在线精品无码二区| 国产韩国精品一区二区三区久久| 伊人久久大香线蕉无码不卡| 激情伊人五月天久久综合| 成人无码区免费AⅤ片黄瓜视频| 一下子就弄进去岳的身体| 三上悠亚AV资源站| 免费视频片多多视频免费高清| 边摸边吃奶边做爽视频免费| 亚洲AV无码精品色午夜在线观看| 欧美老熟妇XOXOXOⅩO| 国产欧美日韩综合精品二区| JAPANESE日本护士HD| 影音先锋亚洲成AⅤ无码| 入睡指南PO高干粟熹沉芙| 国产啪精品视频网站免费尤物| 啊灬啊灬啊灬快高潮了网站 | 国产人妖视频一区二区| 宝宝下面都湿透了还嘴硬疼| 精品国产AⅤ一区二区三区V视界| 我和子发生了性关系视频| 狠狠色噜噜狠狠狠8888米奇| 国产AV天堂亚洲国产AV麻豆| WWW.一本色道88久久爱| 亚洲AV无码专区亚洲AV伊甸园| 女人被弄到高潮的免费视频| 精品无码国产自产野外拍在线 | 果冻传媒董小宛一区二区| 亚洲国产不卡久久久久久| 久久久久久精品免费无码无| 爱性久久久久久久久| 亚洲精品国产成人精品| 女儿男朋友是妈妈的爱豆的电视剧 | 37大但文体艺术A级都市天气| 婷婷无套内射影院| 女人大荫蒂毛茸茸视频| 黑人巨大粗物挺进了少妇| 亚洲日本乱人伦片中文| 入禽太深视频免费视频| 久久久久亚洲AV成人网人人网站 | 久久久久久久精品妇女99| 国产成人精品日本亚洲语音| 9420高清完整版在线观看| 亚洲VA欧美VA国产VA综合| 日韩一区二区在线视频| 久久精品国产亚洲AVAPP下载| 国产精品99久久久久久宅男| 岳两腿之间白嫩的小缝| 亚洲AV综合色区无码另类小说| 国内色母与进口色母区别| 公交车上拨开少妇内裤进入| 99久久国产综合精麻豆| 伊人久久大香线蕉AV五月天宝贝| 性色欲情网站IWWW九文堂| 日本免费人成视频播放试看 | 亚洲国产精品第一区二区|