首先,確認(rèn)服務(wù)器硬件是否足以支持當(dāng)前流量。平均P4服務(wù)器每天最多支持10萬個(gè)獨(dú)立IP。如果訪問卷大于此值,則必須首先配置具有更高性能的專用服務(wù)器才能解決此問題。否則,通過優(yōu)化是不可能完全解決性能問題的。
讀寫分離:頻繁的數(shù)據(jù)庫(kù)請(qǐng)求會(huì)導(dǎo)致?lián)砣?,增加?shù)據(jù)讀寫時(shí)間。讀寫分離可以使不同的數(shù)據(jù)庫(kù)共享不同的任務(wù),減少每個(gè)數(shù)據(jù)庫(kù)的連接數(shù),加快數(shù)據(jù)讀取的速度;
合理使用緩存技術(shù)可以減少數(shù)據(jù)庫(kù)的頻繁操作;
對(duì)數(shù)據(jù)庫(kù)訪問前臺(tái)進(jìn)行優(yōu)化,實(shí)現(xiàn)完全靜態(tài)的訪問,根本無法訪問數(shù)據(jù)庫(kù),但對(duì)于頻繁更新的網(wǎng)站,靜態(tài)往往不能滿足某些功能。緩存技術(shù)是另一種解決方案,即將動(dòng)態(tài)數(shù)據(jù)存儲(chǔ)到緩存文件中。動(dòng)態(tài)網(wǎng)頁直接調(diào)用這些文件,而不是訪問數(shù)據(jù)庫(kù)。WordPress和Z-blog廣泛使用這種緩存技術(shù)。如果無法避免對(duì)數(shù)據(jù)庫(kù)的訪問,可以嘗試對(duì)數(shù)據(jù)庫(kù)的查詢SQL進(jìn)行優(yōu)化,每次查詢只返回所需的結(jié)果,避免在短時(shí)間內(nèi)過大。試著做到“物盡其用”。遵循以小表為主、表為輔的原則,先對(duì)查詢條件進(jìn)行索引,再小后大,以提高查詢效率和SQL查詢量。
外部網(wǎng)站的圖片或文件盜版往往會(huì)帶來很大的負(fù)載壓力。因此,我們應(yīng)該嚴(yán)格限制外部竊取圖像或文件的行為。幸運(yùn)的是,我們可以簡(jiǎn)單地通過引用來控制偷竊鏈。Apache可以通過配置禁止竊取鏈。IIS還有一些第三方ISAPI來實(shí)現(xiàn)相同的功能。當(dāng)然,偽造引用者也可以通過代碼實(shí)現(xiàn)。然而,目前故意偽造推薦人的情況并不多,可以通過在圖像上添加水印等非技術(shù)手段加以忽略或解決。
大文件下載會(huì)占用大量流量,而對(duì)于非SCSI硬盤,大量的文件下載會(huì)消耗CPU,使網(wǎng)站響應(yīng)能力下降。因此,盡量不要提供超過2m的大文件進(jìn)行下載。如有必要,建議將大文件放在另一臺(tái)服務(wù)器上。
將文件放在不同的主機(jī)上,并提供不同的圖像供用戶下載。例如,如果您認(rèn)為RSS文件占用了大量的流量,那么可以使用FeedBurner或feed等服務(wù)將RSS輸出放到其他主機(jī)上。這樣,其他人訪問的流量壓力大多集中在FeedBurner主機(jī)上,RSS不會(huì)占用太多資源
在網(wǎng)站上安裝一個(gè)流量分析和統(tǒng)計(jì)軟件,你可以立即知道哪些地方消耗了大量的流量,哪些頁面需要優(yōu)化。因此,需要準(zhǔn)確的統(tǒng)計(jì)分析來解決流量問題。