天天看點

aws php 上傳檔案 限制大小_你開發的PHP網站通路很慢,如何找原因問題場景可能出現的問題

問題場景

作為程式員的你,你經常會遇到:使用者向你反映說你開發的網站通路速度很慢,但是該使用者通路其他網站很正常。出現這種問題,你是如何分析原因、如何解決問題呢?

可能出現的問題

1 伺服器出口帶寬不夠用。這是一個很常見的瓶頸。一方面,可能是本身購買的伺服器出口帶寬就很小(企業購買帶寬相當昂貴),一旦使用者通路量上來了,并發量大了,自然均分給使用者的出口帶寬就更小了,是以某些使用者的通路速度就會下降了很多。另一個,就是跨營運商網絡導緻帶寬縮減,例如很多公司的網站(伺服器)是放在電信的網絡上的,而如果使用者這邊對接的是長城或者說聯通的寬帶,營運商之間網絡傳輸在對接時是會有限制的,這就可能導緻帶寬的縮減。

解決:出口帶寬的問題,這個很簡單,加帶寬,有錢就多買帶寬,很簡單。

2 資料庫表結構不合理。

解決:在建立MySQL資料庫表時,把經常作為查詢條件的字段設定為索引,這樣可以提高資料的查詢速度,進而提高網站的打開速度。

3 資料庫查詢語句不合理。PHP+MySQL動态網站,經常使用資料庫select操作。

在使用select操作時,切忌不要輕易使用select * from tablename,因為這樣的查詢速度慢,并會占用較多記憶體,影響PHP程式的整體運作速度,進而影響網站的打開速度。

解決:建議使用針對特定字段 select查詢語句,例如 select fieldname from tablename。這樣的查詢方式會降低MySQL執行時間,提高效率。

4 PHP程式備援。搭建PHP+MySQL網站時,會發現有些程式中存在大量備援,延長了程式執行時間。例如重複的SQL查詢操作,反複的變量指派等。

解決:出現這樣的情況時,最好找專業人士幫你優化一下程式,提高程式整體運作時間。

5 PHP程式大量讀寫磁盤。PHP+MySQL網站程式會大量執行磁盤的讀寫操作,尤其是磁盤的寫操作,将占用大量的磁盤IO,導緻程式運作緩慢。情況嚴重的還會使伺服器當機。

解決:當遇到這樣情況時,應盡量減少不必要的磁盤寫操作,并且對磁盤進行相關優化操作,例如磁盤整理,進而提高磁盤整體運作效率。

6 盡量使用靜态頁面。

解決:在使用PHP+MySQL搭建網站時,盡量使用可以生成靜态頁面的開源程式。

7 網頁上存在大量圖檔或flash。網頁上存在大量圖檔或flash時,也會影響網站的打開速度。

解決:減少網頁上的圖檔或flash,或者優化減小圖檔的大小,以提高網頁的打開速度。

8 伺服器軟體。

解決:盡量避免在VPS或者獨立伺服器上安裝不必要的軟體,防止伺服器運作速度慢,導緻網站打開速度慢。

9 網頁上存在大量JS代碼。大量的JS代碼也是引起網站打開速度慢的一個重要原因,尤其是一些不知名的聯盟廣告代碼,對網站打開速度的影響非常明顯。

10 過多的引用了其他網站内容。包括引用其他網站的圖檔、視訊檔案等,如果直接在頁面引用别的網站的東西,而那個網站打開速度慢,或者那個網站的該頁面已經不存在了,那麼打開的速度就會非常慢。

11 減少HTTP請求數

打開一個網頁的時候,背景程式的響應并不所需太多時間,等待的時間主要花費在下載下傳網頁元素上了,即HTML、CSS、javascript、Flash、圖檔等。據統計,每增加一個元素,網頁載入的時間就會增加25-40毫秒(具體取決于使用者的帶寬情況)。

是以,想要提高網頁打開速度,可以降低HTTP請求數,這裡提供以下3種方法:

1)例如用CSS代碼代替一些圖檔(比如圓角圖檔),盡可能的減少圖檔使用。

2)合并檔案,對于文本檔案,可以直接合并内容。如将多個javascript檔案合并成一個,将多個CSS檔案合并成一個。

3)優化緩存,對于沒有變化的網頁元素(如頁頭、頁尾等),使用者再次通路的時候沒有必要重新下載下傳,可以直接從浏覽器緩存裡讀取。

12 樣式表放在網頁Head部分經過實際測試,把樣式表(CSS檔案)移到網頁的Head部分,可以提高有效頁面的加載速度,讓頁面元素順序顯示。

13 使用CDN(ContentDeliveryNetwork,内容分發網絡)CDN由一系列分散到各個不同地理位置上的Web伺服器組成,它根據和使用者在網絡上的靠近程度來指定某台伺服器響應使用者的請求。當你的網站圖檔很多事,就一樣要使用CDN了,比如現在的電商網站,幾乎都在使用CDN。很多CSS樣式架構以及js架構都提供了CDN服務,比如bootstrap等等。

14 壓縮網頁元素顯然,網頁中的元素越小,下載下傳所需的時間就越少。現在比較成熟和流程的壓縮網頁的方式是通過Gzip壓縮,一般可以将網頁文本内容減少60%以上。

15 把JS檔案放到網頁底部網頁打開時,所有元素是順序顯示的。但是由于JS具有特殊性,相對其他元素而言,會加載的較慢,在JS檔案下載下傳完成之前,其他後面元素的順序顯示将被阻塞,是以把JS檔案盡量放在底部,意味着内容能被快速顯示。

16 把樣式表和JS腳本放到外部檔案中雖然我們可以将樣式表和JS腳本直接寫入網頁HTML中,能夠減少外部檔案調用數量,但是這樣做會增加頁面的檔案大小。将樣式表和JS腳本放到外部檔案中,使用者首次通路時也許會有點慢,但是後續在通路網站時,使用者直接通過浏覽器緩存就可以用,進而達到減少HTTP請求數的目的,為最優的做法。

aws php 上傳檔案 限制大小_你開發的PHP網站通路很慢,如何找原因問題場景可能出現的問題

繼續閱讀