[Ultramonkey-l7-develop 29] Re: Weighted RoundRobin 機能追加パッチ

Back to archive index

Shinya TAKEBAYASHI takeb****@nttco*****
2007年 6月 14日 (木) 17:15:54 JST


黒澤 様


  竹林です.
  お疲れ様です.
  返信が遅れ,すみません.
  
  アドバイスありがとうございます.
  gcd を使った方式で,実装してみます.

-----------------------------------------------------------
NTT コムウェア株式会社
プロジェクト管理統括部 OSS 推進部門 OSS 適用担当

竹林 信哉(たけばやし しんや)

〒261-0023 千葉市美浜区中瀬 1-6 NTT 幕張ビル 21F En
TEL: 043-211-2452 (+383-8054)
E-mail: takeb****@nttco*****
GPG ID: 70298B55
GPG FP: 98C3 25CF 8201 4881 9328 5C91 CBFA DCFC 7029 8B55
-----------------------------------------------------------



*** KUROSAWA Takahiro wrote in message <20070****@mail*****
>
*** Subject: [Ultramonkey-l7-develop 28] Re: Weighted RoundRobin 機能
追加パッチ 
*** Date:    2007/06/12 17:46:44
> 黒澤です.
> 
> On Sun, 03 Jun 2007 02:08:12 +0900
> Shinya TAKEBAYASHI <makot****@kanon*****> wrote:
> 
> > > 1:1:2や5:5:10に設定された場合の動作は、リアルサーバの
> > > 1台目->2台目->3台目->3台目->1台目->2台目・・・という
> > > ような感じでバランシングされるものと思います。
> > 
> >   そうですね,そうでないとラウンドロビンになりませんよね・・・.
> >   
> >     http://primeserver.fujitsu.com/ipcom/catalog/data/1/3.html
> >   
> > の「静的な重み付きラウンドロビン」を参考に,アルゴリズムを
> > 再考してみます.
> 
> LVS の WRR アルゴリズム (net/ipv4/ipvs/ip_vs_wrr.c) からひっぱっ
> てくれば実装できそうですが,ソースをそのまま使ってしまうとコピー
> ライトとライセンスの問題が出てきますね.
> 
> LVS でやっているのは,だいたいこんな感じみたいです:
> 
> (1) 各リアルサーバに指定された weight の最大公約数 (gcd と表記) と
>     weight の最大値 (max_weight と表記) を調べておく.
>     最大公約数の計算にはユークリッドの互除法というものを使っているよ
うです.
>     計算方法自体は簡単です.
> 
> (2) 整数 x を用意し,それに max_weight を代入.
> 
> (3) リアルサーバのスケジュール時に,リアルサーバの weight が x 以上
の
>     ものだけを round-robin で一周だけスケジュールする.
> 
> (4) 一周スケジュールしたら x から gcd を引く (x -= gcd).
>     x > 0 なら (3) へ.x <= 0 なら (2) へ.
> 
> 
> 例えば,リアルサーバが rs_a, rs_b, rs_c, rs_d の 4 台構成で,
> weight がそれぞれ 24, 12, 18, 30 の場合,gcd = 6, max_weight = 30
> となるので,それぞれの周回でスケジュールされるのは,
> 
> 1 周目: x = 30 /                   rs_d
> 2 周目: x = 24 / rs_a,             rs_d
> 3 周目: x = 18 / rs_a,       rs_c, rs_d
> 4 周目: x = 12 / rs_a, rs_b, rs_c, rs_d
> 5 周目: x =  6 / rs_a, rs_b, rs_c, rs_d
> 
> 6 周目: x = 30 / (一周目と同じ)
>  ...
> 
> となります.5 周スケジュールして,各リアルサーバがスケジュールされる
回数は,
> rs_a : rs_b : rs_c : rs_d = 4 : 2 : 3 : 5 = 24 : 12 : 18 : 30 となり
ます.
> 
> _______________________________________________
> Ultramonkey-l7-develop mailing list
> Ultra****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/ultramonkey-l7-develop
> 




Ultramonkey-l7-develop メーリングリストの案内
Back to archive index