JP2022032710A - 管理装置およびプログラム - Google Patents

管理装置およびプログラム Download PDF

Info

Publication number
JP2022032710A
JP2022032710A JP2020136787A JP2020136787A JP2022032710A JP 2022032710 A JP2022032710 A JP 2022032710A JP 2020136787 A JP2020136787 A JP 2020136787A JP 2020136787 A JP2020136787 A JP 2020136787A JP 2022032710 A JP2022032710 A JP 2022032710A
Authority
JP
Japan
Prior art keywords
memory
information processing
data
server
amount
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.)
Withdrawn
Application number
JP2020136787A
Other languages
English (en)
Inventor
宏喜 児玉
Hiroki Kodama
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2020136787A priority Critical patent/JP2022032710A/ja
Priority to US17/242,341 priority patent/US11366595B2/en
Publication of JP2022032710A publication Critical patent/JP2022032710A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0635Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0653Monitoring storage devices or systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System (AREA)

Abstract

【課題】データに対するアクセス速度の低下を抑制する。【解決手段】通信部41は、第1情報処理装置10および第2情報処理装置20と通信する。第1情報処理装置10は、主記憶装置として使用される第1メモリ11と、第1メモリに対するスワップ領域を備え第1メモリ11よりアクセス速度が低速な第2メモリ12とを有する。第2情報処理装置20は、主記憶装置として使用される第3メモリ21と、アクセス速度が第3メモリ21より低速かつ第2メモリ12より高速であり主記憶装置として使用される第4メモリ22を有する。第3メモリ21と第4メモリ22の容量合計は第1メモリ11の容量より大きい。処理部42は、第1情報処理装置10が第3情報処理装置30から受信するデータ量を基に第1メモリ11の使用量の増加を検出し、当該使用量の増加に応じて第3情報処理装置30のデータ送信先を第2情報処理装置20に切り替える制御を行う。【選択図】図1

Description

本発明は管理装置およびプログラムに関する。
コンピュータなどの情報処理装置は、CPU(Central Processing Unit)などの演算装置と演算装置の処理に用いられるデータを記憶するDRAM(Dynamic Random Access Memory)などの主記憶装置を備える。一方、情報処理装置が処理するデータ量によっては、主記憶装置だけでは容量が不足することがある。そこで、仮想メモリが用いられることがある。仮想メモリは、HDD(Hard Disk Drive)やSSD(Solid State Drive)などの補助記憶装置の一部の記憶領域から割り当てられる。補助記憶装置の当該領域はスワップ領域と呼ばれることがある。主記憶装置の容量が不足した場合に、主記憶装置に格納されたデータの一部が補助記憶装置のスワップ領域にスワップアウトされる。
例えば、SSDにDRAMのデータの一部を格納するスワップ領域を設け、DRAMのワーク領域とキャッシュ領域のサイズ、及びSSDのスワップ領域とキャッシュ領域のサイズを変更可能にする計算機の提案がある。
なお、突発的な短周期負荷の増減も考慮した上でデータの階層間配置を実現し、高階層でのデータヒット率を向上させるためのストレージシステムの提案がある。
国際公開第2015/132877号公報 国際公開第2014/174653号公報
スワップ領域は補助記憶装置に設けられる。補助記憶装置に対するアクセス速度は、主記憶装置に対するアクセス速度よりも低速である。このため、スワップアウトされたデータに対するアクセス速度は低下する。
1つの側面では、本発明は、データに対するアクセス速度の低下を抑制する管理装置およびプログラムを提供することを目的とする。
1つの態様では、管理装置が提供される。管理装置は、通信部と処理部とを有する。通信部は、主記憶装置として使用される第1メモリと、第1メモリに対するスワップ領域を備えており第1メモリよりもアクセス速度が低速である第2メモリとを有する第1情報処理装置、および、主記憶装置として使用される第3メモリとアクセス速度が第3メモリよりも低速かつ第2メモリよりも高速であり主記憶装置として使用される第4メモリとを有し、第3メモリと第4メモリとの容量の合計が第1メモリの容量よりも大きい第2情報処理装置と通信する。処理部は、通信部を介して、第1情報処理装置が第3情報処理装置から受信するデータ量を取得し、データ量に基づいて第1メモリの使用量の増加を検出し、第1メモリの使用量の増加に応じて第3情報処理装置によるデータの送信先を第1情報処理装置から第2情報処理装置に切り替える制御を行う。
また、1つの態様では、プログラムが提供される。
1つの側面では、データに対するアクセス速度の低下を抑制できる。
第1の実施の形態の情報処理システムを説明する図である。 第2の実施の形態の情報処理システムの例を示す図である。 通常サーバのハードウェアの一例を示す図である。 メモリ拡張サーバのハードウェアの一例を示す図である。 通常サーバとメモリ拡張サーバのデータに対するアクセス速度を説明するための図である。 情報処理システムの機能を示すブロック図である。 管理装置の機能を示すブロック図である。 プロデューサーからブローカーへ送信するデータ量を増大させた実験の結果を示すグラフである。 管理装置の処理の流れの例を示すシーケンス図である。 監視処理の例を示すフローチャートである。
以下、本実施の形態について図面を参照して説明する。
[第1の実施の形態]
第1の実施の形態を説明する。
図1は、第1の実施の形態の情報処理システムを説明する図である。
情報処理システム1は、第1情報処理装置10と、第2情報処理装置20と、第3情報処理装置30と、第4情報処理装置40と、を含む。情報処理システム1は、第3情報処理装置のデータ31を、第1情報処理装置10または第2情報処理装置20で処理するシステムである。
第1情報処理装置10は、第1メモリ11と、第2メモリ12とを有する。第1メモリ11は、第1情報処理装置10の主記憶装置として使用されるメモリである。第1メモリ11は、例えば、DRAMである。第2メモリ12は、第1メモリ11に対するスワップ領域を備えており第1メモリ11よりもアクセス速度が低速なメモリである。第2メモリ12は、例えば、HDDやSSDなどの補助記憶装置である。
第2情報処理装置20は、第3メモリ21と、第4メモリ22とを有する。第3メモリ21および第4メモリ22は、第2情報処理装置20の主記憶装置として使用されるメモリである。第3メモリ21は、例えば、DRAMである。第4メモリ22は、アクセス速度が第3メモリ21よりも低速かつ第2メモリ12よりも高速である。第4メモリ22は、例えば、DCPM(Data Center Persistent Memory)である。DCPMは、DRAMとSSDの中間の性能を持つが大容量という特徴を有し、DRAMの代わりに主記憶装置として利用可能なメモリである。DCPMは、DRAMと同様に、例えば第2情報処理装置20のメインボードに搭載されるDIMM(Dual Inline Memory Module)スロットに取り付けられる。
第3メモリ21と第4メモリ22との容量の合計は、第1メモリ11の容量より大きい容量となっている。すなわち、第2情報処理装置20の主記憶装置の容量は、第1情報処理装置10の主記憶装置の容量よりも大きくなっている。したがって、第2情報処理装置20では、処理するデータ31の量(データ量)が大量になった場合でも、主記憶装置で処理できるデータ量が多いため、主記憶装置の容量不足が第1情報処理装置10よりも生じにくい。
なお、第2情報処理装置20の主記憶装置を構成する第4メモリ22は、アクセス速度が第3メモリ21よりも劣っている。しかしながら、第4メモリ22は、第2メモリ12よりもアクセス速度が高速である。したがって、第2情報処理装置20の主記憶装置でデータ31を処理すれば、主記憶装置の容量不足が生じた第1情報処理装置10でデータ31を処理しようとしてスワップアウトが発生する場合よりも、アクセス速度の低下を抑止できる。
第3情報処理装置30は、第1情報処理装置10または第2情報処理装置20にデータ31を送信する。
第4情報処理装置40は、第1情報処理装置10、第2情報処理装置20、第3情報処理装置30と同様にデータ31の通信に利用可能な装置である。例えば、情報処理システム1は、第4情報処理装置40を、第1情報処理装置10および第2情報処理装置20と同様にデータ31の送信先として機能させることもできるし、第3情報処理装置30と同様にデータ31の送信元として機能させることもできる。第4情報処理装置40は、データ31の送信状況を管理する管理装置としての機能を有する。なお、以下で説明する第4情報処理装置40の管理装置の機能を、第1情報処理装置10、第2情報処理装置20、第3情報処理装置30のいずれかがマスタ(管理装置)となって実行するように構成することもできる。
第4情報処理装置40は、通信部41と、処理部42とを有する。通信部41は、例えば、有線または無線で通信するNIC(Network Interface Card)により実現される。通信部41は、第1情報処理装置10および第3情報処理装置30と通信する。
処理部42は、例えば、CPU、GPU(Graphics Processing Unit)またはDSP(Digital Signal Processor)などである。処理部42は、プログラムを実行するプロセッサでもよい。「プロセッサ」は、複数のプロセッサの集合(マルチプロセッサ)を含み得る。なお、処理部42は、FPGA(Field-Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの電子回路により実現されてもよい。
処理部42は、通信部41を介して、第1情報処理装置10が第3情報処理装置30から受信するデータ量を取得し、データ量に基づいて第1メモリ11の使用量の増加を検出する。そして、処理部42は、第1メモリ11の使用量の増加に応じて第3情報処理装置30によるデータの送信先を第1情報処理装置10から第2情報処理装置20に切り替える制御を行う。
例えば、処理部42は、第1メモリ11の使用量の増加により、第1メモリ11の容量では、容量不足が生じ得ること(容量不足によりスワップアウトが発生することともいう)を検知した場合に、データ31の送信先を切り替える制御を行う。切り替える制御として、例えば、処理部42は、データ31の送信先を第2情報処理装置20に変更する指示を、第3情報処理装置30に送信することが考えられる。あるいは、処理部42は、第3情報処理装置30からデータ31を受信して第1情報処理装置10に転送する負荷分散装置などの通信装置に、データ31の送信先を第2情報処理装置20に変更する指示を送信することも考えられる。
こうして、第1情報処理装置10の主記憶装置の容量ではスワップアウトが発生し、データ31に対するアクセス速度の低下(処理遅延)が生じ得る場合に、第4情報処理装置40は、より大容量の主記憶装置を確保して、容量不足によるスワップアウトを抑制する。
これによれば第4情報処理装置40は、データ量が増大する場合でも、データ31に対するアクセス速度の極端な低下を起こさずに、データ31に対する処理を継続できるので、信頼性を向上させることができる。
一方で、第4情報処理装置40は、第1情報処理装置10の主記憶装置の容量で高速処理が可能な場合(第1メモリ11の使用量が増加していない場合)には、第3情報処理装置30によるデータ31の送信先を第1情報処理装置10とする。これによれば第4情報処理装置40は、第2情報処理装置20(主記憶装置が大容量の情報処理装置)を他の処理にも流用可能にできる。これにより情報処理システム1は、それぞれの処理でデータ量の増大に備えて大容量の主記憶装置を有する情報処理装置を別個に用意しておく必要がなくなるので、コストを抑制できる。
[第2の実施の形態]
次に、第2の実施の形態を説明する。
図2は、第2の実施の形態の情報処理システムの例を示す図である。
情報処理システム100は、クラウドサービスを提供するクラウドサービスシステムである。クラウドサービスシステムでは、各サーバに仮想環境やコンテナ環境が構築され、各種のサービスが提供され得る。例えば、クラウドサービスシステムでは、マイクロサービスと呼ばれる単位の機能を組み合わせることで、1つのアプリケーションを提供することがある。
情報処理システム100は、当該システムで提供するサービスのデータ(サービスに関するデータ)をストリーム処理する。情報処理システム100では、データの送受信にApache Kafka(登録商標)と呼ばれるミドルウェアが用いられる。Apache Kafkaは、装置間のデータの受け渡しに用いられる分散データキューを提供する。Apache Kafkaは、プロデューサー(Producer)、ブローカー(Broker)及びコンシューマー(Consumer)の機能を含む。
プロデューサーは、サービスについての処理対象のデータを収集し、ブローカーに送信する。ブローカーは、プロデューサーから受け付けたデータを主記憶装置にキューイングし、リクエストに応じてデータをデキューしてコンシューマーに提供する。コンシューマーは、ブローカーからデータを取得し、取得したデータを所定のアプリケーションに渡す。
Kafkaのこれらの機能を実現するソフトウェアのモジュールは、仮想マシンやコンテナ仮想化などの仮想化機構を用いて、情報処理システム100が備える複数のサーバに配備される。
情報処理システム100は、プロデューサーとして機能する複数のサーバと、ブローカーとして機能する複数のサーバと、コンシューマーとして機能する複数のサーバと、管理装置600と、を有する。プロデューサーとして機能する複数のサーバと、ブローカーとして機能する複数のサーバと、コンシューマーとして機能する複数のサーバと、管理装置600とは、ネットワークを介して接続する。
プロデューサーとして機能する複数のサーバは、サーバ200,210,…を含む。プロデューサーとして機能するサーバは、サービスについての処理対象のデータを収集し、ブローカーに送信する。
情報処理システム100では、サーバ200,210,…それぞれは、あるサービスに対するプロデューサーとして機能する。例えば、サーバ200は、サービスAについてのプロデューサーとして機能し、サーバ210は、サービスBについてのプロデューサーとして機能する。サーバ200,210,…は複数のサービスを実行してもよい。なお、サーバ200およびサーバ210は、第1の実施の形態の第3情報処理装置30の一例である。
ブローカーとして機能する複数のサーバは、サーバ300,310,400,…を含む。ブローカーとして機能するサーバは、プロデューサーとして機能するサーバが収集したデータのコンシューマーとして機能するサーバへの受け渡しを仲介する。ブローカーとして機能するサーバは、プロデューサーとして機能するサーバが収集したデータを主記憶装置にキューイング(一時的に保持)し、リクエストに応じてデータをデキューしてコンシューマーとして機能するサーバに提供する。すなわち、ブローカーとして機能するサーバは、データバッファとして機能する。
例えば、サーバ300は、サービスAについてのブローカーとして機能し、サーバ310は、サービスBについてのブローカーとして機能する。サーバ400は、サービスAとサービスBのいずれのブローカーとしても機能し得る。
サーバ400は、サーバ300,310より主記憶装置が拡張されたコンピュータである。サーバ400は、例えば、主記憶装置の一部をDCPMで構成することで主記憶装置が拡張されたコンピュータである。
なお、サーバ400をメモリ拡張サーバと呼び、サーバ300,310を通常サーバと呼ぶことがある。なお、サーバ300およびサーバ310は、第1の実施の形態の第1情報処理装置10の一例である。サーバ400は、第1の実施の形態の第2情報処理装置20の一例である。
コンシューマーとして機能する複数のサーバは、サーバ500,510,…を含む。コンシューマーとして機能するサーバは、ブローカーとして機能するサーバがキューイングしているデータを取得し、データを用いてサービスに応じた処理を実行する。情報処理システム100では、サーバ500,510,…それぞれは、あるサービスについてのコンシューマーとして機能する。
なお、以下では、サービス(サービスA,サービスB)についての処理を行うサーバの組み合わせをサービス処理システム(サービスA処理システム,サービスB処理システム)とする。
管理装置600は、情報処理システム100で提供する各サービスのサービス処理システムを管理する。管理装置600は、サービスで行われるデータ量の増大が見込まれるイベントの発生に関連して当該サービスについての処理を行うサービス処理システムのデータ量を監視する。そして、管理装置600は、監視結果に基づいてイベントが行わるサービス(サービス処理システム)のブローカーとして運用するサーバを切り替える処理を行う。
ストリーム処理ではブローカーへのデータの格納速度(インキュー処理)がブローカーからのデータの取得処理(デキュー処理)を上回ると、ブローカーの主記憶装置内で保持するデータが増大していく。その結果、ブローカーの主記憶装置だけでは容量不足が生じ、主記憶装置だけではデータを保持できなくなることがある。
この場合には、主記憶装置に格納できなくなったデータが補助記憶装置のスワップ領域にスワップアウトされることとなる。主記憶装置に比べると補助記憶装置のアクセス速度は大きく劣るので、補助記憶装置へのデータの格納が生じると、データへのアクセス速度が低下し、ブローカーからのデータの取得に遅延が生じ、ストリーム処理(サービス)の遅延が発生し得る。
例えば、インキュー処理がデキュー処理を上回らないように、コンシューマーの処理能力を十分に確保することが考えられる。しかしながら、イベントにより突発的なデータ量の増大が発生することもあり、コンシューマーの処理能力の確保だけでデータの補助記憶装置のスワップ領域へのスワップアウトを抑止することは困難である。
そこで管理装置600は、サービスのデータ量が小さい場合には当該サービスの通常サーバをブローカーとして運用する。
そして、管理装置600は、サービスのデータ量が増大した場合(イベントの発生に関連して)に当該サービスのブローカーとして運用するサーバを通常サーバからメモリ拡張サーバに切り替える処理を行う。切り替えに先立って、管理装置600は、メモリ拡張サーバに当該サービス用のブローカーを新たに配備してもよい。このように管理装置600は、サービスのデータ量が増大した場合に、大容量の主記憶装置を確保して突発的なデータ量の増大に対処する。
これにより、管理装置600は、サービスのデータ量が増大した場合でもスワップアウトによるサービス性能の極端な低下を起こさずにサービスの提供を可能とし、サービスの信頼性を向上させる。
また、サービスのデータ量が小さい場合には当該サービスにはメモリ拡張サーバを用いずに、サービスのデータ量が増大したときにブローカーとして運用するようにしているので、複数のサービス間でデータ量の増大に対処するメモリ拡張サーバを共用できる。これにより、管理装置600は、それぞれのサービスでデータ量の増大に備えて大容量の主記憶装置を有するメモリ拡張サーバを別個用意しておく必要をなくすことができ、コストを抑制できる。
また、管理装置600は、サービスのデータ量が増大した場合に当該サービスのブローカーとして運用するサーバを通常サーバからメモリ拡張サーバに切り替え、ブローカーとして運用するサーバを一本化している。これによれば、管理装置600は、プロデューサーによるインキュー処理やコンシューマーによるデキュー処理の制御を単純化できる。
次にサーバ300のハードウェアについて説明する。図3は、通常サーバのハードウェアの一例を示す図である。
サーバ300は、CPU301、DRAM302、HDD303、接続IF(Inter Face)304、画像信号処理部305、入力信号処理部306、媒体リーダ307およびNIC308を有する。各ハードウェアはサーバ300のバスに接続されている。DRAM302は、第1の実施の形態の第1メモリ11の一例である。HDD303は、第1の実施の形態の第2メモリ12の一例である。
CPU301は、プログラムの命令を実行するプロセッサである。CPU301は、HDD303に記憶されたプログラムやデータの少なくとも一部をDRAM302にロードし、プログラムを実行する。なお、CPU301は複数のプロセッサコアを備えてもよく、サーバ300は複数のプロセッサを備えてもよい。
DRAM302は、サーバ300の主記憶装置である。主記憶装置は、主メモリやメインメモリなどと呼ばれることもある。DRAM302は、CPU301に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、DRAM302は、CPU301による処理に用いる各種データを記憶する。
HDD303は、サーバ300の補助記憶装置である。HDD303は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD303は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。サーバ300は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
接続IF304は、周辺機器を接続する。接続IF304は、CPU301からの命令に従って、サーバ300に接続された各種接続機器からデータを取得する。
画像信号処理部305は、CPU301からの命令に従って、サーバ300に接続されたディスプレイ305aに画像を出力する。ディスプレイ305aとして、CRT(Cathode Ray Tube)ディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部306は、サーバ300に接続された入力デバイス306aから入力信号を取得し、CPU301に出力する。入力デバイス306aとして、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ307は、記録媒体307aに記録されたプログラムやデータを読み取る装置である。記録媒体307aとして、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)を使用できる。また、記録媒体307aとして、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ307は、例えば、CPU301からの命令に従って、記録媒体307aから読み取ったプログラムやデータをDRAM302またはHDD303に格納する。
NIC308は、ネットワークを介して他の装置と通信を行う。NIC308は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
サーバ300は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。サーバ200,210,310,500,510および管理装置600もサーバ300と同様のハードウェアを用いて実現できる。第1の実施の形態に示した第1情報処理装置10、第3情報処理装置30および第4情報処理装置40も、図3に示したサーバ300と同様のハードウェアにより実現することができる。
次にサーバ400のハードウェアについて説明する。図4は、メモリ拡張サーバのハードウェアの一例を示す図である。
サーバ400は、CPU401、DRAM402、DCPM403、HDD404、接続IF405、画像信号処理部406、入力信号処理部407、媒体リーダ408およびNIC409を有する。各ハードウェアはサーバ400のバスに接続されている。DRAM402は、第1の実施の形態の第3メモリ21の一例である。DCPM403は、第1の実施の形態の第4メモリ22の一例である。
CPU401は、プログラムの命令を実行するプロセッサである。CPU401は、HDD404に記憶されたプログラムやデータの少なくとも一部をDRAM402にロードし、プログラムを実行する。なお、CPU401は複数のプロセッサコアを備えてもよく、サーバ400は複数のプロセッサを備えてもよい。
DRAM402は、サーバ400の主記憶装置である。DRAM402は、CPU401に実行させるOSのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、DRAM402は、CPU401による処理に用いる各種データを記憶する。
DCPM403は、サーバ400の主記憶装置である。DCPM403は、CPU401による処理に用いる各種データを記憶する。DCPM403は、DRAM402よりもアクセス速度が低速であるものの、HDD404やSSDよりもアクセス速度が高速なメモリである。DCPM403は、サーバ400のメインボード上のDRAM挿入用のスロット(例えばDIMMスロット)と同じスロットを介して接続される。
DCPM403は、DRAM402よりも容量が大容量である。したがって、DCPM403を用いることで、DRAM402のみを用いる場合よりも大容量を確保でき、メモリを拡張することができる。また、DCPM403は、DRAM402よりもコスト/容量比が優れている。したがって、DCPM403により主記憶装置の容量を確保することで、DRAM403により主記憶装置の容量を確保する場合よりも安価に容量を確保することができる。ただし、DRAM402の方がDCPM403よりもアクセス速度が高速である。
なお、以下では、サーバ300,310では、主記憶装置として第1の容量のDRAMが用いられ、DCPMが用いられていないものとする。また、サーバ400では、主記憶装置として、第1の容量のDRAMと第1の容量よりも大きい第2の容量のDCPMが用いられるものとする。
例えば、サーバ400の合計DRAM容量がサーバ300の合計DRAM容量よりも小さく、サーバ400の主記憶装置の容量がサーバ300の主記憶装置の容量よりも大きいものとする。なお、サーバ300,310のDRAM302の容量(主記憶装置の容量)は、通常時に要求される容量、すなわち、通常時におけるサービスのデータ量を処理するのに必要な容量を満たす容量であるものとする。
HDD404は、サーバ400の補助記憶装置である。HDD404は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD404は、OSのプログラム、アプリケーションプログラム、および各種データを記憶する。サーバ400は、フラッシュメモリやSSDなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
接続IF405は、周辺機器を接続する。接続IF405は、CPU401からの命令に従って、サーバ400に接続された各種接続機器からデータを取得する。
画像信号処理部406は、CPU401からの命令に従って、サーバ400に接続されたディスプレイ406aに画像を出力する。ディスプレイ406aとして、CRTディスプレイや液晶ディスプレイなどを用いることができる。
入力信号処理部407は、サーバ400に接続された入力デバイス407aから入力信号を取得し、CPU401に出力する。入力デバイス407aとして、例えば、マウスやタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
媒体リーダ408は、記録媒体408aに記録されたプログラムやデータを読み取る装置である。記録媒体408aとして、例えば、フレキシブルディスクやHDDなどの磁気ディスク、CDやDVDなどの光ディスク、光磁気ディスクを使用できる。また、記録媒体408aとして、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。媒体リーダ408は、例えば、CPU401からの命令に従って、記録媒体408aから読み取ったプログラムやデータをDRAM402、DCPM403またはHDD404に格納する。
NIC409は、ネットワークを介して他の装置と通信を行う。NIC409は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
サーバ400は、以上のようなハードウェア構成によって、第2の実施の形態の処理機能を実現することができる。第1の実施の形態に示した第2情報処理装置20も、図4に示したサーバ400と同様のハードウェアにより実現することができる。
次に、通常サーバとメモリ拡張サーバのデータの処理速度の概要について説明する。図5は、通常サーバとメモリ拡張サーバのデータに対するアクセス速度を説明するための図である。
通常サーバでは、データ量がd1+d2以内である場合には、DRAMの容量に格納できるので、d1+d2以内のデータに対するアクセス速度は高速となる。
一方で、通常サーバでは、データ量がd1+d2を超過した場合には、超過した範囲にあるデータについては、DRAMの容量だけでは対処できないので、HDDの一部にデータをスワップアウトすることとなる。したがって、通常サーバでは、d1+d2を超過したデータについてのアクセス速度が低速となる。
メモリ拡張サーバでは、データ量がd1以内である場合には、DRAMの容量に格納できるので、d1以内のデータに対するアクセス速度は高速となる。
一方、メモリ拡張サーバでは、データ量がd1からd1+d2+d3以内である場合には、d1を超過した範囲にあるデータについては、DRAMの容量だけでは対処できないので、DCPMの容量に格納することとなる。
したがって、メモリ拡張サーバでは、データ量がd1からd1+d2+d3の範囲のデータに対するアクセス速度は、DRAMほどは高速ではないものの、HDDやSSDよりも高速となる。
すなわち、メモリ拡張サーバでは、データ量がd1からd1+d2の範囲のデータについてのアクセス速度が、通常サーバよりも若干劣ることとなる。一方で、メモリ拡張サーバでは、データ量がd1+d2からd1+d2+d3の範囲のデータに対するアクセス速度が、通常サーバよりも優れた速度となる。
メモリ拡張サーバでは、データ量がd1+d2+d3を超過した場合には、超過した範囲にあるデータについては、主記憶装置(DRAMとDCPM)の容量だけでは対処できないので、HDDの一部にデータをスワップアウトすることとなる。したがって、メモリ拡張サーバでは、d1+d2+d3を超過したデータについてのアクセス速度が低速となる。
このようにメモリ拡張サーバは、通常サーバよりも広範囲のデータ量に亘って補助記憶装置へのスワップアウトが生じないので、データ量が大幅に増大した場合でもアクセス速度を担保することができる。
すなわち、メモリ拡張サーバは、イベントによりデータ量が大幅に増大した場合でもサービスにおける処理性能の極端な低下を起こさずに、サービスの提供を可能とし、サービスの信頼性を向上させることができる。
また、メモリ拡張サーバは、DRAMに替えてDCPMを搭載して主記憶装置を拡張しているので、DRAMの搭載量が少ない。そのため、メモリ拡張サーバは、データ量が小さい範囲ではデータに対するアクセス速度が通常サーバと同等または劣っている。したがって、情報処理システム100は、通常時には通常サーバをブローカーとして運用し、イベントの発生に関連してメモリ拡張サーバをブローカーとして運用可能とすることで、通常時におけるアクセス速度の低下(処理速度の劣化)を抑止している。
次にプロデューサーとして機能するサーバとブローカーとして機能するサーバとコンシューマーとして機能するサーバの機能について説明する。図6は、情報処理システムの機能を示すブロック図である。
なお、ここではプロデューサーとして機能するサーバとしてサーバ200、ブローカーとして機能するサーバとしてサーバ300、コンシューマーとして機能するサーバとしてサーバ500を代表として用いて説明する。
サーバ200は、プロデューサー200aと、記憶部200bを有する。プロデューサー200aは、主記憶装置に記憶されたプログラムをCPUが実行することで実現される。記憶部200bには、主記憶装置や補助記憶装置の記憶領域が用いられる。
プロデューサー200aは、割り当てられたサービス(具体的には、サービスA)のデータ700を収集し、サービスAのブローカーとして運用中のサーバに取得したデータ700を送信する。記憶部300bは、プロデューサーが担当する処理(プロデューサー機能を実現するため)に必要な各種情報を記憶する。
サーバ300は、ブローカー300aと、記憶部300bを有する。ブローカー300aは、主記憶装置に記憶されたプログラムをCPU301が実行することで実現される。記憶部300bには、主記憶装置や補助記憶装置の記憶領域が用いられる。
ブローカー300aは、割り当てられたサービスのデータ700を、サービスAのプロデューサーとして運用中のサーバから取得する。ブローカー300aは、取得したデータ700を記憶部300bのキュー300cにインキュー(格納)する。ブローカー300aは、サービスAのコンシューマーとして運用中のサーバからの要求に応じてキュー300cからデータ700をデキューし、デキューしたデータ700をサービスAのコンシューマーとして運用中のサーバに送信する。
記憶部300bは、ブローカーが担当する処理に必要な各種情報を記憶する。記憶部300bは、データ700を格納するキュー300cを有する。
サーバ500は、コンシューマー500aと、記憶部500bを有する。コンシューマー500aは、主記憶装置に記憶されたプログラムをCPUが実行することで実現される。記憶部500bには、主記憶装置や補助記憶装置の記憶領域が用いられる。
コンシューマー500aは、割り当てられたサービス(具体的には、サービスA)のデータ700を、サービスAのブローカーとして運用中のサーバから取得する。コンシューマー500aは、取得したデータ700を用いてサービスAに応じた処理を実行する。記憶部500bは、コンシューマーが担当する処理に必要な各種情報を記憶する。
次に管理装置600の機能について説明する。図7は、管理装置の機能を示すブロック図である。
管理装置600は、構築マネージャー610と、記憶部620と、を有する。構築マネージャー610は、主記憶装置に記憶されたプログラムをCPUが実行することで実現される。記憶部620には、主記憶装置や補助記憶装置の記憶領域が用いられる。
構築マネージャー610は、情報処理システム100で提供する各サービスのサービス処理システムを管理する。構築マネージャー610は、サービス登録部611と、イベント登録部612と、監視部613と、計算部614と、構築部615と、を有する。
サービス登録部611は、情報処理システム100で提供するサービスとして新たに登録されたサービスを担当するサーバを決定し、記憶部620に格納する。例えば、サービス登録部611は、サービスが登録された場合、当該サービスのプロデューサーとして機能するサーバ、ブローカーとして機能するサーバ(すなわち、通常サーバとメモリ拡張サーバ)、コンシューマーとして機能するサーバを決定する。
イベント登録部612は、サービスにおいて行われるデータ量の増大が見込まれるイベントの発生日時を把握可能なイベント情報(例えば、イベント名、イベントの発生日時(開始時刻および終了時刻))の入力を取得する。イベント登録部612は、取得したイベント情報を記憶部620が管理するイベントテーブル621に登録する。
監視部613は、イベント情報に基づいて、イベントが行われるサービスについての処理を行うサービス処理システムの稼働状況(具体的には、ブローカーとして運用中のサーバのデータ受信量)を監視する監視処理を行う。監視部613は、イベントの開始時刻の所定時間前から監視処理を行う。ここで、データ受信量は、単位時間当たりに受信するデータのサイズであり、例えば、キロバイト/秒の単位で表される。
なお、監視部613は、該当のサーバにおけるデータ受信量の他にも、各サーバのデータ送信量、メモリ使用量、HDDへの書き込み量などの監視を行ってもよい。
計算部614は、サービスのブローカーとして運用するサーバを通常サーバからメモリ拡張サーバへと切り替える際に用いる条件である第1トリガー、メモリ拡張サーバから通常サーバへと切り替える際に用いる第2トリガーを算出し、設定する。例えば、計算部614は、通常サーバのメモリ量と、最大データ受信量とに基づいてサービスのブローカーとして運用するサーバを切り替える際に用いる第1トリガーおよび第2トリガーを設定する。最大受信データ量は、単位時間当たりの受信可能データ量の最大値である。最大受信データ量は、該当のサーバに対して予め計測される。第1トリガーは、サービスに対するリクエストの増加に伴う該当サーバのメモリ使用量の増加の検出に用いられる。第2トリガーは、サービスに対するリクエストの減少に伴う該当サーバのメモリ使用量の減少の検出に用いられる。
構築部615は、監視結果と、第1トリガーと第2トリガーとに基づいて、イベントが行われるサービスのブローカーとして運用するサーバを切り替える処理を行い、運用中の装置構成を新たな装置構成に再構築する。
データ量はイベントの所定時間前からイベントの開始に近づくにつれ次第に増大していき、イベントの終了後にデータ量は減少していく。そこで、例えば、構築部615は、イベントの開始時刻の所定時間前からイベントの終了時刻までの間に第1トリガーを満たした場合に、当該イベントが行われるサービスのブローカーとして運用するサーバを通常サーバからメモリ拡張サーバへと切り替える。第1トリガーの充足により、データ受信量が増加傾向にあり、スワップアウトの発生可能性が今後高まると推定されるためである。
そして、構築部615は、イベントの終了時刻後に第2トリガーを満たした場合に、当該イベントが行われるサービスのブローカーとして運用するサーバを通常サーバからメモリ拡張サーバへと切り替える。第2トリガーの充足により、データ受信量が減少傾向にあり、スワップアウトの発生可能性が今後低くなると推定されるためである。
記憶部620は、管理装置600で行われる各種処理に用いる情報を記憶する。具体的には、記憶部620は、イベントテーブル621を記憶する。イベントテーブル621は、例えば、サービス毎に設けられている。イベントテーブル621は、サービスにおけるイベントの発生日時を把握可能なイベント情報(イベント名、開始時刻、終了時刻)が登録されたテーブルである。
また、記憶部620は、各サーバの担当サービスが設定されたテーブル、各サービスのサービス処理システムの装置構成、およびサービス毎の第1トリガー、第2トリガーを記憶する。
次に、サービスのブローカーとして運用するサーバの切り替えに用いる第1トリガーおよび第2トリガーの一例について説明する。ここで、第2トリガーは、メモリ拡張サーバのアタッチ(attach)条件およびデタッチ(detach)条件に相当する。図8は、プロデューサーからブローカーへ送信するデータ量を増大させた実験の結果を示すグラフである。
なお、プロデューサーとして運用するサーバのCPUをXeon(登録商標)16コアCPU、送信データ量256GBとした条件下で実験を行っている。また、ブローカーとして運用するサーバを2台とし、プロデューサーから2台のサーバにデータを分散して送信するものとした。ブローカーとして機能する当該2台のサーバの主記憶装置(DRAM)を80GBとし、補助記憶装置(SSD)を400GBとした条件下で実験を行っている。また、ネットワークを10Gbpsイーサネット(登録商標)とした条件下で実験を行っている。
実験結果800は、プロデューサーとして運用中のサーバが送信限界値でデータを送り続けた場合のプロデューサーとして運用中のサーバのデータ送信量と、ブローカーとして運用中のサーバのデータ受信量、メモリ使用量、I/O書込量と、を示している。
系列801は、ブローカーとして運用中のサーバのデータ受信量の推移を示す。系列802は、プロデューサーとして運用中のサーバのデータ送信量の推移を示す。系列803は、ブローカーとして運用中のサーバのメモリ使用量の推移を示す。系列804は、ブローカーとして運用中のサーバのスワップ領域に対するI/O書込量の推移を示す。
実験結果800が示すように、プロデューサーとして運用中のサーバが送信限界でデータをブローカーとして運用中のサーバに送ると、主記憶装置上にデータが書き込まれるためメモリ使用量が増加していく。実験結果800では、メモリ使用量が約55%となった時点で、メモリ使用量の増加速度が緩くなり(増加の傾きが変化し)、それに伴い、ブローカーとして運用中のサーバのデータ受信量が減少している。これは、メモリ使用量が増加したことにより(主記憶装置の容量が不足してきたことにより)、データを処理できなくなり、送信側にデータ送信量を減らすようにWaitがかかることでデータ送信量が減り、その結果、データ受信量が減っていることを示している。つまりこの状態は、主記憶装置の容量不足により、スワップアウトが生じ得る状態すなわち、データへのアクセス速度が低下し得る状態であることを示している。
そこで、情報処理システム100では、管理装置600は、例えば、通常サーバの主記憶装置のメモリ消費量が約55%(通常サーバの主記憶装置の容量不足により、スワップアウトが生じ得る状態)となる前にメモリ拡張サーバに切り替えるように制御する。
メモリ消費量が約55%となる前にメモリ拡張サーバに切り替えるように、例えば、最大データ受信量で受信し続けた場合にメモリ消費量が33%消費される時間だけ連続してデータ受信量が最大データ受信量の近似値となったことを第1トリガーとする。そして、所定時間連続してデータ受信量が最大データ受信量の近似値とならなかったことを第2トリガーとする。
ここで、ブローカーとして運用中のサーバの単位時間当たりのデータ受信量をRxとし、ブローカーとして運用中のサーバの単位時間当たりの最大データ受信量をRxMaxとし、通常サーバの主記憶装置の容量をM(単位は例えばギガバイト)とする。また、0.95RxMaxを最大データ受信量の近似値の閾値とする。
このとき、計算部614は、例えば、0.95RxMax≦Rxとなる状態がM/3×RxMax秒間連続することを第1トリガーとして設定する。そして、計算部614は、Rx<0.95RxMaxの状態がM/3RxMax秒間連続することを第2トリガーとして設定する。
次に管理装置600による各サービスのサービス処理システムの管理について説明する。図9は、管理装置の処理の流れの例を示すシーケンス図である。ここではサービスAについての処理を行うサービスA処理システムの管理を代表として用いて説明するが、サービスBについても同様の手順となる。例えば、サービスA,Bそれぞれに対して、下記の処理が同じ時間帯に実行され得る。
[S1]サービス登録部611は、サービスAについてシステム管理者からサービスAの登録を受け付ける。例えば、システム管理者は、ネットワークに接続された管理端末900を操作して、サービスAの登録を管理装置600に入力できる。サービス登録部611は、サービスAの登録を受け付けると、サービスAを担当するサーバ(プロデューサーとして機能するサーバ、ブローカーとして機能するサーバ(通常サーバおよびメモリ拡張サーバ)、コンシューマーとして機能するサーバ)を決定する。
具体的には、サービス登録部611は、サーバ200をサービスAのプロデューサーとして機能するサーバと決定する。サービス登録部611は、サーバ300をサービスAのブローカーとして機能する通常サーバ、サーバ400をサービスAのブローカーとして機能するメモリ拡張サーバと決定する。サービス登録部611は、サーバ500をサービスAのコンシューマーとして機能するサーバと決定する。サービス登録部611は、サービスAに対して、プロデューサー、ブローカーおよびコンシューマーを該当のサーバに新たに配備してもよい。
[S2]サービス登録部611は、構築マネージャー610にサービスAが登録されたことを通知する。
[S3]構築マネージャー610は、計算部614にサービスAについてのトリガー(第1トリガーおよび第2トリガー)の設定を要求する。計算部614は、サービスAのブローカーを通常サーバからメモリ拡張サーバに切り替える際に用いる第1トリガーと、メモリ拡張サーバから通常サーバに切り替える際に用いる第2トリガーを計算により算出し、監視部613に設定する。
[S4]イベント登録部612は、サービスAについてのイベントA1のイベント情報を管理端末900から受け付ける。イベント登録部612は、サービスAについてのイベントA1のイベント情報をシステム管理者から受け付けると、イベントテーブル621にイベントA1のイベント情報を登録する。
[S5]イベント登録部612は、構築マネージャー610にイベントA1についてのイベント情報が登録されたことを通知する。
[S6]構築マネージャー610は、監視部613にサービスAについてのイベントA1が登録されたことを通知する。
[S7]監視部613は、イベントA1の発生に伴う監視処理の監視開始タイミングになったことを検出する。例えば、監視部613は、イベントA1の開始時刻から所定時刻前になった場合に監視開始タイミングになったことを検出する。監視部613は、監視開始タイミングになったことを検出すると、サービスAのブローカーとして機能するサーバ300のデータ通信量の監視を開始する。
[S8]監視部613は、サーバ切り替えのための第1トリガーの条件が満たされたことを示すトリガー通知を構築マネージャー610に通知する。
[S9]構築マネージャー610は、トリガー通知を受け付けると、サービスAに関するサーバ切り替えを指示する構築指示を、構築部615に通知する。
[S10]構築部615は、サービスAに対してサーバ400、すなわち、メモリ拡張サーバをアタッチする。例えば、構築部615は、サービスA用のブローカーをサーバ400に新たに配備してもよい。また、構築部615は、データの送信先をサーバ400に変更する指示を、サーバ200のプロデューサーに指示してもよい。あるいは、構築部615は、当該プロデューサーからデータを受信してサーバ300に転送する負荷分散装置などの通信装置に、当該データの転送先としてサーバ400を追加する指示を送信することも考えられる。
[S11]構築部615は、サービスAに対してサーバ300、すなわち、通常サーバをデタッチする。例えば、構築部615は、サーバ300におけるサービスA用のブローカーを停止させてもよい。また、構築部615は、サーバ200のプロデューサーからデータを受信してサーバ300,400に転送する通信装置から、当該データの転送先としてサーバ300を削除する指示を送信することも考えられる。
[S12]構築マネージャー610は、イベントA1の開始時刻に達したことを検出する。
[S13]監視部613は、イベントA1の完了時刻に達したことを検出すると、サービスAのブローカーとして機能するサーバ400のデータ通信量の監視を開始する。
[S14]監視部613は、サーバ切り替えのための第2トリガーの条件が満たされたことを示すトリガー通知を構築マネージャー610に通知する。
[S15]構築マネージャー610は、トリガー通知を受け付けると、サービスAに関するサーバ切り替えを指示する構築指示を、構築部615に通知する。
[S16]構築部615は、サービスAに対してサーバ300、すなわち、通常サーバをアタッチする。例えば、構築部615は、サービスA用のブローカーをサーバ300に新たに配備してもよい。また、構築部615は、データの送信先をサーバ300に変更する指示を、サーバ200のプロデューサーに指示してもよい。あるいは、構築部615は、当該プロデューサーからデータを受信してサーバ300に転送する通信装置に、当該データの転送先としてサーバ300を追加する指示を送信することも考えられる。
[S17]構築部615は、サービスAに対してサーバ400、すなわち、メモリ拡張サーバをデタッチする。例えば、構築部615は、サーバ400におけるサービスA用のブローカーを停止させてもよい。また、構築部615は、サーバ200のプロデューサーからデータを受信してサーバ300,400に転送する通信装置から、当該データの転送先としてサーバ400を削除する指示を送信することも考えられる。
[S18]構築マネージャー610は、イベントA1が完了したことをイベント登録部612に通知する。
[S19]イベント登録部612は、構築マネージャー610からイベントA1が完了したことの通知を受け付けると、イベントA1が完了したことをサービス登録部611に通知する。
[S20]サービス登録部611は、イベント登録部612からイベントA1が完了したことの通知を受け付けると、イベントA1が完了したことを管理端末900に通知する。
次に監視部613および構築部615によって実行される監視処理の手順について説明する。図10は、監視処理の例を示すフローチャートである。監視処理は、サービスにおいてデータ量の増大が見込まれるイベントが発生する場合に行われる処理である。監視処理は、イベントが発生するサービスについての処理を実行するサービス処理システムを監視し、当該サービスのブローカーとして運用中のサーバを、通常サーバまたはメモリ拡張サーバに切り替える処理である。なお、ここではサービスAのイベントA1が発生する場合における監視処理を例として用いて説明する。例えば、下記の手順は、ステップS7~S11およびステップS13~S17に相当する。
[S30]監視部613は、サービスA(サービスA処理システム)のブローカーとして運用中のサーバ、すなわち通常サーバのデータ通信量を監視する。
[S31]監視部613は、該当のサーバにおいて閾値以上のデータ受信量が所定時間以上継続しているか否かを判定する。すなわち、監視部613は、計算部614によって設定された第1トリガーを充足したか否かを判定する。
監視部613は、閾値以上のデータ受信量が所定時間以上継続していると判定した場合にステップS32に進み、閾値以上のデータ受信量が所定時間以上継続していないと判定した場合にステップS30に進む。
[S32]構築部615は、サービスAのブローカーとして運用するサーバを、通常サーバからメモリ拡張サーバに切り替える処理を行う。すなわち、構築部615は、サービスA処理システムを構成する装置構成を再構築する処理を行う。
[S33]監視部613は、イベント終了(イベントA1の終了時刻となる)まで待機する。
[S34]監視部613は、サービスAのブローカーとして運用中のサーバ、すなわちメモリ拡張サーバのデータ通信量を監視する。
[S35]監視部613は、該当のサーバにおいて閾値未満のデータ受信量の受信が所定時間以上継続しているか否かを判定する。すなわち、監視部613は、計算部614によって設定された第2トリガーを充足したか否かを判定する。
監視部613は、閾値未満のデータ受信量の受信が所定時間以上継続していると判定した場合にステップS36に進み、閾値未満のデータ受信量の受信が所定時間以上継続していないと判定した場合にステップS34に進む。
[S36]構築部615は、サービスAのブローカーとして運用するサーバを、メモリ拡張サーバから通常サーバに切り替える処理を行う。そして、監視部613および構築部615は、監視処理を終了する。
なお、監視部613は、ステップS30,S31を繰り返している間に、ステップS32を実行せずに、イベント終了時刻に達した場合は、監視処理を終了してよい。
サーバ400は、サービスBのブローカーとして機能させることもできる。例えば、管理装置600は、サーバ400をサービスAのブローカーとして機能させている間に、サービスBに対してサーバ400をアタッチし、サーバ400をサービスA,B両方のブローカーとして機能させてもよい。あるいは、管理装置600は、サービスAに対してサーバ400をデタッチした後に、サーバ400をサービスBにアタッチしてもよい。このように、メモリ拡張サーバをサービスの負荷に応じて共用する柔軟な運用を行える。
第2の実施の形態の情報処理システム100によれば、サービスの負荷上昇に伴って、メモリ拡張サーバをアタッチすることで、通常サーバで発生するデータのスワップアウトを回避し、データに対するアクセス速度の低下を抑制できる。
また、予め予期できる突発的なサービスの負荷上昇の際に、サービス性能の極端な低下を起こさずに、サービスを提供可能になる。更に、メモリ拡張サーバを複数のサービスやイベントで共用可能であり、各サーバの稼働率が低下することを抑えられる。これにより、ユーザに提供されるサービスの信頼性を向上できる。
なお、第1の実施の形態の情報処理は、処理部42にプログラムを実行させることで実現できる。また、第2の実施の形態の情報処理は、管理装置600を含む各サーバのCPUにプログラムを実行させることで実現できる。
プログラムは、コンピュータ読み取り可能な記録媒体に記録できる。例えば、プログラムを記録した記録媒体を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体に記録されたプログラムまたは他のコンピュータから受信したプログラムを、RAMなどの記憶装置に格納し(インストールし)、当該記憶装置からプログラムを読み込んで実行してもよい。
以上の第1,第2の実施の形態を含む実施形態に関し、更に以下の付記を開示する。
(付記1) 主記憶装置として使用される第1メモリと、前記第1メモリに対するスワップ領域を備えており前記第1メモリよりもアクセス速度が低速である第2メモリとを有する第1情報処理装置、および、主記憶装置として使用される第3メモリとアクセス速度が前記第3メモリよりも低速かつ前記第2メモリよりも高速であり主記憶装置として使用される第4メモリとを有し、前記第3メモリと前記第4メモリとの容量の合計が前記第1メモリの容量よりも大きい第2情報処理装置と通信する通信部と、
前記通信部を介して、前記第1情報処理装置が第3情報処理装置から受信するデータ量を取得し、前記データ量に基づいて前記第1メモリの使用量の増加を検出し、前記第1メモリの使用量の増加に応じて前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う処理部と、
を有する管理装置。
(付記2) 前記処理部は、前記データ量が第1閾値以上である時間が第2閾値に達すると、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
付記1記載の管理装置。
(付記3) 前記処理部は、前記第1メモリの容量と前記第1情報処理装置による単位時間当たりの受信可能データ量の最大値とに基づいて、前記第2閾値を計算する、
付記2記載の管理装置。
(付記4) 前記データ量の監視対象のイベントの開始時刻を示す情報を記憶する記憶部を有し、
前記処理部は、前記記憶部に記憶された前記情報に基づいて、前記開始時刻よりも前に、前記データ量の取得を開始する、
付記1記載の管理装置。
(付記5) 前記処理部は、前記第3情報処理装置で実行される複数のサービスのうちの第1サービスから前記第1情報処理装置が受信する前記データ量を取得し、前記データ量に基づく前記第1メモリの使用量の増加に応じて前記第1サービスによるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
付記1記載の管理装置。
(付記6) 前記処理部は、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行った後に、前記第2情報処理装置が前記第3情報処理装置から受信する第1データ量を取得し、前記第1データ量に基づいて前記第3メモリおよび前記第4メモリの使用量の減少を検出し、前記第3メモリおよび前記第4メモリの使用量の減少に応じて前記第3情報処理装置によるデータの送信先を前記第2情報処理装置から前記第1情報処理装置に切り替える制御を行う、
付記1記載の管理装置。
(付記7) コンピュータに、
主記憶装置として使用される第1メモリと、前記第1メモリに対するスワップ領域を備えており前記第1メモリよりもアクセス速度が低速である第2メモリとを有する第1情報処理装置、および、主記憶装置として使用される第3メモリとアクセス速度が前記第3メモリよりも低速かつ前記第2メモリよりも高速である、主記憶装置として使用される第4メモリとを有し、前記第3メモリと前記第4メモリとの容量の合計が前記第1メモリの容量よりも大きい第2情報処理装置と通信し、
前記第1情報処理装置が第3情報処理装置から受信するデータ量を取得し、
前記データ量に基づいて前記第1メモリの使用量の増加を検出し、
前記第1メモリの使用量の増加に応じて前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
処理を実行させるプログラム。
(付記8) 前記制御では、前記データ量が第1閾値以上である時間が第2閾値に達すると、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
付記7記載のプログラム。
(付記9) 前記コンピュータに更に、前記第1メモリの容量と前記第1情報処理装置による単位時間当たりの受信可能データ量の最大値とに基づいて、前記第2閾値を計算する、
処理を実行させる付記8記載のプログラム。
(付記10) 前記コンピュータに更に、前記データ量の監視対象のイベントの開始時刻を示す情報を記憶する記憶部に記憶された前記情報に基づいて、前記開始時刻よりも前に、前記データ量の取得を開始する、
処理を実行させる付記7記載のプログラム。
(付記11) 前記取得では、前記第3情報処理装置で実行される複数のサービスのうちの第1サービスから前記第1情報処理装置が受信する前記データ量を取得し、
前記制御では、前記データ量に基づく前記第1メモリの使用量の増加に応じて前記第1サービスによるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
付記7記載のプログラム。
(付記12) 前記コンピュータに更に、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行った後に、前記第2情報処理装置が前記第3情報処理装置から受信する第1データ量を取得し、前記第1データ量に基づいて前記第3メモリおよび前記第4メモリの使用量の減少を検出し、前記第3メモリおよび前記第4メモリの使用量の減少に応じて前記第3情報処理装置によるデータの送信先を前記第2情報処理装置から前記第1情報処理装置に切り替える制御を行う、
処理を実行させる付記7記載のプログラム。
1 情報処理システム
10 第1情報処理装置
11 第1メモリ
12 第2メモリ
20 第2情報処理装置
21 第3メモリ
22 第4メモリ
30 第3情報処理装置
31 データ
40 第4情報処理装置
41 通信部
42 処理部

Claims (7)

  1. 主記憶装置として使用される第1メモリと、前記第1メモリに対するスワップ領域を備えており前記第1メモリよりもアクセス速度が低速である第2メモリとを有する第1情報処理装置、および、主記憶装置として使用される第3メモリとアクセス速度が前記第3メモリよりも低速かつ前記第2メモリよりも高速であり主記憶装置として使用される第4メモリとを有し、前記第3メモリと前記第4メモリとの容量の合計が前記第1メモリの容量よりも大きい第2情報処理装置と通信する通信部と、
    前記通信部を介して、前記第1情報処理装置が第3情報処理装置から受信するデータ量を取得し、前記データ量に基づいて前記第1メモリの使用量の増加を検出し、前記第1メモリの使用量の増加に応じて前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う処理部と、
    を有する管理装置。
  2. 前記処理部は、前記データ量が第1閾値以上である時間が第2閾値に達すると、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
    請求項1記載の管理装置。
  3. 前記処理部は、前記第1メモリの容量と前記第1情報処理装置による単位時間当たりの受信可能データ量の最大値とに基づいて、前記第2閾値を計算する、
    請求項2記載の管理装置。
  4. 前記データ量の監視対象のイベントの開始時刻を示す情報を記憶する記憶部を有し、
    前記処理部は、前記記憶部に記憶された前記情報に基づいて、前記開始時刻よりも前に、前記データ量の取得を開始する、
    請求項1記載の管理装置。
  5. 前記処理部は、前記第3情報処理装置で実行される複数のサービスのうちの第1サービスから前記第1情報処理装置が受信する前記データ量を取得し、前記データ量に基づく前記第1メモリの使用量の増加に応じて前記第1サービスによるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
    請求項1記載の管理装置。
  6. 前記処理部は、前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行った後に、前記第2情報処理装置が前記第3情報処理装置から受信する第1データ量を取得し、前記第1データ量に基づいて前記第3メモリおよび前記第4メモリの使用量の減少を検出し、前記第3メモリおよび前記第4メモリの使用量の減少に応じて前記第3情報処理装置によるデータの送信先を前記第2情報処理装置から前記第1情報処理装置に切り替える制御を行う、
    請求項1記載の管理装置。
  7. コンピュータに、
    主記憶装置として使用される第1メモリと、前記第1メモリに対するスワップ領域を備えており前記第1メモリよりもアクセス速度が低速である第2メモリとを有する第1情報処理装置、および、主記憶装置として使用される第3メモリとアクセス速度が前記第3メモリよりも低速かつ前記第2メモリよりも高速である、主記憶装置として使用される第4メモリとを有し、前記第3メモリと前記第4メモリとの容量の合計が前記第1メモリの容量よりも大きい第2情報処理装置と通信し、
    前記第1情報処理装置が第3情報処理装置から受信するデータ量を取得し、
    前記データ量に基づいて前記第1メモリの使用量の増加を検出し、
    前記第1メモリの使用量の増加に応じて前記第3情報処理装置によるデータの送信先を前記第1情報処理装置から前記第2情報処理装置に切り替える制御を行う、
    処理を実行させるプログラム。
JP2020136787A 2020-08-13 2020-08-13 管理装置およびプログラム Withdrawn JP2022032710A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020136787A JP2022032710A (ja) 2020-08-13 2020-08-13 管理装置およびプログラム
US17/242,341 US11366595B2 (en) 2020-08-13 2021-04-28 Management apparatus and non-transitory computer-readable storage medium for storing program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020136787A JP2022032710A (ja) 2020-08-13 2020-08-13 管理装置およびプログラム

Publications (1)

Publication Number Publication Date
JP2022032710A true JP2022032710A (ja) 2022-02-25

Family

ID=80222860

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020136787A Withdrawn JP2022032710A (ja) 2020-08-13 2020-08-13 管理装置およびプログラム

Country Status (2)

Country Link
US (1) US11366595B2 (ja)
JP (1) JP2022032710A (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080172519A1 (en) * 2007-01-11 2008-07-17 Sandisk Il Ltd. Methods For Supporting Readydrive And Readyboost Accelerators In A Single Flash-Memory Storage Device
CN105009092A (zh) 2013-04-26 2015-10-28 株式会社日立制作所 存储系统
JP6203937B2 (ja) 2014-03-04 2017-09-27 株式会社日立製作所 計算機およびメモリ制御方法
US10268382B2 (en) * 2015-06-18 2019-04-23 Mediatek Inc. Processor memory architecture

Also Published As

Publication number Publication date
US11366595B2 (en) 2022-06-21
US20220050611A1 (en) 2022-02-17

Similar Documents

Publication Publication Date Title
US10387202B2 (en) Quality of service implementation in a networked storage system with hierarchical schedulers
US10798207B2 (en) System and method for managing application performance
EP3796168A1 (en) Information processing apparatus, information processing method, and virtual machine connection management program
US7457925B2 (en) Storage control method and system
US20130246715A1 (en) Communication apparatus, load distribution method, and recording medium
US9769081B2 (en) Buffer manager and methods for managing memory
US10795608B2 (en) Computer, communication driver, and communication control method
WO2012061941A1 (en) Managing memory across a network of cloned virtual machines
CN103109283A (zh) 在计算系统中以多个存储通道对存储缓冲器的分配
US20150331633A1 (en) Method and system of caching web content in a hard disk
JP4332126B2 (ja) キャッシング制御プログラム、キャッシング制御装置およびキャッシング制御方法
JP4474356B2 (ja) コンピュータシステムおよびストレージ仮想化装置
JP2019021185A (ja) 情報処理装置、情報処理システム、情報処理装置制御方法及び情報処理装置制御プログラム
US11687245B2 (en) Dynamic slice assignment in a distributed storage system
Wang et al. Provision of storage QoS in distributed file systems for clouds
US20150278114A1 (en) Control apparatus and control method
JP2022032710A (ja) 管理装置およびプログラム
CN111459402A (zh) 磁盘可控缓冲写方法、控制器、混合io调度方法及调度器
JP4872942B2 (ja) ストレージシステム、ストレージ装置、優先度制御装置および優先度制御方法
WO2023243099A1 (ja) アクセラレータオフロード装置およびアクセラレータオフロード方法
US20240104468A1 (en) Maintenance background task regulation using feedback from instrumented waiting points
JP2013196421A (ja) 仮想化システム、仮想サーバ、メモリ管理方法及びメモリ管理プログラム
CN109739625B (zh) 一种访问控制方法及电子设备
US20230141122A1 (en) Scheduling storage tasks
WO2024028926A1 (ja) アクセラレータオフロード装置、アクセラレータオフロード方法、および、プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230511

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20240129