一個每日1000W的PV論壇怎麼優化性能? 從分頁、數據庫、流量等多方面入手

這是一個php程序員面試過程當中常常遇到的問題,就目前工做環境中的狀況來看,這種千萬級別的訪問量的狀況還沒遇到,在百度中找到這樣一篇文章,可能對這個問題有幫助。
 
用一臺1U服務器讓phpwind承受1000萬PV(實際營運)
臭現下,偶的網站已經通過1000萬PV的考驗了(百度統計結果)
 
1000萬pv的實際論壇是很恐怖的,由於這樣的論壇日發帖通常大於10萬,會員數據超過200萬,帖子總數超千萬。
 
一、 解決流量問題,1000w pv,我作過檢測,每秒流量高達300M以上,我採用了多網卡來解決。用了4個網卡口子,每口100M,就能夠承受400M流量了。1U服務器通常只有2 個網口,能夠增長USB網卡,目前有幾種芯片的USB網卡在linux下是自動識別的。1000M的端口機房是很貴的,10萬以上每一年。因此採用多網卡負 荷分擔是經濟實用的。
 
二、解決mysql瓶頸問題,首先要學會mysql的配置優化my.cnf的優化,而後要對程序進行優化,目前的免 費bbs程序,在負載上都是很垃圾的(pw和dz在程序上不多考慮大負載問題,VBB沒有仔細關注過,可能vbb要好不少),須要實際中調試慢查詢,優化 sql語句,注意用子查詢進行分頁,不要簡單的使用limite start,num ,某些頻繁查詢而又不是常常變化的sql儘可能使用緩存技術,對訪問頻繁的頁面,例如首頁,必須對sql以及php的運算都進行優化,作到像訪問html一 樣訪問bbs首頁。
 
三、使用memcache對mysql數據進行緩存,雖然有數據延遲,但能夠很大的下降mysql的負荷。
 
四、使用nginx + eac 作web ,eac共享內存設置爲60M便可,不能太大,nginx開10個線程。
 
五、使用lighttp的spawn-cgi + php-cgi 開啓至少256個線程。不要使用php-fpm,這玩意兒在千萬pv的大壓力時,會出問題,頻繁假死
 
六、解決搜索問題,選擇使用中文全文索引
 
硬件配置:2個4核Xeon5405 + 12G RAM + 4x300G SAS raid0
相關文章
相關標籤/搜索