軟負載方案整理配置手冊

2022-02-12 19:24:00 字數 2136 閱讀 2238

因為需要,嘗試了預研下面常用幾個軟負載,大概整理了如下:

1.lvs效能最強

1. lvs :linux virtual server(vs),請求對於realserver(rs)都是透明的(不修改src),使用核心**,相比應用實現效能要高很多。

分為3種模式:

l  dr:效能最好

在vs 和rs 使用相同的vip,rs上抑制arp。請求通過vs 分發,應答繞過直接回覆。

優點:效能最高、流量小

缺點:機器都需要在同乙個vlan下,real server 之間無法通過vip通訊。需要抑制vip arp 有風險。

l  ip tunnel 效能適中

使用ipip封包,解決跨vlan問題,相比dr 就多了一層ip封裝,也是只處理請求。

優點:跨vlan

缺點:雖然應用最為廣泛,但windows 不支援ipip。

l  nat

與前兩種相比,不需要繫結vip,但也要修改路由,realserver 所有流量都需要經過,需要處理很多無用流量,一般實用性很差。

優點:不需要要繫結vip、跨vlan

支援rs 通過vip訪問rs本身,需要對rs做抑制路由操作,所有流量直接發給閘道器。

缺點:對於請求為snat,應答為dnat。為實現dnat,需要將rs 的預設閘道器指向vs

vs 被當成閘道器處理,realserver所有的流量都將發給vs,vs的頻寬壓力會很大。

配置工具:如果使用readhat版本,可以使用piranha提供的web ui工具配置,配置為需要手動同步一下主機板配置。

如果需要部署多個例項,而且經常改動,piranha 將提供很友好的配置環境。

2. haproxy 效能高,處理高併發、高連線

優點:

l  效能高,20w連線下,處理10w/s請求

(單程序處理效能1w/s樣子,為更好利用多核,多程序模式提公升空間很少,需要開啟多個例項,這樣一來前端必須上lvs負載多個例項埠)

l  7層、4層都行

l  不限於vlan ,只要網路策略通即可

l  可配性高

l  監控完善

注意點:

l src ip被修改,業務中publicip應該從 x-forward-for中獲取(haproxy也支援透明**,就像lvs的nat模式,存在問題)

l 流量double,千m網絡卡最多也只能支援500m流量

連線數超過65535時,需要考慮繫結多個ip

tcp **效能要比nginx要好。

haproxy 是預設單執行緒、也是最高效方式;也可以支援多執行緒(程序),但監控會隨機請求到的業務、部分功能無法正常使用。

3. nginx 專注於7層高併發,但不善於處理1w+連線數

要支援4層需要另外的patch,而且高連線數時效能無法和haproxy相比。

預設1個master+ 多個(核心)worker,可充分利用多核資源。

master和worker之間通過程序通訊實現,有點像iis5,相比ii6 效能要差些。

**不管haproxy還是nginx 都存在乙個問題,就是只有乙個執行緒在做receive,也就是無法均衡軟中斷。

對於主要的四層負載,使用者態執行時間很短,效能瓶頸在於主要軟中斷的處理、多個work其實也無濟於事;

當然也可以使用redis那樣,開啟多例項方式。

5. windows server 內建nbl 負載均衡功能

原理和lvs的dr相似,但是相比更加暴力,請求使用廣播方式,同乙個交換機下rs都將受到請求,rs通過一致性演算法

確認自己改處理請求還是丟棄請求。

本身效能沒有參考資料,配置繁瑣,再者廣播對交換機、rs都帶來不少額外壓力。相比使用lvs dr更方便。

指令碼工具

Nginx負載均衡的4種方案配置例項

1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置的例子如下 2 最少連線 web請求會被 到連線數最少的伺服器上。配置的例子如下 上面的例子只是在upstream節新增了least conn配置。其它的配置同輪詢配置。3 i...

Nginx負載均衡的4種方案配置例項

投稿 junjie 字型 增加 這篇文章主要介紹了nginx負載均衡的4種方案配置例項,本文講解了輪詢 最少連線 ip位址雜湊 基於權重的負載均衡等內容,需要的朋友可以參考下 1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置...

Nginx負載均衡的4種方案配置例項

1 輪詢 輪詢即round robin,根據nginx配置檔案中的順序,依次把客戶端的web請求分發到不同的後端伺服器。配置的例子如下 2 最少連線 web請求會被 到連線數最少的伺服器上。配置的例子如下 上面的例子只是在upstream節新增了least conn配置。其它的配置同輪詢配置。3 i...