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