怎樣處理服務器負載量過大

一,確認服務器硬件是否足夠支持當前的流量。

二,優化數據庫訪問。
服務器的負載過大,一個重要的原因是CPU負荷過大,降低服務器CPU的負荷,才能夠有效打破瓶頸。而使用靜態頁面可以使得CPU的負荷最小化。前臺實現完全的靜態化當然最好,可以完全不用訪問數據庫,不過對於頻繁更新的網站,靜態化往往不能滿足某些功能。
緩存技術就是另一個解決方案,就是將動態數據存儲到緩存文件中,動態網頁直接調用這些文件,而不必再訪問數據庫,WordPress和Z-Blog都大量使用這種緩存技術。
如果確實無法避免對數據庫的訪問,那麼可以嘗試優化數據庫的查詢SQL.避免使用Select *from這樣的語句,每次查詢只返回自己需要的結果,避免短時間內的大量SQL查詢。

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

禁止外部的盜鏈:是指沒有登錄你的網站或程序就直接輸入你網站內部IP地址強行訪問了,如直接訪問某一個Action拿到他想要的數據。放置外部盜鏈,你可以讓程序過濾一下,必須每個人都從登錄頁開始訪問,並且最好能記錄每一個訪問者的IP地址,不合法的進行過濾。

使用不同主機分流主要流量:使用apach就可以了,前端放置一個apach進行分流,後端放置N多服務器,當apach監控到哪一個服務器相對不忙時,可以把進來的流量分配給那臺服務器進行處理!


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





發佈了155 篇原創文章 · 獲贊 40 · 訪問量 35萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章