接口響應很快,頁面呈現卻很慢,咋回事?當事人更清楚


新項目白天發版部署到生產環境后,到了晚上,大家都發現了一種煩人的情況:oms后台系統,點擊其中幾個功能頁,頁面加載變得非常慢,一直轉圈圈。

 

為什么呢?查看生產的log,發現oms服務端每個接口在調用的開始處記日志了。而在走完接口邏輯返回時,並沒有打印日志。我們就無從知道接口的duration了。

 

到底是不是服務端的接口慢呢?用Postman模擬請求,發現很快。 

 

這時,小組里另一個同事說oms並不慢,還錄制了屏幕的操作(新冠肺炎疫情下,大家在家辦公)發到qq討論組里。

而我們幾個在點擊的時候,的確是慢。

后來才發現,原來是有的頁面快,有的頁面慢,而慢的那幾個頁面呢,是圖片加載的問題。———開發這幾個頁面的小哥們也發現了————那幾個頁面查詢結果里每一行都要顯示兩張證件照片,通過F2瀏覽器調試器發現,加載每一張照片耗時都超長,因為這些圖片加載慢導致了整個頁面響應也超級超級慢。

 

【那到底為什么加載圖片慢呢?】

這些圖片在生產的fastdfs服務器都不存在的,因為生產db的數據是從測試db初始化復制過來的。ie里請求如下fastdfs圖片鏈接:http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG, 瀏覽器轉了半天,結果是 502 Bad Gateway ;ie里請求如下fastdfs圖片鏈接:http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0B/wKgoVF5hpvmAPXpBAABWI5BcW0Y60.JPEG, 瀏覽器轉了半天,結果是 504 Gateway Time-out 。

然而,我們通過前端上傳一張圖片到fastdfs服務器,這時,在ie里訪問這個圖片鏈接 http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG ,瀏覽器響應很快。

 

那么,難道圖片不存在,響應就會很慢嗎?修改上面那張已存在的圖片的名字,比如改成 http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/gAC3V5iPMaAD1c-AAAUQnWiKAg.JPEG ,雖然圖片也不存在,但是很快就能收到404的響應。

那么,跟前面的fastdfs路徑有關系嗎?來回調換,也沒什么規律。

不懂為什么那些原本不存在的照片那么慢!想知道原因,得分析fastdfs源碼了吧,也許跟Nginx配置有關系。

 

附上以下情況:

-- 1. 原本在fastdfs上不存在的。響應碼 50x
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0B/wKgoVF5hpvmAPXpBAABWI5BcW0Y60.JPEG

-- 2. 新上傳到fastdfs上的
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG

-- 3. 基於上面兩種,拼出來的下面的url
-- 3.1 很快響應400 Bad Request
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/gAC3V5iPMaAD1c-AAAUQnWiKAg.JPEG
-- 3.2 響應很慢 502 Bad Gateway
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/02/wKgoVF5hucKAQxHcAABJEO8Ld0Y92.JPEG
-- 3.3 很快響應404
http://oms.boss.shenbianhui.cn/fimage/group1/M00/00/0C/CgAC3V5iPMaAD1c-AAAUQnWiKAg69.JPEG

 

 

結束!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM