(57)【特許請求の範囲】
【請求項１】
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
前記種別が前記特定種別である前記処理要求に基づいて前記スレッドにより実行される処理の実行速度である特定種別処理速度を取得する特定種別処理速度取得手段と、
を備え、
前記スレッド数比調整手段は、前記取得された特定種別処理速度が、予め設定された目標処理速度よりも小さい場合、前記スレッド数比を大きくし、一方、当該取得された特定種別処理速度が当該目標処理速度よりも大きい場合、前記スレッド数比を小さくするように構成されたサーバ装置。
【請求項２】
請求項１に記載のサーバ装置であって、
前記スレッドを識別するためのスレッド識別情報と、当該スレッドが処理可能な処理要求の種別を特定するための処理可能種別特定情報と、を対応付けたスレッド情報を記憶するスレッド情報記憶手段を備え、
前記処理要求出力手段は、前記取得された種別を特定するための処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッドを、当該取得された種別と対応付けられたスレッドとして特定するように構成され、
前記スレッド数比調整手段は、前記記憶されているスレッド情報を変更することにより、前記スレッド数比を調整するように構成されたサーバ装置。
【請求項３】
請求項１又は請求項２に記載のサーバ装置であって、
前記処理要求出力手段は、前記取得された種別と対応付けられたスレッドのいずれもが前記処理を実行中である場合、前記受け付けられた処理要求を一次的に記憶するとともに、当該種別と対応付けられたスレッドのいずれかが前記処理の実行を完了した場合に当該記憶されている処理要求を当該スレッドへ出力するように構成されたサーバ装置。
【請求項４】
請求項１乃至請求項３のいずれか一項に記載のサーバ装置であって、
前記種別が前記非特定種別である前記処理要求は、ある記憶装置に、他の記憶装置に記憶されているデータを複製したデータを書き込む旨を要求するバックアップ処理要求であるサーバ装置。
【請求項５】
請求項１乃至請求項４のいずれか一項に記載のサーバ装置であって、
前記スレッドが、前記処理の実行を完了した場合、前記クライアント装置へ、次の処理要求の送信を促す応答情報を送信するように構成されたサーバ装置。
【請求項６】
請求項１乃至請求項５のいずれか一項に記載のサーバ装置であって、
前記処理要求出力手段は、前記クライアント装置の位置を特定するためのアドレス情報、前記クライアント装置のユーザを識別するためのユーザ識別情報、及び、前記処理要求に含まれる前記処理を特定するための処理特定情報のうちの少なくとも１つに基づいて前記種別を取得するように構成されたサーバ装置。
【請求項７】
請求項１乃至請求項６のいずれか一項に記載のサーバ装置であって、
前記処理要求は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、又は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に従った情報であるサーバ装置。
【請求項８】
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成し、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力し、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整すると共に、
前記種別が前記特定種別である前記処理要求に基づいて前記スレッドにより実行される処理の実行速度である特定種別処理速度を取得し、
前記取得された特定種別処理速度が、予め設定された目標処理速度よりも小さい場合、前記スレッド数比を大きくし、一方、当該取得された特定種別処理速度が当該目標処理速度よりも大きい場合、前記スレッド数比を小さくする、
情報処理方法。
【請求項９】
サーバ装置に、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
前記種別が前記特定種別である前記処理要求に基づいて前記スレッドにより実行される処理の実行速度である特定種別処理速度を取得する特定種別処理速度取得手段と、
を実現させると共に、
前記スレッド数比調整手段は、前記取得された特定種別処理速度が、予め設定された目標処理速度よりも小さい場合、前記スレッド数比を大きくし、一方、当該取得された特定種別処理速度が当該目標処理速度よりも大きい場合、前記スレッド数比を小さくする、
ことを実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を複数のスレッドを用いて行うサーバ装置に関する。
【背景技術】
【０００２】
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するサーバ装置が知られている。この種のサーバ装置の一つは、非特許文献１に記載の通信プロトコルであるＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）に従った処理要求をクライアント装置から受信し、受信した処理要求に基づく処理を、いずれの処理も実行中でないスレッドに実行させる。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】S.  Shepler、外、「Network  File  System  (NFS)  version  4  Protocol」、RFC（Request  for  Comments）  3530、IETF（Internet  Engineering  Task  Force）、２００３年４月
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、処理要求は、ある記憶装置に、他の記憶装置に記憶されているデータを複製したデータを書き込む旨を要求するバックアップ処理要求、又は、現時点の実際の状態（例えば、気温、携帯電話機の位置、又は、預金残高等）を表すデータを記憶装置に書き込む旨を要求する即時処理要求等である。
【０００５】
ここで、バックアップ処理要求に基づく処理は、処理要求が送信された時点から比較的大きく遅れて実行されてもよいことが多い。一方、即時処理要求に基づく処理は、処理要求が送信された時点から可能な限り早期に実行されることが望ましい。
【０００６】
そこで、サーバ装置は、複数のスレッドの一部を、即時処理要求に基づく処理（即時処理）を専用に実行するスレッドとして設定するように構成されることが好適であると考えられる。しかしながら、この場合、即時処理要求がクライアント装置から送信されない期間が比較的長く継続し、且つ、バックアップ処理要求がクライアント装置から比較的多く送信されると、サーバ装置がバックアップ処理要求に基づく処理を実行する時期が無駄に遅くなってしまうという問題があった。
【０００７】
なお、この問題は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）等の他の通信プロトコルに従った処理要求を受信するサーバ装置においても同様に生じる。
【０００８】
このため、本発明の目的は、上述した課題である「特定の処理要求に基づく処理を十分に早期に実行できないこと、及び、それ以外の処理要求に基づく処理を実行する時期が無駄に遅くなってしまうこと」を解決することが可能なサーバ装置を提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態であるサーバ装置は、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から上記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、上記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
上記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
を備える。
【００１０】
また、本発明の他の形態である情報処理方法は、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成し、
クライアント装置から上記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、上記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力し、
上記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整する方法である。
【００１１】
また、本発明の他の形態であるプログラムは、
サーバ装置に、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から上記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、上記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
上記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
を実現させるためのプログラムである。
【発明の効果】
【００１２】
本発明は、以上のように構成されることにより、特定の処理要求に基づく処理を十分に早期に実行し、且つ、それ以外の処理要求に基づく処理を実行する時期が無駄に遅くなることを防止することができる。
【図面の簡単な説明】
【００１３】
【図１】本発明の第１実施形態に係る情報処理システムの概略構成を表す図である。
【図２】本発明の第１実施形態に係るサーバ装置の概略構成を表す図である。
【図３】本発明の第１実施形態に係るサーバ装置の機能の概略を表すブロック図である。
【図４】本発明の第１実施形態に係るサーバ装置のＣＰＵが実行するプログラムを示したフローチャートである。
【図５】本発明の第１実施形態に係るサーバ装置のＣＰＵが実行するプログラムを示したフローチャートである。
【図６】本発明の第１実施形態に係るサーバ装置のＣＰＵが実行するプログラムを示したフローチャートである。
【図７】本発明の第２実施形態に係るサーバ装置の概略構成を表す図である。
【発明を実施するための形態】
【００１４】
以下、本発明に係る、サーバ装置、情報処理方法、及び、プログラム、の各実施形態について図１〜図７を参照しながら説明する。
【００１５】
＜第１実施形態＞
（構成）
図１に示したように、第１実施形態に係る情報処理システム１は、サーバ装置１０と、複数のクライアント装置２０ａ，２０ｂ，…と、を含む。サーバ装置１０、及び、クライアント装置２０ａ，２０ｂ，…は、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）網を構成する通信回線ＮＷを介して、互いに通信可能に接続されている。
【００１６】
サーバ装置１０は、ネットワーク接続ストレージ装置（ＮＡＳ；Ｎｅｔｗｏｒｋ  Ａｔｔａｃｈｅｄ  Ｓｔｏｒａｇｅ）である。なお、サーバ装置１０は、ＮＡＳ以外のファイルサーバ装置であってもよい。また、サーバ装置１０は、パーソナル・コンピュータ等の情報処理装置であってもよい。
【００１７】
サーバ装置１０は、図２に示したように、通信装置１１と、中央処理装置（ＣＰＵ；Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２と、メモリ１３と、ストレージ制御部１４と、ストレージ部１５と、を備える。通信装置１１、ＣＰＵ１２、メモリ１３、及び、ストレージ制御部１４は、バスを介して互いにデータを授受可能に接続されている。また、ストレージ制御部１４及びストレージ部１５も、バスを介して互いにデータを授受可能に接続されている。
【００１８】
通信装置１１は、通信回線ＮＷを介して、クライアント装置２０ａ，２０ｂ，…のそれぞれと互いに通信可能に接続されている。
ストレージ部１５は、記憶装置としてのハードディスク駆動装置（ＨＤＤ；Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）を備える。
【００１９】
ストレージ制御部１４は、ＣＰＵ１２からの書込指示に従って、ストレージ部１５にデータを書き込む（記憶させる）。また、ストレージ制御部１４は、ＣＰＵ１２からの読出指示に従って、ストレージ部１５に記憶されているデータを読み出す。
【００２０】
サーバ装置１０は、ストレージ部１５に記憶されているプログラムをＣＰＵ１２が実行することにより、後述する機能を実現するように構成されている。
【００２１】
クライアント装置２０ａは、パーソナル・コンピュータである。なお、クライアント装置２０ａは、携帯電話端末、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙｐｈｏｎｅ  Ｓｙｓｔｅｍ）、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄａｔａ  Ａｓｓｉｓｔａｎｃｅ、Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、カーナビゲーション端末、又は、ゲーム端末等であってもよい。
【００２２】
クライアント装置２０ａは、図示しないＣＰＵ、記憶装置（メモリ及びＨＤＤ）、入力装置（本例では、キーボード及びマウス等）及び出力装置（本例では、ディスプレイ等）を備える。クライアント装置２０ａは、記憶装置に記憶されているプログラムをＣＰＵが実行することにより、後述する機能を実現するように構成されている。
なお、クライアント装置２０ｂ，…もクライアント装置２０ａと同様の構成を有する。
【００２３】
（機能の概要）
サーバ装置１０は、予め設定されたスレッド数だけスレッドを生成する。ここで、スレッドは、処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行う機能を有する。各クライアント装置２０ａ，２０ｂ，…は、処理要求をサーバ装置１０へ送信する。
【００２４】
本例では、処理要求は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）に従った情報である。また、処理要求は、バックアップ処理要求、又は、即時処理要求である。バックアップ処理要求は、ある記憶装置に、他の記憶装置に記憶されているデータを複製したデータを書き込む旨を要求する情報である。即時処理要求は、現時点の実際の状態（例えば、気温、携帯電話機の位置、又は、預金残高等）を表すデータを記憶装置に書き込む旨を要求する情報ある。
【００２５】
ところで、バックアップ処理要求に基づく処理（バックアップ処理）は、大量のデータを記憶装置に書き込む処理であることが多い。従って、サーバ装置１０がバックアップ処理を実行している間、サーバ装置１０の負荷が過大となる。その結果、サーバ装置１０が、即時処理要求に基づく処理（即時処理）を早期に実行できない場合が生じる。
【００２６】
そこで、第１実施形態に係るサーバ装置１０は、バックアップ処理を実行するために使用するスレッド数を制限する。その結果、バックアップ処理を実行することによるサーバ装置１０の負荷を軽減できるので、即時処理を早期に実行することができる。
【００２７】
更に、サーバ装置１０は、即時処理の実行速度に基づいてスレッド数比を調整する。スレッド数比は、即時処理を実行可能なスレッドの数の、バックアップ処理を実行可能なスレッドの数に対する比である。これにより、即時処理の実行速度を目標値に近づけることができる。
【００２８】
（機能）
次に、サーバ装置１０の機能について、より具体的に説明する。
図３は、上記のように構成されたサーバ装置１０の機能を表すブロック図である。この機能は、サーバ装置１０のＣＰＵ１２が後述する図４〜図６に示したフローチャートにより表されるプログラム等を実行することにより、実現される。
【００２９】
サーバ装置１０の機能は、スレッド情報記憶部（スレッド情報記憶手段）３１と、処理要求出力部（処理要求出力手段）３２と、スレッド生成部（スレッド生成手段）３３と、設定情報記憶部３４と、特定種別処理速度取得部（特定種別処理速度取得手段）３５と、スレッド数比調整部（スレッド数比調整手段）３６と、を含む。
【００３０】
設定情報記憶部３４は、予め設定されたスレッド数と、予め設定された目標処理速度と、を記憶している。スレッド数は、スレッド生成部３３により生成されるスレッドの総数である。また、目標処理速度は、スレッド生成部３３により生成されたスレッドにより実行される即時処理の実行速度（特定種別処理速度）の目標値である。
【００３１】
スレッド情報記憶部３１は、スレッド生成部３３により生成された、各スレッドを識別するためのスレッド識別情報と、当該スレッドが処理可能な処理要求の種別を特定するための処理可能種別特定情報と、を対応付けたスレッド情報を記憶する。
【００３２】
本例では、処理可能種別特定情報は、第１の処理可能種別特定情報、又は、第２の処理可能種別特定情報である。第１の処理可能種別特定情報は、スレッドが処理可能な処理要求の種別として、即時処理要求に基づく処理の種別（「即時処理」）を特定するための情報である。第２の処理可能種別特定情報は、スレッドが処理可能な処理要求の種別として、すべての種別（「汎用処理」）を特定するための情報である。
【００３３】
即ち、第１の処理可能種別特定情報と対応付けられたスレッド識別情報により識別されるスレッドは、即時処理要求に基づく処理のみを実行可能なスレッド（即時処理用スレッドＴＩａ，…）である。また、第２の処理可能種別特定情報と対応付けられたスレッド識別情報により識別されるスレッドは、すべての処理要求（即ち、バックアップ処理要求、及び、即時処理要求の両方）に基づく処理を実行可能なスレッド（汎用スレッドＴＧａ，…）である。
【００３４】
なお、即時処理要求に基づく処理の種別である「即時処理」は、本明細書において、特定種別とも呼ばれる。また、バックアップ処理要求に基づく処理の種別である「バックアップ処理」は、本明細書において、非特定種別とも呼ばれる。なお、非特定種別は、複数の種別を含んでいてもよい。
【００３５】
スレッド生成部３３は、設定情報記憶部３４に記憶されているスレッド数だけスレッドを生成する。
処理要求出力部３２は、各クライアント装置２０ａ，２０ｂ，…から処理要求を受信する（受け付ける）。
【００３６】
処理要求出力部３２は、処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得する。本例では、処理要求出力部３２は、処理要求を送信してきたクライアント装置２０ａ，２０ｂ，…の位置を特定するためのアドレス情報（本例では、ＩＰアドレス）に基づいて処理要求の種別を取得する。具体的には、処理要求出力部３２は、ＩＰアドレスの範囲を表す情報と、処理要求の種別と、を対応付けた情報を予め記憶し、当該情報に基づいて処理要求の種別を取得する。
【００３７】
なお、処理要求出力部３２は、処理要求を送信してきたクライアント装置２０ａ，２０ｂ，…のユーザを識別するためのユーザ識別情報、又は、処理要求に含まれる、処理を特定するための処理特定情報（例えば、書き込み又は読み出し等のオペレーションを表す情報、若しくは、データのアクセス先を特定するための情報（ファイルパス等）等）等に基づいて処理要求の種別を取得してもよい。また、処理要求出力部３２は、アドレス情報、ユーザ識別情報、及び、処理特定情報の２つ以上を組み合わせた情報に基づいて処理要求の種別を取得してもよい。
【００３８】
処理要求出力部３２は、取得された種別を特定するための処理可能種別特定情報と対応付けて、スレッド情報記憶部３１に記憶されているスレッド識別情報により識別されるスレッドを、当該取得された種別と対応付けられたスレッドとして特定する。処理要求出力部３２は、スレッド生成部３３により生成されたスレッドのうちの、特定された（即ち、上記取得された種別と対応付けられた）スレッドへ、上記受信された処理要求を出力する。
【００３９】
このとき、処理要求出力部３２は、上記取得された種別と対応付けられたスレッドのいずれもが処理を実行中である（即ち、空きスレッドが存在しない）場合、上記受信された処理要求をキュー（待ち行列）に追加することにより一次的に記憶する。本例では、処理要求出力部３２は、取得された種別が「即時処理」である場合、受信された処理要求を、即時処理用キューＱＩに追加する。また、処理要求出力部３２は、取得された種別が「バックアップ処理」である場合、受信された処理要求を、バックアップ処理用キューＱＢに追加する。
【００４０】
また、処理要求出力部３２は、即時処理用キューＱＩに処理要求が存在する場合において、いずれかのスレッドが処理の実行を完了した場合、即時処理用キューＱＩから処理要求を取り出し、取り出した処理要求を当該スレッドへ出力する。
【００４１】
また、処理要求出力部３２は、バックアップ処理用キューＱＢに処理要求が存在する場合において、種別としての「バックアップ処理」と対応付けられたスレッドのいずれかが処理の実行を完了した場合、バックアップ処理用キューＱＢから処理要求を取り出し、取り出した処理要求を当該スレッドへ出力する。
【００４２】
スレッド生成部３３により生成された各スレッドＴＩａ，ＴＧａ，…は、受け付けた処理要求に基づく処理を行う。具体的には、各スレッドＴＩａ，ＴＧａ，…は、ストレージ制御部１４へ、書込指示、又は、読出指示を出力する。
【００４３】
また、各スレッドＴＩａ，ＴＧａ，…は、処理の実行を完了した場合、当該処理の基となった処理要求を送信してきたクライアント装置２０ａ，２０ｂ，…へ、次の処理要求の送信を促す応答情報を送信する。
【００４４】
特定種別処理速度取得部３５は、種別が「即時処理」（特定種別）である処理要求に基づいて、スレッド生成部３３により生成されたスレッドにより実行される処理の実行速度（特定種別処理速度）を取得する。本例では、特定種別処理速度取得部３５は、種別が「即時処理」（特定種別）である処理要求に基づいて、単位時間あたりにストレージ部１５に書き込まれたデータの量を特定種別処理速度として取得する。
【００４５】
スレッド数比調整部３６は、予め設定された調整周期が経過する毎に、スレッド数比を調整する。本例では、スレッド数比調整部３６は、特定種別処理速度取得部３５により取得された特定種別処理速度が、設定情報記憶部３４に記憶されている目標処理速度よりも小さい場合、スレッド数比を大きくする。一方、スレッド数比調整部３６は、特定種別処理速度取得部３５により取得された特定種別処理速度が、設定情報記憶部３４に記憶されている目標処理速度よりも大きい場合、スレッド数比を小さくする。
【００４６】
具体的には、スレッド数比調整部３６は、特定種別処理速度が目標処理速度よりも小さい場合、スレッド情報記憶部３１に記憶されている第２の処理可能種別特定情報の１つを第１の処理可能種別特定情報へ変更する。これにより、スレッド数比は大きくなる。なお、スレッド情報記憶部３１に記憶されている第２の処理可能種別特定情報が１つしか存在しない場合、スレッド数比調整部３６は、当該第２の処理可能種別特定情報を第１の処理可能種別特定情報へ変更しない。
【００４７】
一方、スレッド数比調整部３６は、特定種別処理速度が目標処理速度よりも大きい場合、スレッド情報記憶部３１に記憶されている第１の処理可能種別特定情報の１つを第２の処理可能種別特定情報へ変更する。これにより、スレッド数比は小さくなる。
【００４８】
このように、スレッド数比調整部３６は、スレッド情報記憶部３１に記憶されているスレッド情報を変更することにより、スレッド数比を調整する。
【００４９】
（作動）
次に、上述した情報処理システム１の作動について説明する。
先ず、クライアント装置２０ａが処理要求をサーバ装置１０へ送信する。
一方、サーバ装置１０は、サーバ装置１０の起動時に、設定情報記憶部３４に記憶されているスレッド数だけスレッドを生成する。
【００５０】
更に、サーバ装置１０のＣＰＵ１２は、図４にフローチャートにより示したプログラムを、スレッドの生成後に実行する。
具体的に述べると、サーバ装置１０は、クライアント装置２０ａ，２０ｂ，…から処理要求を受信する（受け付ける）まで待機する（ステップＳ１０１）。
【００５１】
そして、サーバ装置１０は、クライアント装置２０ａから処理要求を受け付けると、「Ｙｅｓ」と判定してステップＳ１０２へ進み、受け付けた処理要求の種別を取得する。次いで、サーバ装置１０は、空きスレッドが存在しているか否かを判定する（ステップＳ１０３）。
【００５２】
ここで、空きスレッドは、処理を実行中でないスレッドである。空きスレッドが存在している場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ１０４へ進み、ステップＳ１０２にて取得された種別が「即時処理」であるか否かを判定する。
【００５３】
取得された種別が「即時処理」である場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ１０５へ進み、空きスレッドの１つに、上記ステップＳ１０１にて受け付けられた処理要求に基づく処理を実行させる。そして、サーバ装置１０は、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０９の処理を繰り返し実行する。
【００５４】
一方、取得された種別が「バックアップ処理」である場合、サーバ装置１０は、ステップＳ１０４にて「Ｎｏ」と判定してステップＳ１０６へ進み、汎用スレッドが空きスレッドとして存在するか否かを判定する。
【００５５】
即ち、サーバ装置１０は、処理を実行中でなく、且つ、第２の処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッド（汎用スレッド）が存在するか否かを判定する。
【００５６】
汎用スレッドが空きスレッドとして存在する場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ１０７へ進み、空きスレッドとして存在する汎用スレッドの１つに、上記ステップＳ１０１にて受け付けられた処理要求に基づく処理を実行させる。そして、サーバ装置１０は、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０９の処理を繰り返し実行する。
【００５７】
一方、汎用スレッドが空きスレッドとして存在しない場合、サーバ装置１０は、ステップＳ１０６にて「Ｎｏ」と判定してステップＳ１０８へ進み、上記ステップＳ１０１にて受け付けられた処理要求をバックアップ処理用キューＱＢに追加する。そして、サーバ装置１０は、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０９の処理を繰り返し実行する。
【００５８】
また、空きスレッドが存在していない場合、サーバ装置１０は、ステップＳ１０３にて「Ｎｏ」と判定してステップＳ１０９へ進み、上記ステップＳ１０１にて受け付けられた処理要求をキューＱＩ，ＱＢに追加する。
【００５９】
具体的には、サーバ装置１０は、取得された種別が「バックアップ処理」である場合、当該処理要求をバックアップ処理用キューＱＢに追加し、一方、取得された種別が「即時処理」である場合、当該処理要求を即時処理用キューＱＩに追加する。そして、サーバ装置１０は、ステップＳ１０１へ戻り、ステップＳ１０１〜ステップＳ１０９の処理を繰り返し実行する。
【００６０】
また、サーバ装置１０のＣＰＵ１２は、図５にフローチャートにより示したプログラムを、スレッドの生成後に実行する。
具体的に述べると、サーバ装置１０は、いずれかのスレッドが処理の実行を完了するまで待機する（ステップＳ２０１）。
【００６１】
そして、サーバ装置１０は、いずれかのスレッドが処理の実行が完了すると、「Ｙｅｓ」と判定してステップＳ２０２へ進み、当該スレッドに、当該処理の基となった処理要求を送信してきたクライアント装置２０ａ，２０ｂ，…へ応答情報を送信させる。
【００６２】
次いで、サーバ装置１０は、即時処理用キューＱＩに処理要求が存在するか否かを判定する（ステップＳ２０３）。即時処理用キューＱＩに処理要求が存在する場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ２０４へ進み、即時処理用キューＱＩから処理要求を取り出す。
【００６３】
更に、サーバ装置１０は、取り出した処理要求に基づく処理を、上記スレッドに実行させる。そして、サーバ装置１０は、ステップＳ２０１へ戻り、ステップＳ２０１〜ステップＳ２０７の処理を繰り返し実行する。
【００６４】
一方、即時処理用キューＱＩに処理要求が存在する場合、サーバ装置１０は、ステップＳ２０３にて「Ｎｏ」と判定してステップＳ２０５へ進み、バックアップ処理用キューＱＢに処理要求が存在するか否かを判定する。
【００６５】
バックアップ処理用キューＱＢに処理要求が存在する場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ２０６へ進み、処理の実行が完了したスレッドが、第２の処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッド（汎用スレッド）であるか否かを判定する。
【００６６】
処理の実行が完了したスレッドが汎用スレッドである場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ２０７へ進み、バックアップ処理用キューＱＢから処理要求を取り出す。
【００６７】
更に、サーバ装置１０は、取り出した処理要求に基づく処理を、上記スレッドに実行させる。そして、サーバ装置１０は、ステップＳ２０１へ戻り、ステップＳ２０１〜ステップＳ２０７の処理を繰り返し実行する。
【００６８】
一方、処理の実行が完了したスレッドが汎用スレッドでない場合、サーバ装置１０は、ステップＳ２０６にて「Ｎｏ」と判定してステップＳ２０７の処理を実行することなくステップＳ２０１へ戻る。
【００６９】
また、バックアップ処理用キューＱＢに処理要求が存在しない場合も、サーバ装置１０は、ステップＳ２０５にて「Ｎｏ」と判定してステップＳ２０６，Ｓ２０７の処理を実行することなくステップＳ２０１へ戻る。
【００７０】
また、サーバ装置１０のＣＰＵ１２は、図６にフローチャートにより示したプログラムを、スレッドの生成後に実行する。
具体的に述べると、サーバ装置１０は、特定種別処理速度を取得する（ステップＳ３０１）。次いで、サーバ装置１０は、取得された特定種別処理速度が、設定情報記憶部３４に記憶されている目標処理速度よりも小さいか否かを判定する（ステップＳ３０２）。
【００７１】
特定種別処理速度が目標処理速度よりも小さい場合、サーバ装置１０は、「Ｙｅｓ」と判定してステップＳ３０３へ進み、スレッド情報記憶部３１に記憶されている第２の処理可能種別特定情報の１つを第１の処理可能種別特定情報へ変更する。
【００７２】
これにより、スレッド数比は大きくなる。即ち、汎用スレッドの数が減少するとともに、即時処理用スレッドの数が増加する。この結果、特定種別処理速度が大きくなる。即ち、即時処理要求に基づく処理を十分に早期に実行することができる。
【００７３】
一方、特定種別処理速度が目標処理速度よりも大きい場合、サーバ装置１０は、ステップＳ３０２にて「Ｎｏ」と判定してステップＳ３０４へ進み、スレッド情報記憶部３１に記憶されている第１の処理可能種別特定情報の１つを第２の処理可能種別特定情報へ変更する。
【００７４】
これにより、スレッド数比は小さくなる。即ち、汎用スレッドの数が増加するとともに、即時処理用スレッドの数が減少する。この結果、特定種別処理速度が小さくなる。その結果、バックアップ処理要求に基づく処理を実行する時期が無駄に遅くなることを防止することができる。
【００７５】
その後、サーバ装置１０は、ステップＳ３０５へ進み、予め設定された調整周期だけ待機する。そして、サーバ装置１０は、ステップＳ３０１へ戻り、ステップＳ３０１〜ステップＳ３０５の処理を繰り返し実行する。
【００７６】
このようにして、サーバ装置１０は、特定種別処理速度を目標処理速度に一致させるようにスレッド数比を調整する。
【００７７】
以上、説明したように、本発明の第１実施形態に係るサーバ装置１０によれば、スレッド数比を適切に調整することにより、種別が特定種別（本例では、「即時処理」）である処理要求（即ち、特定の処理要求）に基づく処理を十分に早期に実行することができるとともに、種別が非特定種別（本例では、「バックアップ処理」）である処理要求（特定の処理要求以外の処理要求）に基づく処理を実行する時期が無駄に遅くなることを防止することができる。
【００７８】
更に、第１実施形態に係るサーバ装置１０は、特定種別処理速度が目標処理速度よりも小さい場合、スレッド数比を大きくし、一方、特定種別処理速度が目標処理速度よりも大きい場合、スレッド数比を小さくするように構成されている。
【００７９】
これによれば、特定種別処理速度が目標処理速度よりも小さい場合、スレッド数比が大きくされる。従って、サーバ装置１０は、種別が特定種別である処理要求に基づく処理を、より多くのスレッドを用いて実行することができる。この結果、特定種別処理速度を高めることができる。
【００８０】
一方、特定種別処理速度が目標処理速度よりも大きい場合、スレッド数比が小さくされる。従って、サーバ装置１０は、種別が非特定種別である処理要求に基づく処理を、より多くのスレッドを用いて実行することができる。この結果、種別が非特定種別である処理要求に基づく処理の実行速度を高めることができる。
【００８１】
＜第２実施形態＞
次に、本発明の第２実施形態に係るサーバ装置について図７を参照しながら説明する。
第２実施形態に係るサーバ装置１００は、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成部（スレッド生成手段）１０１と、
クライアント装置から上記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、上記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力部（処理要求出力手段）１０２と、
上記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整部（スレッド数比調整手段）１０３と、
を備える。
【００８２】
これによれば、スレッド数比を適切に調整することにより、種別が特定種別である処理要求（即ち、特定の処理要求）に基づく処理を十分に早期に実行することができるとともに、種別が非特定種別である処理要求（特定の処理要求以外の処理要求）に基づく処理を実行する時期が無駄に遅くなることを防止することができる。
【００８３】
以上、上記実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成及び詳細に、本願発明の範囲内において当業者が理解し得る様々な変更をすることができる。
【００８４】
例えば、上記実施形態において、処理要求は、ＮＦＳに従った情報であったが、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に従った情報であってもよい。
【００８５】
また、上記実施形態において、処理要求は、記憶装置にデータを書き込む旨を要求する情報であったが、記憶装置からデータを読み出す旨を要求する情報であってもよい。また、処理要求は、所定の演算処理を実行する旨を要求する情報であってもよい。
【００８６】
なお、上記実施形態においてサーバ装置の各機能は、ＣＰＵがプログラム（ソフトウェア）を実行することにより実現されていたが、回路等のハードウェアにより実現されていてもよい。
【００８７】
また、上記実施形態においてプログラムは、記憶装置に記憶されていたが、コンピュータが読み取り可能な記録媒体に記憶されていてもよい。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００８８】
また、上記実施形態の他の変形例として、上述した実施形態及び変形例の任意の組み合わせが採用されてもよい。
【００８９】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のように記載され得るが、以下には限られない。
【００９０】
（付記１）
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
を備えるサーバ装置。
【００９１】
これによれば、スレッド数比を適切に調整することにより、種別が特定種別である処理要求（即ち、特定の処理要求）に基づく処理を十分に早期に実行することができるとともに、種別が非特定種別である処理要求（特定の処理要求以外の処理要求）に基づく処理を実行する時期が無駄に遅くなることを防止することができる。
【００９２】
（付記２）
付記１に記載のサーバ装置であって、
前記スレッドを識別するためのスレッド識別情報と、当該スレッドが処理可能な処理要求の種別を特定するための処理可能種別特定情報と、を対応付けたスレッド情報を記憶するスレッド情報記憶手段を備え、
前記処理要求出力手段は、前記取得された種別を特定するための処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッドを、当該取得された種別と対応付けられたスレッドとして特定するように構成され、
前記スレッド数比調整手段は、前記記憶されているスレッド情報を変更することにより、前記スレッド数比を調整するように構成されたサーバ装置。
【００９３】
（付記３）
付記１又は付記２に記載のサーバ装置であって、
前記処理要求出力手段は、前記取得された種別と対応付けられたスレッドのいずれもが前記処理を実行中である場合、前記受け付けられた処理要求を一次的に記憶するとともに、当該種別と対応付けられたスレッドのいずれかが前記処理の実行を完了した場合に当該記憶されている処理要求を当該スレッドへ出力するように構成されたサーバ装置。
【００９４】
（付記４）
付記１乃至付記３のいずれか一項に記載のサーバ装置であって、
前記種別が前記特定種別である前記処理要求に基づいて前記スレッドにより実行される処理の実行速度である特定種別処理速度を取得する特定種別処理速度取得手段を備え、
前記スレッド数比調整手段は、
前記取得された特定種別処理速度が、予め設定された目標処理速度よりも小さい場合、前記スレッド数比を大きくし、一方、当該取得された特定種別処理速度が当該目標処理速度よりも大きい場合、前記スレッド数比を小さくするように構成されたサーバ装置。
【００９５】
これによれば、特定種別処理速度が目標処理速度よりも小さい場合、スレッド数比が大きくされる。従って、サーバ装置は、種別が特定種別である処理要求に基づく処理を、より多くのスレッドを用いて実行することができる。この結果、特定種別処理速度を高めることができる。
【００９６】
一方、特定種別処理速度が目標処理速度よりも大きい場合、スレッド数比が小さくされる。従って、サーバ装置は、種別が非特定種別である処理要求に基づく処理を、より多くのスレッドを用いて実行することができる。この結果、種別が非特定種別である処理要求に基づく処理の実行速度を高めることができる。
【００９７】
（付記５）
付記１乃至付記４のいずれか一項に記載のサーバ装置であって、
前記種別が前記非特定種別である前記処理要求は、ある記憶装置に、他の記憶装置に記憶されているデータを複製したデータを書き込む旨を要求するバックアップ処理要求であるサーバ装置。
【００９８】
ところで、ある記憶装置に、他の記憶装置に記憶されているデータを複製したデータを書き込むバックアップ処理は、処理要求が送信された時点から比較的大きく遅れて実行されてもよいことが多い。従って、上述したサーバ装置において、種別が非特定種別である処理要求がバックアップ処理要求であることが好適である。
【００９９】
（付記６）
付記１乃至付記５のいずれか一項に記載のサーバ装置であって、
前記スレッドが、前記処理の実行を完了した場合、前記クライアント装置へ、次の処理要求の送信を促す応答情報を送信するように構成されたサーバ装置。
【０１００】
（付記７）
付記１乃至付記６のいずれか一項に記載のサーバ装置であって、
前記処理要求出力手段は、前記クライアント装置の位置を特定するためのアドレス情報、前記クライアント装置のユーザを識別するためのユーザ識別情報、及び、前記処理要求に含まれる前記処理を特定するための処理特定情報のうちの少なくとも１つに基づいて前記種別を取得するように構成されたサーバ装置。
【０１０１】
（付記８）
付記１乃至付記７のいずれか一項に記載のサーバ装置であって、
前記処理要求は、ＮＦＳ（Ｎｅｔｗｏｒｋ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）、又は、ＨＴＴＰ（ＨｙｐｅｒＴｅｘｔ  Ｔｒａｎｓｆｅｒ  Ｐｒｏｔｏｃｏｌ）に従った情報であるサーバ装置。
【０１０２】
（付記９）
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成し、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力し、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整する、情報処理方法。
【０１０３】
（付記１０）
付記９に記載の情報処理方法であって、
前記スレッドを識別するためのスレッド識別情報と、当該スレッドが処理可能な処理要求の種別を特定するための処理可能種別特定情報と、を対応付けたスレッド情報を記憶する記憶装置に、前記取得された種別を特定するための処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッドを、当該取得された種別と対応付けられたスレッドとして特定し、
前記記憶されているスレッド情報を変更することにより、前記スレッド数比を調整する、情報処理方法。
【０１０４】
（付記１１）
サーバ装置に、
処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を行うスレッドを、予め設定されたスレッド数だけ生成するスレッド生成手段と、
クライアント装置から前記処理要求を受け付けた場合、当該受け付けた処理要求の種別を取得し、前記生成されたスレッドのうちの当該取得された種別と対応付けられたスレッドへ、当該処理要求を出力する処理要求出力手段と、
前記種別の１つである特定種別と対応付けられたスレッドの数の、当該特定種別以外の種別である非特定種別と対応付けられたスレッドの数に対する比であるスレッド数比を調整するスレッド数比調整手段と、
を実現させるためのプログラム。
【０１０５】
（付記１２）
付記１１に記載のプログラムであって、
前記処理要求出力手段は、前記スレッドを識別するためのスレッド識別情報と、当該スレッドが処理可能な処理要求の種別を特定するための処理可能種別特定情報と、を対応付けたスレッド情報を記憶する記憶装置に、前記取得された種別を特定するための処理可能種別特定情報と対応付けて記憶されているスレッド識別情報により識別されるスレッドを、当該取得された種別と対応付けられたスレッドとして特定するように構成され、
前記スレッド数比調整手段は、前記記憶されているスレッド情報を変更することにより、前記スレッド数比を調整するように構成されたプログラム。
【産業上の利用可能性】
【０１０６】
本発明は、処理要求を受け付けるとともに当該受け付けた処理要求に基づく処理を複数のスレッドを用いて行う、ネットワーク接続ストレージ装置、ファイルサーバ装置、及び、ウェブサーバ装置等に適用可能である。
【符号の説明】
【０１０７】
１      情報処理システム
１０    サーバ装置
１１    通信装置
１２    ＣＰＵ
１３    メモリ
１４    ストレージ制御部
１５    ストレージ部
２０ａ，２０ｂ，…  クライアント装置
３１    スレッド情報記憶部
３２    処理要求出力部
３３    スレッド生成部
３４    設定情報記憶部
３５    特定種別処理速度取得部
３６    スレッド数比調整部
１００  サーバ装置
１０１  スレッド生成部
１０２  処理要求出力部
１０３  スレッド数比調整部
ＮＷ    通信回線
【図１】
0005494021.tif 000002
【図２】
0005494021.tif 000003
【図３】
0005494021.tif 000004
【図４】
0005494021.tif 000005
【図５】
0005494021.tif 000006
【図６】
0005494021.tif 000007
【図７】
0005494021.tif 000008