如何解決網站大規模併發訪問帶來的性能下降問題

來源:互聯網
上載者:User
關鍵字 網站訪問優化

摘要: 再過半個月就2013年的春運就要來臨,每年外地打工的人們都會因為訂票而煩惱。 特別是網上訂票,對12306提供給的網上訂票系統會有各種看法,從去年的年春節,鐵道部推出12306網站,

再過半個月就2013年的春運就要來臨,每年外地打工的人們都會因為訂票而煩惱。 特別是網上訂票,對12306提供給的網上訂票系統會有各種看法,從去年的年春節,鐵道部推出12306網站,實行網路實名購票,每一個返鄉人原以為能買著一張回家的火車票,但結果還是大失所望。 在去年,7天內,12306網站訪問使用者已占全球互聯網使用者的0.902%,每天點擊量高達10億人次,系統一度支撐不住如此龐大的訪問量而陷入崩潰。 12306網站的點擊量屬於千萬PV級別,如果要滿足實際的要求,那麼需要能夠應對網站大規模的併發訪問,這一問題,很多大型網站的站長也可能會面臨。 要解決網站大規模併發訪問帶來的性能下降問題,有很多種常用的方法,我們可以從以下幾個層面去考慮和優化?

一、伺服器配置優化

我們需要根據應用伺服器的性能和併發訪問量的大小來規劃應用伺服器的數量。 有一個使用原則是:單台應用伺服器的性能不一定要求最好,但是數量一定要足夠,最好能有一定的冗余來保障伺服器故障。 特別是,在高併發訪問峰期間,適當增加某些關鍵應用的伺服器數量。 比如在某些高峰查詢業務上,可以使用多台伺服器,以滿足使用者每小時上百萬次的點擊量。

二、使用負載均衡技術

負載均衡技術是解決集中併發訪問的核心技術,也是一種較為有效的解決網站大規模併發訪問的方法。 實現負載均衡技術的主要設備是負載等化器伺服器。 例如,我們把網站部署到在兩台不同的伺服器之上(前提是要保證這2台或者多台伺服器都可以正常運行網站程式),這幾台伺服器之間通過安裝特定的軟體實現負載均衡。 那麼,某個時刻,當網站面臨大規模訪問時,使用者的請求會通過負載均衡程式,根據不同伺服器的繁忙和資源情況,自動分配到處理性能最優的伺服器上,從而將大規模使用者產生的高併發訪問均衡地分流到各個伺服器上。 這樣就能大大減輕單台伺服器處理高併發請求,確保整個網站系統面臨高負載時的可靠性。

三、資料庫結構設計

這部分是程式層的問題,通常是由軟體工程師進行負責,對SQL語句進行優化。 我們可以採取的措施包括:對經常查詢的資料庫欄位做索引、對資料庫表進行分區操作(如對海量資料進行分區操作十分必要,例如針對按年份存取的資料,我們可以按年進行分區)、對資料庫查詢語句-SQL(減少冗余的資料庫操作, 提高查詢效率)進行優化等。

四、中介軟體的優化

所謂的中介軟體,聽起來會有點像很深的技術,其實就在我們身邊,各位站長朋友經常在網站部署的時候用到的Apache、IIS、Tomcat、WebLogic都是中介軟體。 中介軟體主要位於用戶端/伺服器的作業系統之上,負責電腦的資源管理和網路通訊。 舉個簡單的例子,我們在部署JAVA專案的時候,通常都是用Tomcat中介軟體,那麼Tomcat在預設情況下是不優化的,當在高併發的情況下,非常容易當機。 關於Tomcat的優化給出以下幾個建議(本人在實際專案開發過程中覺得較為重要的幾點):①執行緒池優化;②啟動佔用記憶體優化;③日誌輸出優化;④HTTP壓縮優化;⑤設定檔優化。

上面舉例的Tomcat中介軟體(也就是WEB伺服器)只是一個例子,不同的網站採用不同的架構,那麼對相應的中介軟體的優化也會有不同的方法,比如微軟的IIS有相應的配置參數,所以具體的優化方法可以根據專案的需要, 查閱中介軟體的官方文檔說明進行參數設置,這樣才能實現中介軟體的最優設置。

五、資料緩存技術的使用

現在大多數大型網站都有使用緩存技術,把使用者經常使用到的資料通過緩存(Cache)技術進行管理,從而減輕伺服器重新請求的壓力,提高網站的存取速度。 緩存技術有很多,這裡我個人根據實際的專案經驗,可以將其分成2種,即資料緩存和頁面緩存。

①所謂的是資料緩存,指的是資料庫的資料不是直接傳輸,而是將資料調用到記憶體,然後從記憶體中讀取,從而可以大大提高讀取速度。 資料緩存技術有很多的方案,這裡由於開源、高性能等特點,建議使用Memcache來設置資料緩存技術來加速動態web應用程式,減輕資料庫負載。

②頁面緩存一定程度上是針對公共頁面,靜態化也是頁面緩存的一種,將使用者經常訪問的頁面在伺服器的相應目錄下生成靜態頁面,當使用者再次訪問時,不需要對伺服器進行動態請求,而只需要對緩存下來的html頁面直接讀取, 這樣訪問的效率就可以得到有效的提高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.