PHP高併發基礎

如今互聯網時代web2.0的興起,使網站更多樣化,動態效果更加完美,用戶的訪問量額不段的增加,高流量-數據量大-對網站的要求也特別的高。訪問量上來了就會出現高併發問題,下

面就簡單介紹一下高併發得解決方案,

1:硬件方面

普通的一個p4的服務器每天最多能支持大約10萬左右的IP,如果訪問量超過10W那麼需要專用的服務器才能解決,如果硬件不給力 軟件怎麼優化都是於事無補的。主要影響服務器的速度

有:網絡-硬盤讀寫速度-內存大小-cpu處理速度。

2:軟件方面

第一個要說的就是數據庫,首先要有一個很好的架構,查詢儘量不用* 避免相關子查詢  給經常查詢的添加索引  用排序來取代非順序存取,如果條件允許 ,一般MySQL服務器最好安裝

在Linux操作系統中 。關於apache和nginx在高併發的情況下推薦使用nginx,ginx是Apache服務器不錯的替代品。nginx內存消耗少 官方測試能夠支撐5萬併發連接,在實際生產環境中跑

到2~3萬併發連接數。php方面不需要的模塊儘量關閉,使用memcached,Memcached 是一個高性能的分佈式內存對象緩存系統,不使用數據庫直接從內存當中調數據,這樣大大提升了速

度,iiS或Apache啓用GZIP壓縮優化網站,壓縮網站內容大大節省網站流量。

第二,禁止外部的盜鏈。

外部網站的圖片或者文件盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對
於自身的圖片或者文件盜鏈,好在目前可以簡單地通過refer來控制盜鏈,Apache自
己就可以通過配置來禁止盜鏈,IIS也有一些第三方的ISAPI可以實現同樣的功能。當
然,僞造refer也可以通過代碼來實現盜鏈,不過目前蓄意僞造refer盜鏈的還不多,
可以先不去考慮,或者使用非技術手段來解決,比如在圖片上增加水印。

第三,控制大文件的下載。

大文件的下載會佔用很大的流量,並且對於非SCSI硬盤來說,大量文件下載會消耗
CPU,使得網站響應能力下降。因此,儘量不要提供超過2M的大文件下載,如果需要
提供,建議將大文件放在另外一臺服務器上。

第四,使用不同主機分流主要流量

將文件放在不同的主機上,提供不同的鏡像供用戶下載。比如如果覺得RSS文件佔用
流量大,那麼使用FeedBurner或者FeedSky等服務將RSS輸出放在其他主機上,這
樣別人訪問的流量壓力就大多集中在FeedBurner的主機上,RSS就不佔用太多資源了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章