LAMP的思考:效能優化總結

edithfang發表於2014-12-28
剛剛不經意間檢視關於php加速方面的訊息,看到了一句話“lamp結構的瓶頸在於M”,感覺是真知灼見,當然這是在理想狀態下的情況。對於實際情況下的生產環境來說,需要解決的問題是多種多樣的,l-a-m-p在不同階段需要優化的點是不同的,雖然通過努力最終的瓶頸在於M,但是期間的各種努力也是不容忽視的。下面我就意識流的總結一下,在網站生產環境遇到的各種問題。

以下是之前遇到問題的各種彙總:

1、php內的sql程式碼效能存在問題

這個存在於兩方面,一個是sql本身優化不夠,另外一個方面是隨著資料量的增加,某些效能問題會逐漸暴露。

2、apache處理模式造成的記憶體消耗

由於apache是以程式的形式,同步阻塞式的處理http請求,so,當網頁本身載入元素過多的話,會造成大量的http程式併發,消耗伺服器大量的記憶體,導致訪問緩慢或者異常。解決辦法很是簡單,主要有以下幾個方面:

a、動態頁面轉成靜態頁面。

b、轉成lnamp的模式,圖片等靜態資源由nginx進行處理,減少http程式數量

3、CDN服務的使用

這個並不是效能問題,而是為了解決使用者訪問的頁面載入速度問題,以及不同網路之間的延遲問題。具體使用效果是非常不錯的,會大大的改善各地使用者的訪問速度,土豪公司可以自建CDN,中小公司選擇第三方服務也是不錯的選擇。

4、快取的使用

這個有兩個方面的快取,其中主要的快取是資料也就是動態方面的快取。使用的軟體主要有redis以及memcache(兩個軟體都是針對php與mysql之間的請求進行快取,減少與mysql的直接互動,提高訪問速度。

5、apache的負載均衡,mysql的讀寫分離

即便增加了CDN、快取,優化了apache的頁面,但是高併發的問題依然會隨著使用者量的增加而慢慢出現,那麼這個時候就要發大招了,擴!容!硬!件!。永遠都好使的大招,用完即生效。我們現在主要使用的是nginx+apache的負載均衡方式。而mysql的讀寫分離也so easy,使用主從複製即可。對於及時性要就不是太高的網頁訪問,問題不大。

6、奇葩問題粗現了!!!

Then,該優化的俺們都優化了,前輩的經驗也是各種借鑑,最後俺們發現頁面訪問還是慢得想讓使用者登出。問題到底在哪?又經過了艱苦卓絕的調查與研究,最後發現,上一個離職的哥們開放的一個許可權系統(所有網頁載入都會用),沒有關閉debug,我去!我一口老血噴在了顯示器上啊!蒼天啊,我曾經一度懷疑自己是不是在做無用功啊!

這裡不是挑起運維與研發的階級矛盾,而是總結經驗教訓,以後不在走彎路!

先到這吧!以後有了經驗再補充!
相關閱讀
評論(1)

相關文章