1. 程式人生 > >專案效能優化-O2O專案優化總結

專案效能優化-O2O專案優化總結

8月份升級之後使用者普遍反映系統變慢,然後就開始了效能優化之路。
一、升級之後出現兩個問題:
1、載入城市列表時出現空白頁,黑科技介面導致,載入城市列表的介面過於簡單粗暴,呼叫app端介面時將所有商戶的所有繳費專案,拼接上商戶地址資訊,返傳給web端伺服器,三張表中的資料雜糅在一起,資料量大,遍歷多張資料表操作開銷大,導致在web端呼叫app端介面時curl原先設定的3秒超時時間不夠用,介面呼叫失敗。
解決方式:分拆介面,將該介面拆成若干個介面,去掉無用資料,保證跨伺服器傳輸資料的效率,並在介面中加上memcache快取,減少查詢資料庫次數。
2、首頁相應十分遲緩,開啟首頁需要十秒左右,原因:
1,郵儲APP退出之後,會清除快取,導致使用者每一次重新開啟APP就需要完全載入專案資源。
2,首頁靜態資源太大,由於靜態資源全封裝在header檔案中,引用後會載入全部資源。
3,生產伺服器Apache未開啟gzip檔案壓縮
解決方式:開啟Apache的gzip壓縮,首頁不引用header檔案,只在頁面中引用必須的靜態資源,壓縮jQuery等靜態檔案,首頁選單由查庫操作改為配置檔案。成效顯著,首頁載入資料大小由原先800K降低至80K左右,首頁響應速度提升明顯。

二、邏輯優化
使用xhprof效能分析工具測試使用者端邏輯,找出記憶體或CPU消耗較大的程式碼,專案中有一些老的已經沒有使用場景的方法依然在執行著,消耗系統資源,去掉,專案中查庫頻繁的操作使用memcache快取,減少查庫次數。

三、壓力測試
聯絡了郵儲相關部門對專案進行壓力測試,測試內容包括單一功能點壓測、單獨首頁壓測、使用者端整體流程壓測、兩輪壓測
第一輪壓測:總體,30併發,tps:58筆/s, 171前端機CPU佔用80%,173後端機無壓力,資料庫伺服器無壓力,memcache伺服器無壓力
單一首頁壓測,tps:450筆/s,171前端機CPU佔用100%

第二輪壓測:
1,恢復首頁優化之前的程式碼,壓測單一首頁,tps:110筆/s,總體40筆/s,平均時間0.139s
2,恢復首頁優化之前的程式碼,開啟gzip,單一首頁:tps140筆/s,相應時間0.157s,CPU佔用30%,CPU使用率不再上漲
3,開啟gzip,使用優化後的首頁程式碼,壓測單一首頁,tps:576筆/s,響應時間0.026s,171前端機CPU70%,佔用率不再上漲

整體壓測,壓力全在前端機,資料庫伺服器,app伺服器,memcache伺服器均無太大壓力