我正在構建一個Web應用程序,它將爲不斷增長的用戶羣提供內容。我想知道從哪裏開始可擴展性,以及如何衡量我的應用程序的性能,所以我知道何時需要它。如何衡量Web應用程序的可擴展性需求
例如,我瞭解到,隨着站點流量的增長,諸如縮小腳本和使用緩存以獲取靜態內容等功能將有助於管理加載時間,但我不確定何時適合實現這些功能。
此外,如何測量網站的性能,知道何時開始添加更多服務器,以及構建應用的穩健性等 - 在我的服務器開始崩潰和窒息之前?
在此先感謝...
我正在構建一個Web應用程序,它將爲不斷增長的用戶羣提供內容。我想知道從哪裏開始可擴展性,以及如何衡量我的應用程序的性能,所以我知道何時需要它。如何衡量Web應用程序的可擴展性需求
例如,我瞭解到,隨着站點流量的增長,諸如縮小腳本和使用緩存以獲取靜態內容等功能將有助於管理加載時間,但我不確定何時適合實現這些功能。
此外,如何測量網站的性能,知道何時開始添加更多服務器,以及構建應用的穩健性等 - 在我的服務器開始崩潰和窒息之前?
在此先感謝...
首先定義您要爲用戶提供的服務級別。例如,從用戶的角度來看,任何頁面的加載時間不應超過1秒。該網站應具有99.9%的正常運行時間等。
基於服務級別,定義可接受的性能(在頁面加載時間等)。
基準現有表現。即按照當前使用級別的不同標準衡量您當前的表現。
確定要優化的頁面。如果大多數網站需要優化,您需要查看整體解決方案(例如:縮小js/css,緩存等)。如果特定頁面需要優化,請查看個人查詢等。
定期測量性能以查看您的服務級別是否仍然滿足,或者您需要進一步擴展。
這些是您可以採取的一般步驟。至於具體的步驟,考慮:
一切(數據庫,多個網絡服務器等)的分區/拆分。異步設計(即任何你需要花費大量資源的進程,你應該轉換成一個異步進程,假設你允許用戶上傳一個文檔,然後應用程序接受文檔,然後在文檔上做一些處理doc。而不是在單個php頁面上進行所有處理,將請求添加到隊列中,然後立即讓用戶知道他的請求已排隊,讓單獨的後臺進程通過查看隊列來完成處理。一旦完成,可以讓用戶知道他的請求被處理。
更多指引,你可能要檢查出了一本書叫「可擴展性的藝術」 http://amzn.to/oSQGHb
我更在編碼的事莫過於服務器管理員..只是一個想法......我會說不會從的index.php除了它會有不同的一個index1.php一個microtime()開頭,另一個在最後一行(或者你懷疑某段代碼)計算執行時間。在最後一行(microtime)之後,我將有一個函數將這個執行時間和日期一起存儲在數據庫中。
我會每天運行頁面表格index1.php 2或3次,並將存儲當天的最大時間。在本週結束時,您可以生成圖表或直接查看值,它們如何根據時間進行更改,以便您可以決定要做什麼。 (通常有很多東西需要優化,數據類型,索引,sql查詢等),良好的設計,重循環,異步加載(XmlHttp-可以幫助很多)都是需要考慮的事情。
縮小腳本和緩存內容是你應該做的馬上。它會影響頁面加載速度,從而影響用戶體驗,而不管您的網站的加載方式是多少。研究表明,更快的網站有更好的轉化率 - 谷歌它。據稱頁面速度對搜索引擎排名也有好處。
您可以使用諸如Google Page Speed和Yahoo的YSlow之類的工具來測量頁面加載性能。這兩個工具也提出了改進的方法,所以讓他們成爲你的指導。
這是很好的建議,謝謝你的提示和鏈接! – Dan
這就是我一直在尋找的,感謝一般過程以及書籍推薦。我會檢查出來的! – Dan