JP4722150B2 - クライアントサーバシステム - Google Patents
クライアントサーバシステム Download PDFInfo
- Publication number
- JP4722150B2 JP4722150B2 JP2008080934A JP2008080934A JP4722150B2 JP 4722150 B2 JP4722150 B2 JP 4722150B2 JP 2008080934 A JP2008080934 A JP 2008080934A JP 2008080934 A JP2008080934 A JP 2008080934A JP 4722150 B2 JP4722150 B2 JP 4722150B2
- Authority
- JP
- Japan
- Prior art keywords
- server
- client
- resource
- command
- response
- 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 - Fee Related
Links
Landscapes
- Computer And Data Communications (AREA)
Description
クライアント、サーバは、共に汎用コンピュータで構築され、各々の装置内にはCPU(central processing unit)、メモリ、HDD(hard disk drive)、ネットワークカードなどを備える。また、クライアントに比べ、サーバは負荷が集中しやすいことから、サーバにはよりハイスペックなCPU、メモリ、HDD、ネットワークカードを持つコンピュータを選定するのが一般的である。
現在、クライアントサーバシステムは、LANネットワークのように閉じられたエリアのシステムだけでなく、WANなどの公開されたシステムなど、様々な環境で採用されている。
上記対策として、ある機能を複数のサーバで分担することで、耐障害性の向上や高負荷時のレスポンス向上に対応したり、機能単位でサーバを用意することで負荷分散を行う方法などがある。
さらに高度なサーバの負荷分散の方法としては、ドメイン名の問合せに対して、同一機能を持つ複数のサーバのうちで、最も負荷が軽いと推定できるIPアドレスを応答することで負荷分散を行うDNSラウンドロビン、複数のサーバのIPをまとめ1つの仮想IPアドレスへの問合せに対して、サーバを振り分けることで、負荷分散を行う負荷分散装置(ロードバランサ)、プロトコルヘッダ内のポート番号やシーケンス番号を書き換えることで、負荷分散を行うL4スイッチの使用などが挙げられる。
また、特許文献1には、サーバのCPU使用率を含むリソース使用率を取得し、上限値以上の場合に他のサーバに業務を分散することで、負荷分散する技術が記載されている。
リアルタイム性を必要とする処理が、同時期に集中するような場合、コマンドに優先度をつけ、優先順位の高いコマンドから実行することで、優先度の高いコマンドへの応答時間を改善する工夫がなされる。しかし、この場合でも、優先順位が高いコマンドが連続してある場合には、リアルタイム性を確保できないという問題が生じる。
また、特許文献1のものでは、コマンドによって消費するリソースは様々であり、これに対応していないという問題がある。コマンドによって消費するリソースは様々であり、どのリソースがボトルネックになるかを判断して、それを回避するようなスケジューリングを行う必要がある。
図1は、この発明の実施の形態1によるクライアントサーバシステムを示す構成図である。
図1において、LAN109に接続されたクライアント(クライアント端末)105〜107から、LAN108に接続されたサーバ101〜103への、LAN/WAN110などを介するコマンド発行と、サーバ101〜103からクライアント105〜107への応答の際、常にコマンド解析/リソース監視サーバ104を経由するようなシステムを構成する。
ここでサーバ101〜103は、それぞれ異なる機能を実装したサーバであっても、負荷分散のために同じ機能を持つサーバであっても構わない。
コマンド解析/リソース監視サーバ104は、複数のクライアントから同時にコマンドを受信した際、コマンド受信バッファにコマンドを蓄積する。
そして、各コマンドのリソース使用率を、運用開始前に、各コマンド実行時のサーバのリソース使用率および応答データ処理時のクライアントのリソース使用率を取得し、予めデータベース(以下、リソース使用率DB)化しておく。
図2において、リソース使用率取得手段13は、サーバ及びクライアントのリソース使用率を取得する。リソース使用率DB作成手段11は、リソース使用率取得手段13によって取得されたリソース使用率に基づき、予めリソース使用率DB12を作成する。受信処理手段14は、受信したコマンドについて、リアルタイム性を判断して、リアルタイム性のあるものをリアルタイムコマンド受信バッファ15に蓄積し、リアルタイム性のないものを非リアルタイムコマンド受信バッファ16に蓄積する。
コマンドリソース使用率対応表作成手段17は、リアルタイムコマンド受信バッファ15に蓄積されたコマンドについて、そのコマンドが必要とするリソースをリソース使用率DB12から取得し、コマンドリソース使用率対応表を作成する。優先度算出手段18は、コマンドリソース使用率対応表と現在のサーバのリソース使用率に基づき、リアルタイムコマンド受信バッファ15に蓄積されたコマンドについてそれぞれ優先度を算出する。そして、送信処理手段19は、優先度にもとづき、リアルタイムコマンド受信バッファ15に蓄積されたコマンドを順次、送信する。
なお、上述の説明では、クライアントからの受信コマンドについてはサーバのリソース使用率を取得して優先度を算出するものとして説明したが、サーバからのコマンド応答についても、同様にしてクライアントのリソース使用率を取得して優先度を算出する。
図4において、サーバごと、かつ受信コマンドごとに、サーバのCPU使用率、メモリ使用率、HDD使用率、ネットワーク使用率を示している。
図5において、クライアントごと、かつコマンド応答ごとに、クライアントのCPU使用率、メモリ使用率、HDD使用率、ネットワーク使用率を示している。
図7において、縦軸を重み係数、横軸を現在のリソース使用率として、重み係数と現在のリソース使用率との指数関数的な関係を示している。
コマンド解析/リソース監視サーバ104は、各サーバ101〜103のCPU、メモリ、HDD、ネットワークなどのリソース使用状況をリアルタイムで監視し、各コマンドがどのリソースをどれだけ使用するかを図3のフローに従い、事前にリソース使用率DBに登録しておく。
そして、受信バッファにあるコマンドのうち、どのコマンドから先に実行するかをスケジューリングすることで、ボトルネックを回避する。つまり、特定のリソースばかりを消費しないようにコマンド実行順序を決定する。
まず、システムをアイドル状態にする(S1)。次に、アイドル時のCPU使用率、メモリ使用率をOS提供の情報から取得する(S2)。次に、メモリをクリアする(S3)。次 いで、HDD使用率測定用ファイルの読み込み時間を測定し、使用率を算出する(S4)。メモリをクリアする(S5)。Pingを発行して、レスポンス時間を測定し、ネットワーク使用率を算出する(S6)。
S1〜S6は、コマンドごとのリソース使用率の取得のための準備段階であり、システムがアイドル状態でのリソース使用率を、すべてのサーバとクライアントについて取得しておく。
クライアントへの応答データ送信時、定周期でクライアントのCPU、メモリ、HDD、ネットワーク使用率を取得する(S11)。取得したCPU、メモリ、HDD、ネットワーク使用率の平均値を算出する(S12)。アイドル状態でのリソース使用率を基準にして、応答データ処理時のリソース使用率をリソース使用率DB12へ登録する(S13)。
このようにして、予めリソース使用率DB12を作成する。
コマンド受信(S21)時、リアルタイム性が必要なGUI等からのコマンドと、クローンやバッチ処理などの定期的に実行される非リアルタイムコマンドかを判断し(S22)、それぞれ異なる蓄積バッファを用意する。すなわち、リアルタイムコマンドの場合には、リアルタイムコマンド受信バッファに蓄積し(S23)、非リアルタイムコマンドの場合には、非リアルタイムコマンド受信バッファに蓄積する(S24)。
次に、複数のリアルタイムコマンドがバッファに蓄積されているかどうかを判断し(S25)、リアルタイム性が必要なコマンドを複数受信していない場合は、リアルタイムコマンド、非リアルタイムコマンドの順にコマンドを実行する(S26)。
また、リアルタイムコマンドを複数受信している場合は、受信バッファに蓄積した各コマンドのリソース使用率をリソース使用率DBから取得する(S27)。次いで、現在のサーバ、クライアントのCPU、メモリ、HDD、ネットワーク使用率を取得する(S28)。次いで、各コマンドのリソース使用率と重み係数からコマンド実行優先度を算出する(S29)。優先度の高いコマンドから順番にサーバに送信する(S30)。
なお、上記は受信コマンドについて説明したが、コマンド応答についても同様に処理する。
リソース使用率の算出方法は、CPU、メモリ使用率については、OSの機能で実装されている場合が多く、容易に取得可能である。HDD使用率については、特定ファイルへの読み書き時間の増減により使用率を算出し、ネットワーク使用率は、PING応答時間により使用率を算出する。
ここで、CPU重み係数WC、メモリ重み係数WM、HDD重み係数HW、ネットワーク重み係数NWとすると、図4からコマンドa1の優先度a1_pは、式(1)により算出される。
a1_p =0.1*NCR*WC+0.03*NMR*WM+0.06*NHR*WH+0.08*NNR*WN ・・・(1)
同様にコマンドa2〜a5の優先度a2_p〜a5_pを求めることができる。コマンド優先度の値が小さいコマンドの優先度が高くなる。優先度の高いコマンドから順に実行することで、ボトルネックを回避できる。
同様の手法で、サーバからクライアントへの応答データ送信時の優先度も求められ、優先度の高い応答の順に実行することで、システム全体のボトルネックを回避することができる。
また、同様の処理をサーバからクライアントへの応答時に適応することで、クライアント側のボトルネックを回避できる。
これにより、サーバ、クライアント共に、特定のリソース消費によるボトルネックを回避し、システム全体の効率化を図ることができる。
実施の形態1では、コマンド解析/リソース監視サーバは、独立したものとして説明したが、このコマンド解析/リソース監視サーバは、いずれかのサーバに組み込むことも可能である。
実施の形態2は、この場合についてのものである。すなわち、コマンド解析/リソース監視サーバは、通常のサーバの機能を有しているので、コマンド解析/リソース監視サーバのリソースにより処理できるコマンドについては、コマンド解析/リソース監視サーバでコマンドを実行し、クライアントに対して応答を行う。
この応答に際しては、クライアントのリソース使用率に基づいて、応答の優先度を算出し、算出した優先度にしたがって行うようにする。
実施の形態1では、コマンド解析/リソース監視サーバは、独立したものとして説明したが、このコマンド解析/リソース監視サーバを、すべてのサーバに組み込んだ場合が実施の形態3である。
実施の形態3では、すべてのサーバがコマンド解析/リソース監視サーバの機能を有している。各サーバは、自サーバのリソース使用率を把握しておき、これに基づいて、同時に受信したコマンドの優先度を求め、この優先度にしたがって、コマンドを実行して応答する。
図8は、この発明の実施の形態4によるクライアントサーバシステムを示す構成図である。
図8において、101〜109は図1におけるものと同一のものである。図8では、データ/コマンド用LANと別に設けられたリソース監視用LAN111を介してコマンド解析/リソース監視サーバ104が監視を行うようになっている。コマンド解析/リソース監視サーバ104で、サーバ及びクライアントのリソース使用率を取得しておき、クライアントがコマンドの送信時、及びサーバがコマンド応答の送信時に、コマンド解析/リソース監視サーバ104からサーバまたはクライアントのリソース使用率を取得して、これに基づき、コマンドまたはコマンド応答を送信するようにした。
コマンド送信および応答用のネットワークは、通常の運用で使用しているネットワークであり、それとは別にリソース監視用のネットワークであるリソース監視用LAN111を構築する。
すべてのサーバ、クライアントは、この2種類のネットワークに接続されている。一方、コマンド解析/リソース監視サーバ104は、リソース監視用LAN111にだけ接続されており、サーバ/クライアントのリソース使用率をリアルタイムで監視する。
このような構成をとることで、ネットワークの負荷を軽減し、さらにはコマンド解析/リソース監視サーバ104の負荷を軽減できる。
この実施の形態4では、クライアントはコマンド解析/リソース監視サーバ104へ、リソース使用率を問い合わせることで、各サーバのリソース使用率を把握できる。この情報を元にして、コマンドを発行するサーバを切り替える、またはコマンド発行を遅らせる等のスケジューリングを実施することで、サーバの負荷を分散することができる。
サーバのコマンド応答も同様にして行われる。
13 リソース使用率取得手段、14 受信処理手段、
15 リアルタイムコマンド受信バッファ、16 非リアルタイムコマンド受信バッファ、
17 コマンドリソース使用率対応表作成手段、18 優先度算出手段、
19 送信処理手段、
101 サーバA、102 サーバB、103 サーバC、
104 コマンド解析/リソース監視サーバ、
105 クライアントA、106 クライアントB、107 クライアントC、
108 LAN、109 LAN、110 LAN/WAN、
111 リソース監視用LAN。
Claims (5)
- サーバ及び複数のクライアントによって構成され、上記クライアントから上記サーバにコマンドを送信し、上記サーバが上記コマンドを実行して上記クライアントに応答を行うクライアントサーバシステムにおいて、
上記コマンド及び上記応答を中継するよう構成され、予め上記サーバのコマンドごとのリソース使用率を取得しておくとともに、上記サーバのリソース使用率をモニタし、現在のリソース使用率及びこの現在のリソース使用率に応じるように各リソースを重み付けした重み係数及び上記コマンドごとのリソース使用率をリソースごとに乗算し、乗算結果を合計した値を優先度として、上記クライアントから送信されるコマンドについて上記優先度を算出し、この算出した優先度の小さい順に上記コマンドを上記サーバへ送信するコマンド解析/リソース監視サーバを備えたことを特徴とするクライアントサーバシステム。 - 上記コマンド解析/リソース監視サーバの上記リソース利用率データベースには、上記各クライアントの上記応答データ処理時のリソース使用率が応答ごとに予め格納され、
上記コマンド解析/リソース監視サーバは、上記各クライアントのリソース使用率をモニタし、現在のリソース使用率及びこの現在のリソース使用率に応じるように各リソースを重み付けした重み係数及び上記リソース利用率データベースの上記応答ごとのリソース使用率をリソースごとに乗算し、乗算結果を合計した値を優先度として、上記サーバから送信される応答について上記優先度を算出し、この算出した優先度の小さい順に上記応答を上記クライアントへ送信することを特徴とする請求項1記載のクライアントサーバシステム。 - サーバ及び複数のクライアントによって構成され、上記クライアントから上記サーバにコマンドを送信し、上記サーバが上記コマンドを実行して上記クライアントに応答を行うクライアントサーバシステムにおいて、
上記サーバは、予め自サーバのコマンドごとのリソース使用率を取得しておくとともに、自サーバのリソース使用率をモニタし、現在のリソース使用率及び及びこの現在のリソース使用率に応じるように各リソースを重み付けした重み係数及び上記コマンドごとのリソース使用率をリソースごとに乗算し、乗算結果を合計した値を優先度として、上記クライアントから送信されるコマンドについて上記優先度を算出するコマンド解析/リソース監視サーバ機能を備え、
上記コマンド解析/リソース監視サーバ機能によって算出された優先度の小さい順に上記コマンドを実行することを特徴とするクライアントサーバシステム。 - サーバ及び複数のクライアントによって構成され、上記クライアントから上記サーバにコマンドを送信し、上記サーバが上記コマンドを実行して上記クライアントに応答を行うクライアントサーバシステムにおいて、
予め各々の上記クライアントのコマンドごとのリソース使用率及び上記サーバの応答ごとのリソース使用率を取得しておくとともに、上記サーバ及び各々の上記クライアントのリソース使用率をモニタし、各々の上記クライアントまたは上記サーバからの問い合わせに応じて、現在のリソース使用率及び予め取得した上記サーバの応答ごとのリソース使用率または予め取得した各々の上記クライアントのコマンドごとのリソース使用率を回答するコマンド解析/リソース監視サーバを備え、
各々の上記クライアントは、上記コマンド解析/リソース監視サーバから回答された上記現在のリソース使用率及び予め取得した上記サーバの応答ごとのリソース使用率に基づき、各々の上記クライアントが上記サーバに送信するコマンドをスケジューリングし、
上記サーバは、上記コマンド解析/リソース監視サーバから回答された上記現在のリソース使用率及び予め取得した各々の上記クライアントのコマンドごとのリソース使用率に基づき、上記サーバが各々の上記クライアントに送信する応答をスケジューリングすることを特徴とするクライアントサーバシステム。 - 上記コマンド解析/リソース監視サーバが、上記サーバ及びクライアントのリソース使用率をモニタするためのネットワークを、上記コマンド及びその応答を伝送するためのネットワークとは別に設けたことを特徴とする請求項4記載のクライアントサーバシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008080934A JP4722150B2 (ja) | 2008-03-26 | 2008-03-26 | クライアントサーバシステム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008080934A JP4722150B2 (ja) | 2008-03-26 | 2008-03-26 | クライアントサーバシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009237748A JP2009237748A (ja) | 2009-10-15 |
JP4722150B2 true JP4722150B2 (ja) | 2011-07-13 |
Family
ID=41251642
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008080934A Expired - Fee Related JP4722150B2 (ja) | 2008-03-26 | 2008-03-26 | クライアントサーバシステム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4722150B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103685419A (zh) * | 2012-09-21 | 2014-03-26 | 中兴通讯股份有限公司 | 业务处理方法及装置 |
JP6172649B2 (ja) | 2012-12-19 | 2017-08-02 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 情報処理装置、プログラム、及び、情報処理方法 |
JP2020154530A (ja) * | 2019-03-19 | 2020-09-24 | Necソリューションイノベータ株式会社 | リソース管理装置、ユーザ装置側リソース管理装置、リソース管理方法、ユーザ装置側リソース管理方法、プログラム及び記録媒体 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH09305417A (ja) * | 1996-05-13 | 1997-11-28 | Nec Corp | Cpu使用率最適化方式 |
JP3705121B2 (ja) * | 2000-11-29 | 2005-10-12 | 日本電気株式会社 | マルチプロセッサ型呼処理方式 |
JP3891273B2 (ja) * | 2002-03-05 | 2007-03-14 | 日本電気株式会社 | トランザクション処理の負荷分散方法およびそのシステム |
-
2008
- 2008-03-26 JP JP2008080934A patent/JP4722150B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2009237748A (ja) | 2009-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4916809B2 (ja) | 負荷分散制御装置および方法 | |
Casalicchio et al. | Static and dynamic scheduling algorithms for scalable web server farm | |
Nakai et al. | Load balancing for internet distributed services using limited redirection rates | |
Colajanni et al. | Analysis of task assignment policies in scalable distributed Web-server systems | |
US8495170B1 (en) | Service request management | |
Gilly et al. | An up-to-date survey in web load balancing | |
Hafeez et al. | Detection and mitigation of congestion in SDN enabled data center networks: A survey | |
EP0838931A2 (en) | Recoverable virtual encapsulated cluster | |
US10979493B1 (en) | System and method for forwarding service requests to an idle server from among a plurality of servers | |
WO2007125942A1 (ja) | 負荷制御装置およびその方法 | |
Xie et al. | Cutting long-tail latency of routing response in software defined networks | |
Nakai et al. | On the use of resource reservation for web services load balancing | |
JP4722150B2 (ja) | クライアントサーバシステム | |
CN115604278A (zh) | 动态负载均衡方法和系统 | |
Goldszmidt et al. | ShockAbsorber: a TCP connection router | |
KR20130060350A (ko) | Atca-기반 장비에서 통신 트래픽을 스케줄링하기 위한 방법 및 장치 | |
CN102271078A (zh) | 面向服务质量保障的负载均衡方法 | |
Goldszmidt et al. | Scaling internet services by dynamic allocation of connections | |
Kontogiannis et al. | ALBL: an adaptive load balancing algorithm for distributed web systems | |
Nakai et al. | Improving the QoS of web services via client-based load distribution | |
Lee et al. | Development of an optimal load balancing algorithm based on ANFIS modeling for the clustering web-server | |
Lu et al. | Effects and implications of file size/service time correlation on web server scheduling policies | |
Qiao et al. | Looking at the server side of peer-to-peer systems | |
Wang et al. | On fairness-efficiency tradeoffs for multi-resource packet processing | |
CN112738193B (zh) | 云计算的负载均衡方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20091222 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101214 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20101221 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110207 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110315 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110405 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140415 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |