寫了一個慢介面,年終妥妥的325
一個專案要想抗住越大的壓力,那麼每個 API 都得在最短的時間內響應,這樣吞吐量才高。
在很多時候,開發壓根沒有去做過最佳化,等到某天壓力上來時,系統就扛不住了。
舉一個最常見的例子:
大家上班都會做地鐵(土豪可以開車哈)吧,地鐵都有固定的幾個入口,每個入口有幾個固定的閘機可以掃碼進入。
如果每個人掃碼進站的時間都控制在 2 秒內,那麼一個閘機一分鐘可以過 30 個人。如果有一個人他在那磨蹭半天,花了 20 秒,也就是這個閘機這一分鐘只能過 21 個人,吞吐量立馬就下降了。
這種生活中的案例在程式的世界中也是同樣適用的,而且是一個原理,只要有一個慢介面,就會影響整體的效能。總的來說就是隊友都要很給力,不要有 Pig 隊友。
下面看真實案例:
正在划水看美女的時候,突然收到告警,有幾個介面響應時間超長,高達幾十秒。慌得一批,估計哪裡又出問題了。
趕緊上 Cat 看看詳情情況,商品服務的一個 RPC 介面響應太慢了,而且也沒啥呼叫量,淚奔。。。
仔細看其實並不是有很長的耗時操作,但是整體耗時卻很長,肯定是請求被阻塞了。
然後去看對應機器的監控,發現 CPU 很高,幾乎 100%的狀態。
看了下 GC 情況,也挺正常的,後面看了執行緒池的情況才發現原因。
上面只是表面現象,告警的時候是有幾個慢介面的,排查的時候就選了第一個在看,忽略了其他的介面,以為是同一個問題。
真正慢的是另一個慢介面被 Job 大量呼叫了,服務執行緒都被打滿了。導致其他介面很慢。
最佳化方案:
定時任務時間調整,儘量在凌晨執行 單獨提供一個服務,只對 Job 提供服務,連從庫,影響降到最小 對慢介面進行效能最佳化
關於作者:尹吉歡,簡單的技術愛好者,《Spring Cloud 微服務-全棧技術與案例解析》, 《Spring Cloud 微服務 入門 實戰與進階》作者, 公眾號 猿天地 發起人。
有收穫,不要吝嗇你的轉發和在看。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31561268/viewspace-2748881/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 妥妥的去面試之Android基礎(一)面試Android
- 妥妥的去面試之Android基礎(五)面試Android
- 妥妥的去面試之Android基礎(四)面試Android
- 妥妥的去面試之Android基礎(六)面試Android
- 妥妥的去面試之Android基礎(二)面試Android
- 妥妥的去面試之Android基礎(三)面試Android
- 搞定JVM基本原理和麵試題,看看這幾本書妥妥夠了!JVM
- Homekit走向更開放,高傲的蘋果妥協了?蘋果
- 分散式系統關注點——僅需這一篇,吃透「負載均衡」妥妥的分散式負載
- 智慧手鐲也要不充電 圖案還能隨心變妥妥的
- 紅黑樹這個資料結構,讓你又愛又恨?看了這篇,妥妥的征服它資料結構
- 陀思妥耶夫斯基
- FB 妥協了,下週把 React 協議改成 MITReact協議MIT
- 《軒轅劍柒》評測:一個30年老系列的穩妥轉型
- mysql單表體積和一個庫設計多少張表為妥MySql
- 這樣執行執行緒是否妥當?執行緒
- Google妥協:不再強制Android 5.0全盤加密GoAndroid加密
- 《黑暗之魂3》地圖設計:妥當的收尾也不失為一種成功(上)地圖
- 《黑暗之魂3》地圖設計:妥當的收尾也不失為一種成功(下)地圖
- 蘋果內部員工爆料:新MacBook Pro是妥協的產物蘋果Mac
- iOS9 pdf中文亂碼問題的原因與“妥協”辦法iOS
- 美國一警察局向勒索軟體團伙妥協並支付百萬美元贖金
- 微軟為何突然對Linux“友善”:妥協還是進攻(轉)微軟Linux
- ios 高效的寫好一個UI介面(一)iOSUI
- 為安全妥協,起底普京XP系統背後的資訊主權之爭
- 洗衣粉批發生產工廠的品牌分析,選對品牌更加穩妥
- Swift 寫一個完整的介面(實戰)Swift
- Lombok 作者因相容問題討伐 IntelliJ IDEA(官方已妥協)LombokIntelliJIdea
- 寫了一個 MySQL 代理MySql
- 寫了一個 WebSocket 框架Web框架
- 從高冷硬核到搞怪荒誕,模擬器遊戲這些年的妥協與考量遊戲
- 蘋果態度大轉彎取消打賞分成 被妥協還是無奈?蘋果
- 蘋果對俄羅斯監管新政妥協 該國果粉資料本地儲存蘋果
- 編寫一個介面壓測工具
- 寫了一個 FastCGI 實現AST
- 寫了一個網站(彩票)網站
- 蘋果向“壟斷憤怒”妥協:宣佈允許開發者挑戰霸王條款蘋果
- Oracle將字元編碼從GBK轉到UTF8,如何操作比較穩妥?Oracle字元