高併發web伺服器處理
一.html靜態化
效率最高、消耗最小的就是純靜態化的html頁面,所以我們盡可能使我們的**上的頁面採用靜態頁面來實現,如使用資訊發布系統cms
二.伺服器分離
對於web伺服器來說,不管是apache、iis還是其他容器,是最消耗資源的,於是我們有必要將與頁面進行分離,
在處理靜態頁面或者、js等訪問方面,可以考慮使用lighttpd[注意盡量使用linux或unix系統
]代替apache或iis,它提供了更輕量級和更高效的處理能力。
當然也可以考慮使用cdn內容分發技術來優化,注意使用版本號來控制,使其達到即時更新.
三. 資料庫優化
a.硬體優化
資料庫和應用程式分離,合理使用raid,及增加相應記憶體和cpu
b. 查詢優化
1.增加合理索引,適當使用引起鎖的操作
2.盡量使用sarg搜尋引數標準,有效使用索引。[部分非sarg語句無法使用索引]
3.適度使用游標,盡量考慮集合式操作。[鎖]
4.謹慎使用事務,事務盡量不要使用過多的查詢。[鎖]
5.盡量使用儲存過程,盡量不要使用動態執行sql語句(重用執行計畫及預編譯)
c. 從應用程式的角度來考慮改善系統架構,
1.不同的模組對應不同的表,如新聞中如資料量大的話,每個分類使用乙個表。
2.按時間對錶進行劃分,將表放在不同的資料庫伺服器,提取時從每台伺服器提取,然後合併。
3.按使用者id對使用者資料進行劃分,針對不同使用者id呼叫不同資料庫的資料
4. 讀寫資料庫分離,如一台資料庫主要負責寫[不加索引],另外一台資料庫主要負責讀[新增索引]
四、快取
a.asp.net使用者控制項快取 outputcacheb.對共享資料使用cache(1:檔案,2:資料庫[sql2005] 3:時間限制)
c.對多台web應用伺服器可考慮使用分布式快取,如:memcached等
五、負載均衡終極優化手段
a. http重定向實現負載均衡,
b.dns負載均衡
原理:利用網域名稱到ip位址的對映可以是一對多的,利用a記錄的輪詢來隨機挑選乙個伺服器來訪問。
缺點:當某台伺服器出現故障,可能會導致部分使用者無法訪問,因為dns更新不能及時,並且不能很好對伺服器工作量進行均衡分配。
c.反向**負載均衡
使用一台專門的**伺服器來分配任務,由其決定使後端的哪台伺服器,可以均衡的分配工作量,真正達到均衡。
如:nginx**伺服器
d.ip負載均衡
利用nat伺服器實現互載均衡
高效能網頁開發規則
1 原則一如果能使頁面html顯示跟後台處理同時進行,這是乙個比較好的方式 比如說將頁面上容易顯示的部分優先反饋給瀏覽器,然後再接著繼續處理下面的步驟這樣比較 象php中在html的後可以使用flush 方法,提前將部分資訊返回給客戶端,通常有css js等資訊 然後可以將js css打包 壓縮 儘...
webServer 介面開發
開發乙個webserver需要伺服器短和客戶端 一般而言客戶端負責請求,服務端負責響應,那麼怎麼開發乙個服務端呢,我們知道客戶端是通過伺服器的描述檔案生成或者手動編寫,這裡我推薦用myeclipse生成比較簡單,只要服務端寫好了客戶端只要根據描述檔案生成就很容易了。cxf 篇 首先需要乙個服務端 然...
開發高效能的WebService應用
一 webservice概述 1 效能 設計時就考慮效能 不要在事後再加入效能 在專案開發的整個過程中反覆測試 兩種量化web效能的方法 1 機器吞吐率 requests sec 2 響應時間 time tofirst last bytes 2 物件導向 應用於同一平台和執行環境 共享型別而不是sc...