千亿国际网站行者无疆

千亿国际网站|首页-正版登录 >产品中心

10種最常見的Web應用程序的性能問題

作者: 千亿国际网站   点击次数:    发布时间: 2019-10-31 15:38

Web應用程序總是不可避免的會發生問題。Neotys公司(法國一家負載測試解決方案提供商)的業務主要是通過網站監控和測試幫助您避免這些問題。但任何地方都可能出問題,有時候你只需要知道去哪找就可以了。因此,我們將您經常碰到的一些性能問題并整理成一個簡短的指引。

請務必要記住,解決性能問題的最佳方式就是在其影響用戶之前就發現并消除。一個良好的維護計劃可以成為你的好幫手。制定停機時間策略,創建冗余和擴展計劃。為用戶負載在一個月或一年后可能會達到的量級做提前的思考。當然,首先要定期做測試負載并持續監控產品性能。

無論你對網站考慮得如何周全,但是有些問題總是要發生的。下面是一些常見性能問題的原因和解決辦法。

糟糕的代碼會使Web應用程序出現諸如算法低效、內存溢出、以及死鎖等問題。軟件版本過舊,或是集成了歷史遺留的系統同樣會拖累性能。確保你的團隊成員都在使用適合其崗位的工具–從自動化分析到最佳編程實踐的代碼審查工具。

優化好的數據庫可以達到很好的安全級別和處理性能,反之,沒有優化的數據庫可能會拖垮生產環境下的應用程序。索引的缺失會減慢SQL的查詢性能,從而使整個網站變慢。一定要用腳本和文件分析檢查任何低效的查詢。

數據系統一般會隨時間的推移變慢。制定一項計劃來管理和監控數據,因為維持數據的增長對高性能的Web應用不可或缺。首先,找出業務中導致數據增長的主因。然后,研究并制定合適的存儲解決方案。留意所有數據庫、緩存、以及更復雜存儲方案的選項。

我們通常認為流量的增長是件好事。但是當做完市場推廣或是經歷了瘋狂傳播的熱門視頻后,應用程序如果沒有做好相應的準備,任何人都知道流量峰值會造成什么結果。提前準備是關鍵,同時搭建一個通過模擬用戶做監測的預警系統例如NeoSense。這樣一來,你就會提前發現流量增長影響到了業務,從而避免了用戶的糟糕體驗。

糟糕的分發機制會將新的請求分配到已經當機的服務器,而不是備用待機服務器上,導致服務器響應速度急劇變慢。如果過多的人同時訪問同一個服務器,即使這個系統性能遠低于瓶頸,還是會造成這樣的問題。利用類似NeoLoad的工具測試產品勢在必行,它有助于你發現任何薄弱的環節。

系統必須適當調整。默認設置會讓一個新的組件很容易啟動并運行,但對真正生產環境中的Web應用程序來說未必適合。檢查每一項設定:線程數、內存和權限分配。確保所有的配置參數匹配Web應用程序的要求,而不是僅僅為了方便。

DNS查詢占用了大部分的網站流量。這也是為什么DNS出了問題會引起很多麻煩,阻止訪問者正常訪問,拋出錯誤頁面、404、以及錯誤路徑。同樣的,網絡連接和防火墻的效率也是網站訪問能力和性能的關鍵。使用DNS監控保障措施,以便找出手頭的問題。此外還可以修改交換機、檢查VLAN標記、以及為不同服務器分配任務。上述也只是解決這類性能的一小部分方法。

如果你的系統依賴了第三方服務,那么有些變慢的問題是你無法掌控的。誰沒有經歷過由于第三方廣告服務緩慢導致頁面加載的阻塞呢。如果你的用戶碰到了這類問題,必須確定問題是出在你的網站還是第三方。如果一定要用第三方服務,調整網站時盡量減少因第三方服務出問題帶來的不利影響。最后,確保線下服務提供商為公司提供明確的性能保障。

現如今幾乎所有的Web應用程序,從擴展到管理再到系統恢復,都依賴于虛擬服務器。可有時候上百個虛擬系統跑在了一個物理的服務器上,結果就會變成一個虛擬機掛掉會影響到所有其它的。畢竟,資源搶奪總是存在的。密切監控系統,當其中一個虛擬機出了問題,你可以很快處理其產生的副作用。

最后,一定要意識到某一個錯誤有可能會影響到其它很多你想不到的方方面面。多個問題會糾纏在一起,讓人很難確定到底發生了什么。你需要訓練團隊發現問題根源,通過回溯找到真正的罪魁禍首。你甚至可以考慮Netflix公司的ChaosMonkey模擬策略,通過引入網絡異常來探測系統彈性和恢復的能力。

目前你對常見的性能問題有了一個大致印象,事先做更高級別的用戶負載測試是非常必要的。看下這些相關文章,闡釋了如何搭建高用戶負載的服務器。一旦用戶開始使用你的網站,就可以利用產品環境中測試(TiP)流程。最后,使用模擬用戶腳本來模擬用戶導航和購買業務,從而獲得反映網站短板的更準確數據。