歡迎光臨
每天分享高質量文章

10種最常見的Web應用程式的效能問題

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

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

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

問題 1: 糟糕的程式碼

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

問題 2:未經最佳化的資料庫

最佳化好的資料庫可以達到很好的安全級別和處理效能,反之,沒有最佳化的資料庫可能會拖垮生產環境下的應用程式。索引的缺失會減慢SQL的查詢效能,從而使整個網站變慢。一定要用指令碼和檔案分析檢查任何低效的查詢。

問題 3:失控的資料增長

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

問題 4:流量峰值

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

問題 5:糟糕的負載分發

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

問題 6:預設設定

系統必須適當調整。預設設定會讓一個新的元件很容易啟動並執行,但對真正生產環境中的Web應用程式來說未必適合。檢查每一項設定:執行緒數、記憶體和許可權分配。確保所有的配置引數匹配Web應用程式的要求,而不是僅僅為了方便。

問題 7:DNS,防火牆,網路連線

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

問題 8:第三方服務出了問題

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

問題 9:共享資源和虛擬機器

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

問題 10:多米諾骨牌效應

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

積極主動地解決效能問題

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

原文出處:www.neotys.com

譯文出處:伯樂線上 – Sandy

連結:http://web.jobbole.com/82268/



贊(0)

分享創造快樂