運用コストと品質を考慮した負荷分散機構の検討
19G470 萬木 大志 （最所研究室）
サービス品質や運用コストを考慮した負荷分散機構の提案，及び品質とコストの関係について調べ，調査結果から区分した品質レベル毎の閾値で負荷実験と検証について述べる．

1

はじめに

当研究室では，負荷量に応じてキャッシュサーバの台数を動的に増減することで，応答性を維持しつつ運用コストを最適化する分散 Web システムを開発している．これまでの研究で，Web サーバ間の負荷の不均一性を改善する可変式TTL を用いた重み付けラウンドロビン機能を持つ DNS を用いた負荷分散機構が開発された [1]．この機構により，応答性や処理性能などサービス品質を向上させることができた．しかし，コストやサービス品質に直接関係するサーバ台数の調整は一定であり，コストや品質に関して考慮されていなかった．サービス運用者は，品質を基準にサーバの性能や台数を考え，運用コストがどの程度かかるのか考慮する必要がある．そのため，本研究では，コストと品質のバランスを考慮する負荷分散機構を検討し，開発することを目指す．本論文では，品質とコストを考慮した負荷分散機構の提案，及び提案機構で使用する Web サーバに対する負荷テストの結果からクライアントに提供する品質レベルを 3 パターン定義し，3 パターンそれぞれの閾値で行った負荷分散実験と評価について述べる．

2

管理機能で重要なスケールアウト・インの閾値 T hhigh とT hlow が定数である．すなわち，負荷量によるコストや品質の調整が一定である．本機構は，クラウド上で運用を想定しており，クラウドサービスの特性である従量課金制を考慮しなければならない．運用者の方針やサービスの種類によってコストや品質の調整は変わってくる．本機構は，閾
値 T hhigh と T hlow を変えることでコストや品質を調整することができる．本研究では，運用者の方針に基づき時間帯によって閾値を動的に変える運用コストを考慮した負荷分散機構を提案する．

DNS を用いた負荷分散機構

図 1 に DNS を用いた負荷分散機構を示す．本機構は，管理サーバ，権威 DNS サーバ，オリジンサーバとキャッシュサーバで構成されている．管理サーバは，サーバ群の負荷監視とキャッシュサーバの起動・停止，各サーバの負荷によって重みと TTL の決定，権威 DNS サーバへ IP アドレスリ
ストや重み，TTL，回答 IP アドレス数の更新を行う機能を持つ．負荷量として稼働中の全てのサーバの稼働率 (現在のリクエスト数/最大同時処理数) の平均を使用する．負荷量が閾値 T hhigh を上回った場合にはスケールアウトする．
負荷量が閾値 T hlow を下回った場合にはスケールインする．
また，負荷が低いサーバには重みと TTL を大きく，負荷が高いサーバには重みと TTL を小さく設定する．
本機構のリクエスト振り分けは権威 DNS サーバが行う．
これは，クライアントがサーバにアクセスするために権威DNS サーバに問い合わせを行うため，権威 DNS サーバが回答する IP アドレスによってリクエストを振り分けられるからだ．権威 DNS サーバは，管理サーバから送られてきたIP アドレスリストと重み，回答 IP アドレス数によって問い合わせに対する回答 IP アドレスを決める．IP アドレスは，IP アドレスに設定される重みの確率で選ばれる．したがって，重稼働中の全サーバの重みの合計値
みが大きいほど回答 IP アドレスに選ばれやすいということである．このリクエスト振り分け方式により，各サーバの負荷の不均一性が改善され，応答性や処理能力が向上した．
本機構においてコストに直接関係するキャッシュサーバ

図 1: DNS を用いた負荷分散機構

3

運用コストと品質を考慮した負荷分散機
構

図 2 に提案する負荷分散機構を示す．これまでの機構に閾値変更機能が追加されたものである．この機能は，一定の間隔で現在時刻を取得し，取得した現在時刻と時間帯毎の閾値が書き込まれた設定ファイルの時間帯を比較し，現在設定されている閾値から変更する必要があるならば，設定ファイルからその時間帯の閾値に更新する．この機能により，時間帯毎に運用者が想定するコストと品質に調整できると考えている．本機構を用いるためには，予め時間帯毎の閾値を決める必要がある．まず，閾値を決めるためにWeb サーバに対する負荷テストを行い，負荷量によって応答時間やリクエスト処理数がどのように変化するのか調べる．このテストの結果からクライアントに提供する品質レベルを 3 パターン定義して，パターン毎の閾値を決める．最後に，時間帯毎に定義した 3 パターンのうちどの品質レベルを提供するのか決める．

表 2: 応答時間関連の実験結果
平均応答時間分散

最大応答時間0.5s 以上の割合

品質 (ORver)1

0.150

0.09

32.46

0.108

品質 (ORver)2

0.080

0.02

32.55

0.021

品質 (ORver)3

0.080

0.02

3.990.042

バランス (ORver)1

0.355

3.28

44.28

0.086

バランス (ORver)2

0.104

0.02

4.080.012

バランス (ORver)3

0.260

0.21

16.51

0.146

コスト 1

0.316

1.10

65.68

0.080

コスト 2

0.319

1.02

31.4

0.076

コスト 30.597

2.48

31.9

0.199

表 3: 処理数関連の実験結果
図 2: 運用コストと品質を考慮した負荷分散機構

4

品質レベルで区分した 3 パターンの負荷実験

負荷テストによって 3 パターンの品質レベルとそれぞれの閾値を定義するが，定義した閾値で負荷分散を行ったとき，実際に想定している品質やコストになるか負荷実験で検証する．まず，単体 Web サーバに対してクライアントからのリクエストを段階的に増加させる負荷テストを行い，結果から品質レベルを 3 パターン定義する．応答時間は短いが，サーバ 1 台に許容する負荷量は最も少ない品質レベルを品質型とする．逆に，応答時間は最も長いが，サーバ 1 台に許容する負荷量は最も多い品質レベルをコスト型とする．
応答時間，許容量ともに 2 つのパターンの中間をバランス型とする．負荷テストの結果から，品質型は平均 0.05 秒でサービスを提供する品質レベル．バランス型もほぼ同じ平均 0.05 秒だが安定性が品質型よりも劣る．コスト型は平均0.1 秒の品質レベルとする．また，3 パターンそれぞれの閾値を表 1 に示す．

表 1: それぞれのパターンの閾値
品質型 [稼働率 ∨ スループット]

バランス型 [稼働率 ∨ スループット]

コスト型

T hhigh0.2 ∨ 2000.2 ∨ 2500.35T hlow

0.15 ∨ 100

0.15 ∨ 150

0.2

サービス品質に基づいて定義した 3 パターンそれぞれの閾値を用いて負荷実験を行った．実験環境は，Azure 上に仮想マシンとしてクライアント 10 台，権威 DNS サーバ 1台，DNS キャッシュサーバ 10 台，管理サーバ 1 台，オリジンサーバ及びキャッシュサーバ 10 台を構築した．クライア
ントからのリクエストを段階的に増加させ，オリジンサーバ及びキャッシュサーバへ負荷をかけていく実験を行った．
実験結果を表 2・3 に示す．平均応答時間は，定義通りに品質型が最も短く，コスト型が最も長い結果となった．また，0.5 秒以上の割合も，定義通り品質型が最も低く，コスト型が最も高い結果となった．しかし，1 コストあたりの処理数を見ると，コスト型が全体的に最も効率が高いが，品質型とバランス型にはあまり差が見られなかった．以上のことから，品質の面では閾値を変えることで調整できる有効性が確認できたが，コスト面では一定の有効性が確認できたが，安定性に欠けている．

51 台あたりの平均処理数

最大処理数

総処理数

1 コストあたりの処理数

品質 (ORver)1

114.14987.30666492132.82

品質 (ORver)2

103.81970.35562612105.91

品質 (ORver)3

107.58998.6647670284.99

バランス (ORver)1

115.04978.4147775341.90

バランス (ORver)2

134.84983.91644598178.71

バランス (ORver)3

121.12988.08517605111.34

コスト 1

107.47936.98552164141.11

コスト 2137.85948.57560894164.97

コスト 3

88.21

955.65491444128.01

まとめ

運用者の方針に基づき時間帯によって閾値を動的に変える運用コストを考慮した負荷分散機構を提案した．また，単体サーバに対する負荷テストの結果から定義した 3 パター
ンそれぞれの閾値で負荷分散を行ったとき，定義通りの品質やコストになるか負荷実験を行った．実験結果から，閾値を変えることで品質とコストの調整に一定の有効性が確認できた．今後の課題としては，提案した機構では，予め設定した通りに閾値を変えるが，負荷分散中にも柔軟に閾値を調整する機構の検討も必要だと考えられる．

参考文献[1] K.Morigaki and K.Saisho， “Improvement of Load
Balancing Method in a Distributed Web System Using DNS”, Proc. the Third International Conference
on Electronics and Software Science (ICESS2017),
pp.69-73, 2017