JP3897843B2 - Network load balancing method in data transfer of client server system - Google Patents

Network load balancing method in data transfer of client server system Download PDF

Info

Publication number
JP3897843B2
JP3897843B2 JP28263696A JP28263696A JP3897843B2 JP 3897843 B2 JP3897843 B2 JP 3897843B2 JP 28263696 A JP28263696 A JP 28263696A JP 28263696 A JP28263696 A JP 28263696A JP 3897843 B2 JP3897843 B2 JP 3897843B2
Authority
JP
Japan
Prior art keywords
client
data
time
data transfer
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP28263696A
Other languages
Japanese (ja)
Other versions
JPH10124412A (en
Inventor
府 新 国
子 弘 彰 家
田 好 伸 西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nomura Research Institute Ltd
Original Assignee
Nomura Research Institute Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nomura Research Institute Ltd filed Critical Nomura Research Institute Ltd
Priority to JP28263696A priority Critical patent/JP3897843B2/en
Publication of JPH10124412A publication Critical patent/JPH10124412A/en
Application granted granted Critical
Publication of JP3897843B2 publication Critical patent/JP3897843B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Computer And Data Communications (AREA)
  • Communication Control (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、クライアントサーバーシステムにおいて、同時に多数のクライアントコンピュータがサーバーにアクセスした場合に、サーバーとネットワークに集中する負荷を分散させることにより、クライアントサーバーシステムの健全性と効率を維持する方法に関する。
【0002】
【従来の技術】
最近は、従前のホストコンピュータと端末からなる情報処理システムに代えて、クライアントサーバーシステムが広く用いられるようになっている。
【0003】
クライアントサーバーシステムは、データやソフトウェアを一元的に管理し、提供する役割の「サーバー」と、このサーバーに要求を出してデータやソフトウェアを利用する「クライアントコンピュータ」とからなる。
【0004】
これらサーバーとクライアントコンピュータは、各装置でも独自に情報処理を行うが、他の装置と処理結果や処理データを交換して、全体として統一された情報処理を行うように構成されている。
【0005】
このようにクライアントサーバーシステムは、システム内のサーバーとクライアントコンピュータが互いにデータやソフトウェアを交換しながら全体として統一した情報処理を行うので、当然システム内の各クライアントコンピュータは同一のソフトウェア(同一のソフトウェアにおいては同一のバージョンであることが必要となる)によって情報処理をしなければならない。
【0006】
このため、一般に現在のクライアントサーバーシステムでは、定期的に(たとえば週に1,2回程度に)全クライアントコンピュータが一斉にサーバーにアクセスして、その時のサーバー内に格納されているソフトウェアやデータのファイルによって自らのファイルを更新している。
【0007】
図6は、上記クライアントコンピュータがサーバーにアクセスしてソフトウェアやデータの配布を受けるためのシステム構成とその方法とを示している。なお、図6において、命令や情報の流れは矢印で示す。
【0008】
図6に示すように、クライアントサーバーシステム1は、サーバー2と、複数のクライアントコンピュータ3がLAN等のネットワーク4によって接続されている。
【0009】
上記ファイルの更新時期になると、数多くのクライアントコンピュータ3が一斉にサーバー2にアクセスして、ファイルをダウンロードしようとする。従来のダウンロードでは、クライアントコンピュータ3がサーバー2にアクセスし、通信相手の確認等の接続手順が確立した後に、クライアントコンピュータ3からサーバー2へファイル転送等の命令が送られる。
【0010】
これらのクライアントコンピュータ3からの転送命令は、サーバー2のサーバーのCPU2aによって処理される。この場合、サーバーのCPU2aはI/ O装置2bを制御し、サーバーのI/ O装置2bの作用により、記憶装置2cから指定されたファイルを取り出してクライアントコンピュータ3に転送する。
【0011】
クライアントコンピュータ3では、CPU3aの制御を受けたI/O装置3bが、サーバー2から転送されたファイルをその記憶装置3cに格納し、古いファイルがある場合はそれを更新する。
【0012】
従来のクライアントサーバーシステム1は、サーバーのCPU2aの処理がオーバーフローしないように、流量制御プログラム5を備えている。これは、サーバーのCPU2aは、その処理能力に限界があり、それ以上のクライアントコンピュータ3からの命令が入力されると、処理不能になってシステム全体が機能を停止してしまうからである。このため、流量制御プログラム5は、所定台数のクライアントコンピュータ3の接続があると、それ以上の接続要求に対しては、要求があったクライアントコンピュータ3に対してアクセスを拒絶する。
【0013】
サーバー2が限界一杯の処理を行っている状態を図6に示す。図6においては、サーバー2が同時接続することができるクライアントコンピュータの数を仮に3台としている。この場合、クライアントコンピュータC1 〜C3 が交信状態になるが、他のクライアントコンピュータC4 〜Cn は、待機の状態(WAIT状態)になり、サーバー2へのアクセスを試み続ける。
【0014】
クライアントコンピュータC1 〜C3 のうちのいずれかがサーバー2との交信を終了すると、その直後にアクセスを試みたクライアントコンピュータC4 〜Cn のいずれかが接続される。
【0015】
【発明が解決しようとする課題】
しかしながら、上記従来のクライアントサーバーシステムとそのファイル配布の方法では、サーバーのCPUの処理能力の制限により、システム全体の能力を効率よく活かすことができなかった。
【0016】
つまり、従来のクライアントサーバーシステムでは、上述したように、サーバーのCPUがクライアントコンピュータからのアクセス要求とファイル転送命令等を集中的に処理するため、すぐにその処理能力の上限に達してしまうのである。
【0017】
このサーバーのCPUの処理能力の制限により、結局限られた台数のクライアントコンピュータへファイル転送をすることになっていた。一方、この間のクライアントコンピュータのCPUは、その処理能力のほんの一部のみを使用し、いわば遊んだ状態になっていた。
【0018】
また、WAIT状態にあるクライアントコンピュータが繰返しサーバーへのアクセスを試みるので、そのアクセス要求に対する返答(アクセスを拒否する返答)を送信するために、サーバー側のCPUとネットワークにさらに負荷がかかっていた。
【0019】
そこで、本発明は、上記従来技術が抱える課題を解決し、サーバーのCPUへの負荷の集中を解消し、クライアントサーバーシステム全体の処理能力により、サーバーから多数のクライアントコンピュータへ同時に多数のファイルを配布することができるクライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法を提供することにある。
【0020】
【課題を解決するための手段】
本願請求項1に係るクライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法は、
クライアントサーバーシステムの各クライアントコンピュータが有するネットワーク負荷制御プログラムによって直接サーバーのI/ O装置を制御してデータ転送を行い、各クライアントコンピュータ上のネットワーク負荷制御プログラムにおいて、データの読込み時間からネットワークの負荷を推定し、そのネットワーク負荷の推定結果に応じて1回に転送を受けるデータブロックサイズと、1回のデータ転送中の待ち時間とを制御するようにしたことを特徴とするものである。
【0021】
本願請求項2に係るクライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法は、上記請求項1に記載の方法において、
処理速度が異なるクライアントコンピュータを含むクライアントサーバーシステムにおいて、
所定の処理速度のクライアントコンピュータが、ネットワークの最大バンド幅を使用してデータ転送を受ける場合のデータ転送時間を基準とし、前記基準のデータ転送時間から各クライアントコンピュータのデータ転送時間を引いた時間が正の場合にその時間差を各データ転送動作の時間間隔とすることを特徴とするものである。
【0022】
本願請求項3に係る媒体は、
クライアントサーバーシステムの各クライアントコンピュータによって直接サーバーのI/ O装置を制御してデータ転送を行い、
各クライアントコンピュータにおいて、データの読込み時間からネットワークの負荷を推定し、そのネットワーク負荷の推定結果に応じて1回に転送を受けるデータブロックサイズと、1回のデータ転送中の待ち時間とを制御するようにしたプログラムを記録したものである。
【0023】
【発明の実施の形態】
次に本発明の実施の形態について以下に説明する。
本発明による「クライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法」は、クライアントコンピュータのCPUによる負荷の分担と、多数のクライアントコンピュータへ同時にするファイル配布と、ネットワークの効率よい転送レートにおけるファイル転送、の3つを実現する。このことを以下に説明する。
【0024】
図1は、本発明の方法を実現するクライアントサーバーシステムのシステム構成とその処理の状態を示している。
【0025】
図1において、クライアントサーバーシステム1は、サーバー2と、クライアントコンピュータ3と、サーバー2とクライアントコンピュータ3とを接続するLAN等のネットワーク4とからなる。
【0026】
このクライアントサーバーシステム1において、従来のクライアントサーバーシステム(図6参照)と異なるのは、サーバー2側に流量制御プログラムがなく、クライアントコンピュータ3が、ネットワーク負荷制御プログラム6を有し、このネットワーク負荷制御プログラム6の働きによってサーバーのI/ O装置2bを直接制御するようにしていることである。
【0027】
図1に示すように、このクライアントサーバーシステム1では、多数のクライアントコンピュータ3が、そのCPU3aによってサーバーのI/ O装置2bを制御し、サーバーのI/ O装置2bは、サーバーの記憶装置2cから所定のファイルを取り出し、クライアントコンピュータ3へ転送する。この場合は、サーバーのCPU2aは、わずかにI/ O装置2bの制御に関与するだけで、ほとんどの負荷から解放される。
【0028】
一方、クライアントコンピュータ3に転送されたファイルは、クライアントコンピュータのI/ O装置3bにより、記憶装置3cに格納される。
【0029】
すなわち、本クライアントサーバーシステム1によれば、ネットワーク負荷制御プログラム6により、従来サーバーのCPU2aが行っていた処理をクライアントコンピュータのCPU3aによって肩代わりし、サーバーのCPU2aへの負荷を分散するようにしている。
【0030】
また、本クライアントサーバーシステム1においては、ネットワーク負荷制御プログラム6の作用により、接続を要求したすべてのクライアントコンピュータ3に同時にファイル転送するのと同時に、ネットワーク4への負荷を制御している。このことを以下に説明する。
【0031】
図2は、本クライアントサーバーシステム1が、同時に多数のクライアントコンピュータ3へファイル転送を行っているところの通信状態を示している。
【0032】
図の陰影を付したバーチャート部分は、データ転送している時間を示している。図に示したように、本システムのネットワーク負荷制御プログラム6は、サーバー2に少数のクライアントコンピュータ3がアクセスしようとするとき(これを「平常時」ということにする)は、従来のファイル転送と同様に、1つのクライアントコンピュータに対してファイル転送した後に、次のクライアントコンピュータに対してファイル転送を行う。
【0033】
しかし、同時に多数のクライアントコンピュータ3がサーバー2にアクセスしようとするとき(これを「ラッシュ時」ということにする)は、各クライアントコンピュータ3のネットワーク負荷制御プログラム6は、ネットワーク4の負荷を計算しながら、転送ファイルを分割し、1回に少量のデータのみを転送させ、かつ、全体としてネットワーク4に過負荷とならないように、転送を受ける時間を制御する。
【0034】
すなわち、本システムでは、サーバー2にアクセスした各クライアントコンピュータ3のネットワーク負荷制御プログラム6が、ネットワーク4の負荷状態を計算し、計算結果に基づいて転送ファイルを分割し、1回のREAD時間(TR)、1回のデータ転送におけるWAIT時間(TW)、各回のデータ転送間のWAIT時間(TS)を変化させる。
【0035】
転送ファイルを細かく分割することにより、多数のクライアントコンピュータ3に対して交互にデータ転送を行えることができ、見かけ上同時に多数のクライアントコンピュータ3へデータの転送を行うことができる。
【0036】
また、このように転送ファイルを細かく分割して、その転送時間の間隔、1回の転送時間の長さを調節することにより、ネットワーク4の最も効率が良い転送レートでデータ転送を行うことができる。
【0037】
一般に、サーバー2へのアクセス要求が混み合うほどファイルを細分化し、各回のデータ転送の間隔を大きくする。
【0038】
ここで、ネットワーク4の最も効率が良い転送レートについて説明する。
【0039】
一般にネットワーク4は、固有の情報転送容量(バンド幅という)を有している。
【0040】
しかし、バンド幅の限界ぎりぎりでは、信号の干渉により、再送信等を試みる回数が増加し、全体として通信効率が低下する。この通信効率は、全バンド幅に対して一定の割合を超過すると、指数的に低下することが知られている。
【0041】
一方、バンド幅に対して少ない転送レートによってデータを転送する場合は、信号の干渉による再送信はなくなるが、ネットワーク4が遊んだ状態になる。
【0042】
本発明によるネットワーク負荷分散方法では、時々刻々に変化するネットワーク4の負荷状態に応じて、1回に転送するデータのサイズ(これをデータ転送単位という)の大きさと、転送を受ける時間とを変化させ、データ転送を適当に配分することにより、ネットワーク4の最も効率のよい転送レートでファイルの転送を行うようにしている。
【0043】
以下に、上記機能を実現するためのネットワーク負荷制御プログラム6の処理について説明する。
【0044】
図3は、ネットワーク負荷制御プログラム6による処理の流れを示している。図3に示すように、クライアントコンピュータ3がサーバー2にアクセスを試みるときに、ネットワーク負荷制御プログラム6が起動し(ステップS100)、最初にサーバー2から設定値を取得する。ここで、設定値とは、リトライ間隔、リトライ回数、第1回目のデータ転送単位、そのネットワーク4において効率よくデータ転送をする場合の標準的な1回のデータ転送時間(これを標準データ転送時間という)等である。
【0045】
なお、上記設定値をサーバー2に格納し、起動したネットワーク負荷制御プログラム6によって取得するようにしているのは、設定値を変更する場合の変更の容易さを考慮したものであり、無論各クライアントコンピュータ3に格納するようにしてもよい。この場合は、このステップS110は、省略される。
【0046】
次に、ネットワーク負荷制御プログラム6は、ファイルの転送を実行し(ステップS120)、1回のデータ転送におけるデータブロックサイズ・待ち時間の制御(ステップS130)、各データ転送間隔の制御(ステップS140)を、各データ転送回ごとに行いながら、ファイル転送を実行する。
【0047】
上記ステップS130のデータブロックサイズ・待ち時間の制御の詳細を図4によって詳細に説明する。
【0048】
図4に示すように、最初に第1回目の読込WAIT時間TW=T1 と、読込データブロックサイズBS=B1 を取得する(ステップS110)。
【0049】
次に、上記T1 とB1 に基づいて、n回だけデータのREAD、WAIT、WRITEを繰り返す(ステップS131〜S133)。このn回のデータ転送の間に、各回のデータ転送のREAD時間TRを計測する。
【0050】
次に、上記n回のREAD時間TRにより、1回に転送するデータブロックサイズBS、1回のデータ転送におけるWAIT時間TWを計算し、これを制御する(ステップS134)。このステップS134における処理を以下にさらに詳説する。
【0051】
最初に、TR時間のn回の平均を求める。TRの平均をTAとすると、TA=ΣTR/n。
【0052】
このTAは、ネットワーク4の負荷状態を表わしている。すなわち、TAが長ければ、データの読込み(READ)に時間がかかっていることになり、これはとりもなおさずネットワーク4がラッシュの状態にあることを示している。
【0053】
そこで、TA>Tmax (Tmax は設定値)の時は、ネットワーク4が高負荷の状態にあると判断し、データブロックサイズBSを現在の1/2にする。
【0054】
上記データブロックサイズBSを小さくした結果、データブロックサイズBSが所定値BLより(データブロックサイズの下限)小さくなるときは、それ以上データブロックサイズを小さくせずに、WAIT時間を2倍にする。
【0055】
つまり、上記処理により、ネットワーク4が混雑の状態にあるときは、どんどんデータブロックサイズが小さくなり、あるいはWAIT時間が長くなり、結局ネットワーク4の負荷が時間的に分散され、効率のよい転送レートに落ち着くことになる。
【0056】
上記とは反対に、TA<Tmin (Tmin は設定値)となった時は、ネットワーク4が低負荷の状態にあると判断し、WAIT時間TWを現在の1/2にし、あるいは、データブロックサイズBSを現在の2倍にする。
【0057】
つまり、ネットワーク4が低負荷の状態にあるときは、どんどんWAIT時間が短くなり、あるいはデータブロックサイズが大きくなり、結局ネットワーク4の負荷が時間的に集中され、効率のよい転送レートに落ち着くことになる。
【0058】
しかし、上記処理は、各クライアントコンピュータ3における処理であるため、クライアントコンピュータ3間の処理速度の差による調節をすることができない。
【0059】
つまり、サーバー2に接続するクライアントコンピュータ3の処理速度が同一の場合は、問題を生じないが、クライアントコンピュータ3間に処理速度の差が存在する場合は、処理が速いクライアントコンピュータ3はネットワーク4が低負荷と判断し、どんどんデータ転送を集中させる。反対に、処理速度が遅いクライアントコンピュータ3は、READ時間TRが長いため、データ転送をどんどん分散させる。
【0060】
そこで、ステップS140(図3参照)により、各クライアントコンピュータ3のデータ転送間隔を制御する。このデータ転送間隔の制御を図5を用いて以下に説明する。
【0061】
最初に、ネットワーク4が有しているバンド幅から、標準のクライアントコンピュータ3の1秒間に転送可能なバイト数BTを計算する(ステップS141)。
【0062】
次に、データのREAD、WAIT、WRITEの処理をn回繰返し、その合計時間TTsum と、n回分のデータ転送量BSsum を求める(ステップS142〜S144)。なお、1回のREAD、WAIT、WRITEの処理を行う時間をTTとし、1回のREAD、WAIT、WRITEによって転送されるデータ量をBSとする。
【0063】
次に、上記TTsum とBSsum により、データ転送間隔の制御を行う(ステップS145,S146)。
【0064】
ステップS145においては、最初に標準的なクライアントコンピュータ3が最大のバンド幅を使用したときに、BSsum を転送するのにかかる時間TW2 を計算する(TW2 =BSsum *1000/BT)。
【0065】
次に、TS=TW2 −TTsum として、TSを計算する(ステップS145)。処理が速いコンピュータでは、TTsum が短くなりTSが長くなる。一方、処理が遅いコンピュータでは、TTsum が長くなり、TSが短くなる。
【0066】
上記計算されたTSをデータ転送間の時間として各データ転送間で時間TSの間隔を開けるようにする(ステップS146)。なお、TW2 <TTsum の場合は、各データ転送間隔を0とする。
【0067】
上記処理により、処理が速いクライアントコンピュータ3では、1回のデータ転送で短い時間内に多くのデータを転送するが、データ転送の間隔が長くなる。一方、処理が遅いクライアントコンピュータ3では、1回のデータ転送で長い時間内に少ないデータを転送するが、データ転送の間隔が短くなる。
【0068】
上記バランスにより、サーバー2に処理速度が異なるクライアントコンピュータ3が接続されている場合にも、サーバー2から全体のクライアントコンピュータ3に均等にデータを配布することができる。
【0069】
【発明の効果】
上記説明から明らかなように、本発明の「クライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法」によれば、各クライアントコンピュータがサーバーのI/ O装置を直接制御することにより、サーバーのCPUへの負荷を各クライアントコンピュータのCPUによって分散させることができる。
【0070】
また、本発明の方法では、各クライアントコンピュータのネットワーク負荷制御プログラムの働きにより、1回のデータ転送のREAD時間によってネットワークの混雑状況を判断し、ネットワークが混雑している場合は、転送するデータブロックサイズを小さくし、あるいは1回のデータ転送における待ち時間を長くする。反対に、ネットワークが混雑していない場合は、転送するデータブロックサイズを大きくし、あるいは1回のデータ転送における待ち時間を短くする。
【0071】
上記転送データブロックサイズや待ち時間の上限や下限を、ネットワークの高効率の転送レートに合うように設定することにより、各クライアントコンピュータは、自律的にデータ転送の間隔や転送データブロックサイズを調節し、結果的にネットワークの高効率の転送レートで、サーバーからデータの転送を受けることができる。
【0072】
さらに、データ転送間隔の制御により、処理速度が速いクライアントコンピュータは間隔を開けて、反対に処理速度が遅いクライアントコンピュータは間隔を詰めて、データ転送を受ける。これにより、クライアントサーバーシステム全体に均等にデータが配布される。
【図面の簡単な説明】
【図1】本発明による「クライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法」を実現するための手段とそれらの手段間の処理の流れを示した図。
【図2】本発明による「クライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法」のデータ転送の様子を示した図。
【図3】本発明による「クライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法」のネットワーク負荷制御プログラムの処理の流れを示したフローチャート。
【図4】本発明における1回のデータ転送におけるデータブロックサイズ・待ち時間の制御方法を示したフローチャート。
【図5】本発明におけるデータ転送間隔の制御方法を示したフローチャート。
【図6】従来のクライアントサーバーシステムのデータ転送の手段とそれらの手段間の処理の流れを示した図。
【符号の説明】
1 クライアントサーバーシステム
2 サーバー
2a サーバーのCPU
2b サーバーのI/ O装置
2c サーバーの記憶装置
3 クライアントコンピュータ
3a クライアントコンピュータのCPU
3b クライアントコンピュータのI/ O装置
3c クライアントコンピュータの記憶装置
4 ネットワーク
5 流量制御プログラム
6 ネットワーク負荷制御プログラム
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a method for maintaining the soundness and efficiency of a client server system by distributing a load concentrated on the server and the network when a large number of client computers access the server simultaneously in the client server system.
[0002]
[Prior art]
Recently, a client server system has been widely used in place of an information processing system including a conventional host computer and a terminal.
[0003]
The client server system includes a “server” that manages and provides data and software in an integrated manner, and a “client computer” that makes a request to the server and uses the data and software.
[0004]
These servers and client computers perform information processing independently in each device, but are configured to perform unified information processing as a whole by exchanging processing results and processing data with other devices.
[0005]
In this way, the client server system performs unified information processing while the server and client computers in the system exchange data and software with each other, so that each client computer in the system naturally has the same software (in the same software). Must be the same version).
[0006]
For this reason, in the current client / server system, generally all client computers access the server at regular intervals (for example, once or twice a week), and the software and data stored in the server at that time are stored. Updates its own file with a file.
[0007]
FIG. 6 shows a system configuration and method for the client computer to access the server and receive distribution of software and data. In FIG. 6, the flow of instructions and information is indicated by arrows.
[0008]
As shown in FIG. 6, a client server system 1 includes a server 2 and a plurality of client computers 3 connected via a network 4 such as a LAN.
[0009]
When it is time to update the file, many client computers 3 access the server 2 all at once and try to download the file. In the conventional download, after the client computer 3 accesses the server 2 and a connection procedure such as confirmation of the communication partner is established, a command such as file transfer is sent from the client computer 3 to the server 2.
[0010]
Transfer commands from these client computers 3 are processed by the server CPU 2 a of the server 2. In this case, the CPU 2a of the server controls the I / O device 2b, takes out the designated file from the storage device 2c and transfers it to the client computer 3 by the action of the server I / O device 2b.
[0011]
In the client computer 3, the I / O device 3b under the control of the CPU 3a stores the file transferred from the server 2 in the storage device 3c, and updates the old file if it exists.
[0012]
The conventional client server system 1 includes a flow rate control program 5 so that the processing of the server CPU 2a does not overflow. This is because the CPU 2a of the server has a limit in its processing capability, and if more commands from the client computer 3 are input, the processing becomes impossible and the entire system stops functioning. For this reason, when a predetermined number of client computers 3 are connected, the flow rate control program 5 denies access to the requested client computer 3 for further connection requests.
[0013]
FIG. 6 shows a state where the server 2 is performing a full process. In FIG. 6, the number of client computers to which the server 2 can be connected simultaneously is assumed to be three. In this case, the client computers C1 to C3 are in a communication state, but the other client computers C4 to Cn are in a standby state (WAIT state) and keep trying to access the server 2.
[0014]
When any one of the client computers C1 to C3 finishes communication with the server 2, any one of the client computers C4 to Cn that attempted to access immediately after that is connected.
[0015]
[Problems to be solved by the invention]
However, the conventional client-server system and its file distribution method cannot efficiently utilize the capacity of the entire system due to the limitation of the processing capacity of the CPU of the server.
[0016]
In other words, in the conventional client-server system, as described above, the CPU of the server intensively processes access requests and file transfer instructions from the client computer, so that the upper limit of the processing capacity is reached immediately. .
[0017]
Due to the limitation of the processing capability of the CPU of the server, the file transfer was eventually performed to a limited number of client computers. On the other hand, the CPU of the client computer during this period uses only a part of its processing capacity and is in a state of playing.
[0018]
In addition, since the client computer in the WAIT state repeatedly tries to access the server, a load is imposed on the CPU and the network on the server side in order to send a response to the access request (response to reject access).
[0019]
Therefore, the present invention solves the above-mentioned problems of the prior art, eliminates the concentration of the load on the CPU of the server, and distributes a large number of files from the server to a large number of client computers simultaneously by the processing capability of the entire client-server system. It is an object of the present invention to provide a network load distribution method in data transfer of a client server system that can be performed.
[0020]
[Means for Solving the Problems]
The network load distribution method in the data transfer of the client server system according to claim 1 of the present application is:
The network load control program with each client computer client-server system, data is transferred by directly controlling the server of the I / O device, the network load control program on each client computer, the network load from load time data The data block size to be transferred at one time and the waiting time during one data transfer are controlled according to the estimation result of the network load.
[0021]
The network load distribution method in data transfer of the client server system according to claim 2 of the present application is the method according to claim 1,
In a client-server system including client computers with different processing speeds,
A time obtained by subtracting the data transfer time of each client computer from the reference data transfer time based on the data transfer time when a client computer having a predetermined processing speed receives data transfer using the maximum bandwidth of the network. In the positive case, the time difference is set as the time interval of each data transfer operation.
[0022]
The medium according to claim 3 of the present application is:
Each client computer of the client server system directly controls the server I / O device to transfer data,
Each client computer estimates the network load from the data read time, and controls the data block size to be transferred at one time and the waiting time during one data transfer according to the estimation result of the network load. This is a record of the program.
[0023]
DETAILED DESCRIPTION OF THE INVENTION
Next, embodiments of the present invention will be described below.
The “network load distribution method in data transfer of a client server system” according to the present invention includes a load sharing by a CPU of a client computer, a file distribution simultaneously to a large number of client computers, and a file transfer at an efficient transfer rate of a network. Realize three. This will be described below.
[0024]
FIG. 1 shows the system configuration of a client server system that implements the method of the present invention and the state of its processing.
[0025]
In FIG. 1, the client server system 1 includes a server 2, a client computer 3, and a network 4 such as a LAN that connects the server 2 and the client computer 3.
[0026]
This client server system 1 is different from the conventional client server system (see FIG. 6) in that there is no flow control program on the server 2 side, and the client computer 3 has a network load control program 6, and this network load control The program 6 directly controls the server I / O device 2b.
[0027]
As shown in FIG. 1, in this client server system 1, a large number of client computers 3 control the server I / O device 2b by the CPU 3a, and the server I / O device 2b is stored in the server storage device 2c. A predetermined file is taken out and transferred to the client computer 3. In this case, the CPU 2a of the server is only slightly involved in the control of the I / O device 2b and is released from most loads.
[0028]
On the other hand, the file transferred to the client computer 3 is stored in the storage device 3c by the I / O device 3b of the client computer.
[0029]
That is, according to the client server system 1, the network load control program 6 takes over the processing performed by the CPU 2a of the conventional server by the CPU 3a of the client computer and distributes the load on the CPU 2a of the server.
[0030]
In the client server system 1, the network load control program 6 controls the load on the network 4 simultaneously with the file transfer to all the client computers 3 that have requested connection. This will be described below.
[0031]
FIG. 2 shows a communication state in which the client server system 1 is transferring files to a large number of client computers 3 at the same time.
[0032]
The shaded bar chart portion of the figure indicates the time during which data is transferred. As shown in the figure, the network load control program 6 of this system, when a small number of client computers 3 try to access the server 2 (referred to as “normal”), Similarly, after transferring a file to one client computer, the file is transferred to the next client computer.
[0033]
However, when a large number of client computers 3 try to access the server 2 at the same time (referred to as “rush time”), the network load control program 6 of each client computer 3 calculates the load on the network 4. However, the transfer file is divided, only a small amount of data is transferred at one time, and the time for receiving the transfer is controlled so as not to overload the network 4 as a whole.
[0034]
That is, in this system, the network load control program 6 of each client computer 3 that has accessed the server 2 calculates the load state of the network 4, divides the transfer file based on the calculation result, and performs one READ time (TR ) The WAIT time (TW) in one data transfer and the WAIT time (TS) between each data transfer are changed.
[0035]
By finely dividing the transfer file, data can be alternately transferred to a large number of client computers 3, and data can be apparently transferred to a large number of client computers 3 simultaneously.
[0036]
In addition, by dividing the transfer file in this way and adjusting the interval between the transfer times and the length of one transfer time, data transfer can be performed at the most efficient transfer rate of the network 4. .
[0037]
In general, the file is subdivided so that the access requests to the server 2 are crowded, and the interval between data transfers is increased.
[0038]
Here, the most efficient transfer rate of the network 4 will be described.
[0039]
In general, the network 4 has a unique information transfer capacity (referred to as bandwidth).
[0040]
However, at the limit of the bandwidth limit, the number of times of re-transmission or the like is increased due to signal interference, and the overall communication efficiency is lowered. It is known that this communication efficiency decreases exponentially when it exceeds a certain ratio with respect to the entire bandwidth.
[0041]
On the other hand, when data is transferred at a low transfer rate with respect to the bandwidth, retransmission due to signal interference is eliminated, but the network 4 is idle.
[0042]
In the network load distribution method according to the present invention, the size of data to be transferred at one time (referred to as a data transfer unit) and the time for receiving the transfer are changed according to the load state of the network 4 that changes every moment. By appropriately distributing the data transfer, the file transfer is performed at the most efficient transfer rate of the network 4.
[0043]
Below, the process of the network load control program 6 for implement | achieving the said function is demonstrated.
[0044]
FIG. 3 shows the flow of processing by the network load control program 6. As shown in FIG. 3, when the client computer 3 tries to access the server 2, the network load control program 6 is activated (step S <b> 100), and a setting value is first acquired from the server 2. Here, the set value refers to the retry interval, the number of retries, the first data transfer unit, and the standard one-time data transfer time for efficient data transfer in the network 4 (this is the standard data transfer time. Etc.).
[0045]
The setting value is stored in the server 2 and acquired by the activated network load control program 6 in consideration of the ease of change when changing the setting value. You may make it store in the computer 3. FIG. In this case, this step S110 is omitted.
[0046]
Next, the network load control program 6 executes file transfer (step S120), controls the data block size / waiting time in one data transfer (step S130), and controls each data transfer interval (step S140). The file transfer is executed while performing the above operation for each data transfer.
[0047]
Details of the control of the data block size and waiting time in step S130 will be described in detail with reference to FIG.
[0048]
As shown in FIG. 4, first, the first read WAIT time TW = T1 and the read data block size BS = B1 are acquired (step S110).
[0049]
Next, data READ, WAIT, and WRITE are repeated n times based on T1 and B1 (steps S131 to S133). During the n data transfers, the READ time TR of each data transfer is measured.
[0050]
Next, the data block size BS transferred at one time and the WAIT time TW in one data transfer are calculated and controlled by the n READ times TR (step S134). The process in step S134 will be described in further detail below.
[0051]
First, an average of n times of TR time is obtained. TA = ΣTR / n where the average of TR is TA.
[0052]
This TA represents the load state of the network 4. That is, if TA is long, it means that it takes time to read data (READ), which indicates that the network 4 is in a rush state.
[0053]
Therefore, when TA> Tmax (Tmax is a set value), it is determined that the network 4 is in a high load state, and the data block size BS is reduced to the current ½.
[0054]
When the data block size BS becomes smaller than the predetermined value BL (lower limit of the data block size) as a result of reducing the data block size BS, the WAIT time is doubled without further reducing the data block size.
[0055]
In other words, when the network 4 is in a congested state by the above processing, the data block size becomes smaller or the WAIT time becomes longer, eventually the load on the network 4 is temporally distributed, and an efficient transfer rate is achieved. It will calm down.
[0056]
Contrary to the above, when TA <Tmin (Tmin is a set value), it is determined that the network 4 is in a low load state, and the WAIT time TW is reduced to the current half or the data block size. Double the BS.
[0057]
In other words, when the network 4 is in a low load state, the WAIT time becomes shorter or the data block size becomes larger, and eventually the load on the network 4 is concentrated in time and settles to an efficient transfer rate. Become.
[0058]
However, since the above process is a process in each client computer 3, it cannot be adjusted due to a difference in processing speed between the client computers 3.
[0059]
That is, when the processing speeds of the client computers 3 connected to the server 2 are the same, no problem occurs. However, when there is a difference in processing speed between the client computers 3, the client computer 3 having a fast processing speed is connected to the network 4. Judge that the load is low and concentrate data transfer more and more. On the other hand, the client computer 3 having a low processing speed distributes data transfer more and more because the READ time TR is long.
[0060]
Therefore, the data transfer interval of each client computer 3 is controlled in step S140 (see FIG. 3). The control of the data transfer interval will be described below with reference to FIG.
[0061]
First, the number of bytes BT that can be transferred per second of the standard client computer 3 is calculated from the bandwidth of the network 4 (step S141).
[0062]
Next, the data READ, WAIT, and WRITE processes are repeated n times, and the total time TTsum and the data transfer amount BSsum for n times are obtained (steps S142 to S144). Note that the time for performing one READ, WAIT, and WRITE processing is TT, and the amount of data transferred by one READ, WAIT, and WRITE is BS.
[0063]
Next, the data transfer interval is controlled by the TTsum and BSsum (steps S145 and S146).
[0064]
In step S145, when the standard client computer 3 first uses the maximum bandwidth, the time TW2 required to transfer BSsum is calculated (TW2 = BSsum * 1000 / BT).
[0065]
Next, TS is calculated as TS = TW2-TTsum (step S145). In a computer with high processing speed, TTsum becomes short and TS becomes long. On the other hand, in a computer with slow processing, TTsum becomes long and TS becomes short.
[0066]
The calculated TS is used as a time between data transfers so that a time TS is opened between the data transfers (step S146). When TW2 <TTsum, each data transfer interval is set to zero.
[0067]
With the above processing, the client computer 3 that is fast in processing transfers a large amount of data within a short time by one data transfer, but the data transfer interval becomes long. On the other hand, the slow-processing client computer 3 transfers a small amount of data within a long time by one data transfer, but the data transfer interval is shortened.
[0068]
Due to the above balance, even when client computers 3 having different processing speeds are connected to the server 2, data can be evenly distributed from the server 2 to the entire client computers 3.
[0069]
【The invention's effect】
As is apparent from the above description, according to the “network load distribution method in data transfer of a client / server system” of the present invention, each client computer directly controls the server I / O device, so that The load can be distributed by the CPU of each client computer.
[0070]
Also, in the method of the present invention, the network load control program of each client computer determines the network congestion status based on the read time of one data transfer, and when the network is congested, the data block to be transferred Reduce the size or increase the waiting time in one data transfer. Conversely, when the network is not congested, the data block size to be transferred is increased, or the waiting time in one data transfer is shortened.
[0071]
By setting the above-mentioned transfer data block size and the upper and lower limits of the waiting time so as to match the highly efficient transfer rate of the network, each client computer autonomously adjusts the data transfer interval and transfer data block size. As a result, it is possible to receive data transfer from the server at a highly efficient transfer rate of the network.
[0072]
Further, by controlling the data transfer interval, a client computer having a high processing speed opens the interval, and conversely, a client computer having a low processing speed receives the data transfer at a close interval. As a result, data is evenly distributed throughout the client server system.
[Brief description of the drawings]
FIG. 1 is a diagram showing a means for realizing a “network load distribution method in data transfer of a client server system” according to the present invention and a flow of processing between those means.
FIG. 2 is a diagram showing a state of data transfer according to a “network load distribution method in data transfer of a client server system” according to the present invention.
FIG. 3 is a flowchart showing a processing flow of a network load control program of “network load distribution method in data transfer of client server system” according to the present invention.
FIG. 4 is a flowchart showing a method for controlling the data block size and waiting time in one data transfer according to the present invention.
FIG. 5 is a flowchart showing a data transfer interval control method according to the present invention.
FIG. 6 is a diagram showing a data transfer means of a conventional client-server system and a flow of processing between those means.
[Explanation of symbols]
1 Client server system 2 Server 2a Server CPU
2b Server I / O device 2c Server storage device 3 Client computer 3a Client computer CPU
3b Client computer I / O device 3c Client computer storage device 4 Network 5 Flow control program 6 Network load control program

Claims (3)

クライアントサーバーシステムの各クライアントコンピュータが有するネットワーク負荷制御プログラムによって直接サーバーのI/ O装置を制御してデータ転送を行い、各クライアントコンピュータ上のネットワーク負荷制御プログラムにおいて、データの読込み時間からネットワークの負荷を推定し、そのネットワーク負荷の推定結果に応じて1回に転送を受けるデータブロックサイズと、1回のデータ転送中の待ち時間とを制御するようにしたことを特徴とするクライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法。The network load control program with each client computer client-server system, data is transferred by directly controlling the server of the I / O device, the network load control program on each client computer, the network load from load time data The data of the client server system is characterized in that the data block size received at one time and the waiting time during one data transfer are controlled according to the estimation result of the network load. Network load balancing method for forwarding. 処理速度が異なるクライアントコンピュータを含むクライアントサーバーシステムにおいて、
所定の処理速度のクライアントコンピュータが、ネットワークの最大バンド幅を使用してデータ転送を受ける場合のデータ転送時間を基準とし、前記基準のデータ転送時間から各クライアントコンピュータのデータ転送時間を引いた時間が正の場合にその時間差を各データ転送動作の時間間隔とすることを特徴とする請求項1に記載のクライアントサーバーシステムのデータ転送におけるネットワーク負荷分散方法
In a client-server system including client computers with different processing speeds,
A time obtained by subtracting the data transfer time of each client computer from the reference data transfer time based on the data transfer time when a client computer having a predetermined processing speed receives data transfer using the maximum bandwidth of the network. 2. The network load distribution method in data transfer of a client server system according to claim 1, wherein the time difference is set as a time interval of each data transfer operation when positive .
クライアントサーバーシステムの各クライアントコンピュータによって直接サーバーのI/ O装置を制御してデータ転送を行い、
各クライアントコンピュータにおいて、データの読込み時間からネットワークの負荷を推定し、そのネットワーク負荷の推定結果に応じて1回に転送を受けるデータブロックサイズと、1回のデータ転送中の待ち時間とを制御するようにしたプログラムを記録した媒体。
Each client computer of the client server system directly controls the server I / O device to transfer data,
Each client computer estimates the network load from the data read time, and controls the data block size to be transferred at one time and the waiting time during one data transfer according to the estimation result of the network load. A medium on which the program is recorded.
JP28263696A 1996-10-24 1996-10-24 Network load balancing method in data transfer of client server system Expired - Lifetime JP3897843B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28263696A JP3897843B2 (en) 1996-10-24 1996-10-24 Network load balancing method in data transfer of client server system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28263696A JP3897843B2 (en) 1996-10-24 1996-10-24 Network load balancing method in data transfer of client server system

Publications (2)

Publication Number Publication Date
JPH10124412A JPH10124412A (en) 1998-05-15
JP3897843B2 true JP3897843B2 (en) 2007-03-28

Family

ID=17655104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28263696A Expired - Lifetime JP3897843B2 (en) 1996-10-24 1996-10-24 Network load balancing method in data transfer of client server system

Country Status (1)

Country Link
JP (1) JP3897843B2 (en)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155736A (en) 1998-11-24 2000-06-06 Nec Corp Method for distributing service request and address converting device
JP2002073166A (en) * 2000-09-05 2002-03-12 Mitsubishi Electric Corp Supervisory and control device
US7500010B2 (en) * 2005-04-07 2009-03-03 Jeffrey Paul Harrang Adaptive file delivery system and method
US9065595B2 (en) 2005-04-07 2015-06-23 Opanga Networks, Inc. System and method for peak flow detection in a communication network
US11258531B2 (en) 2005-04-07 2022-02-22 Opanga Networks, Inc. System and method for peak flow detection in a communication network
US8719399B2 (en) 2005-04-07 2014-05-06 Opanga Networks, Inc. Adaptive file delivery with link profiling system and method
US8909807B2 (en) 2005-04-07 2014-12-09 Opanga Networks, Inc. System and method for progressive download using surplus network capacity
JP4991151B2 (en) * 2005-12-21 2012-08-01 エヌ・ティ・ティ・コムウェア株式会社 File transfer system and file transfer method
JP5010390B2 (en) * 2007-08-17 2012-08-29 株式会社野村総合研究所 Information distribution system
KR20110082192A (en) 2008-11-07 2011-07-18 오팡가 네트웍스, 인크. Portable data storage devices that initiate data transfers utilizing host devices
US8886790B2 (en) 2009-08-19 2014-11-11 Opanga Networks, Inc. Systems and methods for optimizing channel resources by coordinating data transfers based on data type and traffic
JP2017027484A (en) * 2015-07-27 2017-02-02 富士通フロンテック株式会社 Download processing program, terminal device and downloading method
JP6682995B2 (en) * 2016-04-28 2020-04-15 オムロン株式会社 Communication device, system including communication device, and program

Also Published As

Publication number Publication date
JPH10124412A (en) 1998-05-15

Similar Documents

Publication Publication Date Title
JP3897843B2 (en) Network load balancing method in data transfer of client server system
US6961309B2 (en) Adaptive TCP delayed acknowledgment
US5628005A (en) System and method for providing opportunistic file access in a network environment
US6675268B1 (en) Method and apparatus for handling transfers of data volumes between controllers in a storage environment having multiple paths to the data volumes
JP2000276304A (en) Data shifting method and information processing system
JPH11120156A (en) Data communication system in multiprocessor system
CN111212114B (en) Method and device for downloading resource file
US20020095471A1 (en) Method of transferring data between memories of computers
EP1122924B1 (en) Method and apparatus for providing local path I/O in a distributed file system
US9122406B2 (en) System and method for selectively transferring block data over a network
US6704836B1 (en) Method for dynamic control of concurrent extended copy tasks
JPH0954719A (en) Client and server type data base
JP3239753B2 (en) Network control method and control server device
JP2001160040A (en) Server multiplicity controller and server multiplicity control method, and recording medium recording server multiplicity control program
JP2004515993A5 (en)
JP2000276305A (en) Disk array device
JP3237592B2 (en) Communication load control method, its device, and its program recording medium
JPH0962624A (en) Processing method and processing system for on-line transaction
JP2591834B2 (en) Buffer memory device for data communication device
JPH096664A (en) Network backup device
US20030004948A1 (en) System and method for retrieving data from disk in a network environment
JP2000250846A (en) Sequence processor
JP2000148639A (en) Data transmission control method and recording medium with data transmission control program recorded therein
EP0713308B1 (en) Data sending device
JP2000224549A (en) Data transfer controlling method and device

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060126

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060203

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060728

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060927

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061106

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061220

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100105

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110105

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120105

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130105

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140105

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term