對於當今大流量的**,每天幾千萬甚至上億的流量,是如何解決訪問量問題的呢?
以下是一些總結的方法: 第一,確認伺服器硬體是否足夠支援當前的流量。 普通的p4伺服器一般最多能支援每天10萬獨立ip,如果訪問量比這個還要大,那麼必須首先配置一台更高效能的專用伺服器才能解決問題,否則怎麼優化都不可能徹底解決效能問題。
第二,優化資料庫訪問。 伺服器的負載過大,乙個重要的原因是cpu負荷過大,降低伺服器cpu的負荷,才能夠有效打破瓶頸。而使用靜態頁面可以使得cpu的負荷最小化。前台實現完全的靜態化 當然最好,可以完全不用訪問資料庫,不過對於頻繁更新的**,靜態化往往不能滿足某些功能。 快取技術 就是另乙個解決方案,就是將動態資料儲存到快取檔案中,動態網頁直接呼叫這些檔案,而不必再訪問資料庫,wordpress和z-blog都大量使用這種快取技術 。我自己也寫過乙個z-blog的計數器外掛程式,也是基於這樣的原理。 如果確實無法避免對資料庫的訪問,那麼可以嘗試優化資料庫的查詢sql.避免使用select *from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大量sql查詢。
第三,禁止外部的盜鏈。 外部**的或者檔案盜鏈往往會帶來大量的負載壓力,因此應該嚴格限制外部對於自身的或者檔案盜鏈,好在目前可以簡單地通過refer來控制盜鏈,apache自己就可以通過配置來禁止盜鏈,iis也有一些第三方的isapi可以實現同樣的功能。當然,偽造refer也可以通過**來實現盜 鏈,不過目前蓄意偽造refer盜鏈的還不多,可以先不去考慮,或者使用非技術手段來解決,比如在上增加水印。
第六,使用流量分析統計軟體。 在**上安裝乙個流量分析統計軟體,可以即時知道哪些地方耗費了大量流量,哪些頁面需要再進行優化,因此,解決流量問題還需要進行精確的統計分析 才可以。我推薦使用的流量分析統計軟體是googleanalytics(google分析)。我使用過程中感覺其效果非常不錯,稍後我將詳細介紹一下 googleanalytics的一些使用常識和技巧。 1.分表 2.讀寫分離 3.前端優化。nginx替換apache(前端做負載均衡) 個人認為主要還是分布式架構是否到位,mysql和快取的優化都是有限度的優化,而分布式架構做出來了,pv增長後,只需要堆機器就能擴容。
另附一些優化經驗,首先學會用explain語句分析select語句,優化索引、表結構,其次,合理運用memcache等快取,降低mysql的負載,最後,如果可能的話,盡量用facebook的hiphop-php把php編譯了,提高程式效率。
如何解決高併發和大流量
名詞解釋 併發 在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任意乙個時刻上只有乙個程式在處理機上執行。我們說的高併發是什麼?上面的定義明顯不是我們通常所言的併發,在網際網路時代,所講的併發 高併發,通常是指併發訪問。也就是在某個時間...
如何解決高併發和大流量
名詞解釋 併發 在作業系統中,是指乙個時間段中有幾個程式都處於已啟動執行到執行完畢之間,且這幾個程式都是在同乙個處理機上執行,但任意乙個時刻上只有乙個程式在處理機上執行。我們說的高併發是什麼?上面的定義明顯不是我們通常所言的併發,在網際網路時代,所講的併發 高併發,通常是指併發訪問。也就是在某個時間...
如何解決高併發
如何解決高併發 快取靜態頁面 伺服器分離 優化資料庫結構,多做索引 資料庫集群和庫表雜湊 不要頻繁得使用new物件,能使用單例模式就使用,對於utility型別的類通過靜態方法來訪問。使用執行緒安全的集合物件vector hashtable 使用執行緒池 盡量使用快取,包括使用者快取,資訊快取等,多...