乙個專案要想抗住越大的壓力,那麼每個api都得在最短的時間內響應,這樣吞吐量才高。
在很多時候,開發壓根沒有去做過優化,等到某天壓力上來時,系統就扛不住了。
舉乙個最常見的例子:
大家上班都會做地鐵(土豪可以開車哈)吧,地鐵都有固定的幾個入口,每個入口有幾個固定的閘機可以掃碼進入。
如果每個人掃碼進站的時間都控制在2秒內,那麼乙個閘機一分鐘可以過30個人。如果有乙個人他在那磨蹭半天,花了20秒,也就是這個閘機這一分鐘只能過21個人,吞吐量立馬就下降了。
這種生活中的案例在程式的世界中也是同樣適用的,而且是乙個原理,只要有乙個慢介面,就會影響整體的效能。總的來說就是隊友都要很給力,不要有pig隊友。
下面看真實案例:
正在划水看美女的時候,突然收到告警,有幾個介面響應時間超長,高達幾十秒。慌得一批,估計**又出問題了。
趕緊上cat看看詳情情況,商品服務的乙個rpc介面響應太慢了,而且也沒啥呼叫量,淚奔。。。
仔細看其實並不是有很長的耗時操作,但是整體耗時卻很長,肯定是請求被阻塞了。
然後去看對應機器的監控,發現cpu很高,幾乎100%的狀態。
看了下gc情況,也挺正常的,後面看了執行緒池的情況才發現原因。
上面只是表面現象,告警的時候是有幾個慢介面的,排查的時候就選了第乙個在看,忽略了其他的介面,以為是同乙個問題。
真正慢的是另乙個慢介面被job大量呼叫了,服務執行緒都被打滿了。導致其他介面很慢。
優化方案:
有收穫,不要吝嗇你的點讚。
寫了乙個新浪部落格的爬蟲
語言 c 用到的第三方庫 軟體介面 由於原理非常簡單,花了乙個小時寫了一下,直接上 using system using system.io using system.net using system.text using system.text.regularexpressions using s...
寫了乙個wwwscan的路徑生成工具
drupal 6.22 htaccess drupal 6.22 changelog.txt drupal 6.22 cron.php drupal 6.22 index.php drupal 6.22 install.mysql.txt drupal 6.22 install.pgsql.txt ...
自己寫了乙個巨NB的程式
抱歉,確實想吸引眼球 不過我想把inside sql storage engine和.net結合起來的,我應該能排世界前10名吧?如果哪位老大發現另有高人,請及時告訴我,謝謝!粘圖先,因為這是我在ip creation的過程中隨手搞的東西,花了兩天 還沒有完,欠缺幾點 1 rid的獲取。2 gdi ...