(57)【要約】【課題】サーバ内で動作するプロセス間通信において、運用中のシステムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択可能とする。【解決手段】ＯＳからメモリ領域の割り当てを受けて処理を実行する複数のプロセスと、前記各プロセッサ間通信で送信パケットの最大パケット長と測定分割数を定義する環境ファイルと、前記環境ファイル内容を読み込み、動的に測定パケット長条件を変化させながら複数のプロトコルスタックごとのプロセス間通信処理性能を周期的に測定する動的通信性能測定部と、前記動的通信性能測定部の測定結果に基づき、パケットごとに最適なプロトコルスタックを選択し分配するプロトコル分配部とを備える。【選択図】図１
2010073129.tif 000002
【特許請求の範囲】
【請求項１】
ＯＳからメモリ領域の割り当てを受けて処理を実行する複数のプロセスと、
各プロセス間通信で送信パケットの最大パケット長と測定分割数を定義する環境ファイルと、
前記環境ファイル内容を読み込み、動的に測定パケット長条件を変化させながら複数のプロトコルスタックごとのプロセス間通信処理性能を周期的に測定する動的通信性能測定部と、
前記動的通信性能測定部の測定結果に基づき、パケットごとに最適なプロトコルスタックを選択し分配するプロトコル分配部と、
を備えたことを特徴とするサーバ。
【請求項２】
請求項１記載のサーバにおいて、
更に、前記プロセス間通信で使用するパケット長の分布からある範囲に収束した形となる傾向を分析評価する分析評価部と、
前記分析評価部で収集した分布で一番発生回数が多い送信データサイズだけを選択し、各プロトコルスタック毎に性能特性を測定し、使用するプロトコルスタックを選択するプロトコルスタック分配部と、
を備えたことを特徴とするサーバ。
【請求項３】
サーバ内部に設けられた複数のプロセス間で情報のやり取りをするサーバ内プロセス間通信方法であって、
各プロセス間送信パケットの最大パケット長と測定分割数を読み込むステップと、
最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で変化させた測定パケットパターンを計算するステップと、
前記測定パケットパターンの送信データ長毎に複数の異なるなるプロトコルスタックごとに動的に測定パケット長条件を変化させながら複数のプロトコルスタックごとのプロセス間通信処理性能を周期的に測定するステップと、
前記動的通信性能測定部の測定結果に基づき、送信パケットごとに最適なプロトコルスタックを選択、分配するステップと、
前記選択されたプロトコルスタックを用いてサーバ内プロセス間通信のパケット送信を実施するステップと、
を含むことを特徴とするサーバ内プロセス間通信方法。
【請求項４】
請求項３記載のサーバ内プロセス間通信方法において、
更に、前記プロセス間通信で使用するパケット長の分布からある範囲に収束した形になるプロセス間通信傾向を分析するステップと、
前記収束したパケット長に絞って複数のプロトコルスタックごとのプロセス間通信性能を測定するステップと、
前記動的に測定した測定結果と、前記収束したパケット長に絞った測定結果のいずれかを用いて使用プロトコルスタックを選択するステップと、
を含むことを特徴とするサーバ内プロセス間通信方法。
【請求項５】
請求項４記載のサーバ内プロセス間通信方法において、
前記プロセス間通信傾向を前記複数のプロセス毎に分析することを特徴とするサーバ内プロセス間通信方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバおよびサーバ内プロセス間通信方法に関し、特に、複数のプロトコルスタックを実装しているサーバ内でプロセス間通信方法として用いると好適である。
【背景技術】
【０００２】
一般にサーバ内部のプロセス間通信における通信路選択は、各プロセスが予め使用する通信路（プロトコルスタック）を指定し、固定状態で通信を行なっている。また、プロトコルスタックの差分により、性能差が生じる場合は、事前にベンチマーク測定などでどのプロトコルスタックの差分により性能差が発生する場合は、事前にベンチマーク測定などでどのプロトコルスタックを使用するのが最適なのかの傾向を把握し、固定的にプロトコルスタックを使用している。
【０００３】
先行文献としては、下記特許文献１が挙げられる。プリンタ、コピー、ファクシミリ、スキャナなどの各装置の機能を１つの筐体内に収納した複合機のアプリ開発用サーバ装置内において、生成された新規アプリケーションのプロセス内部で、コントロールサービスとのプロセス間通信の代行処理であるラッピング関数の呼び出し処理に関する発明が知られている。（例えば、特許文献１参照）
【特許文献１】特開２００３−２７１３８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のサーバ内プロセス間通信方法では、次のような問題点があった。
【０００５】
第１に、サーバプロセス間通信は、ドメインソケット、ＩＰｖ４，ＩＰｖ６ソケットなどの複数経路が存在しており、サーバで動作するＯＳ（Operating System）の選択肢が増え、またＯＳ種別によるプロトコルスタック実装方法も常に変化している。
【０００６】
第２に、事前にある程度のチューニングを行なうことは可能であるが、システムとしては、刻々とパケットの転送分布や量の状況は変化し、常にシステムとして最適なプロセス間通信の通信路を柔軟に選択することは困難であり、システムの最高性能を引き出すことは非常に困難となっているため、通信のボトルネックを発生させる可能性がある。そのためシステム全体としての最高性能を導かせていない原因になっていた。
【０００７】
本発明は、上記問題点を解消するためになされたもので、サーバ内で動作するプロセス間通信において運用中のシステムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択可能とすることを目的とする。
【課題を解決するための手段】
【０００８】
上記課題を解決するための第１の発明は、ＯＳからメモリ領域の割り当てを受けて処理を実行する複数のプロセスと、各プロセス間通信で送信パケットの最大パケット長と測定分割数を定義する環境ファイルと、前記環境ファイル内容を読み込み、動的に測定パケット長条件を変化させながら複数のプロトコルスタックごとのプロセス間通信処理性能を周期的に測定する動的通信性能測定部と、前記動的通信性能測定部の測定結果に基づき、パケットごとに最適なプロトコルスタックを選択し分配するプロトコル分配部とを備えている。
【０００９】
この第１の発明によれば、運用中システムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択できるため、最も効率の良い運用、最大性能の引き出しが可能なサーバを提供できる。
【００１０】
第２の発明は、第１の発明に記載のサーバにおいて、更に、前記プロセス間通信で使用するパケット長の分布からある範囲に収束した形となる傾向を分析評価する分析評価部と、前記分析評価部で収集した分布で一番発生回数が多い送信データサイズだけを選択し、各プロトコルスタック毎に性能特性を測定し、使用するプロトコルスタックを選択するプロトコルスタック分配部とを備えている。
【００１１】
この第２の発明によれば、プロセス間通信の大部分を占めるものがある場合、パケット長により、細かくプロトコルスタック選択するより効率が良いケースがあり、より効率よくプロセス間通信が行うことができるサーバを提供できる。
【００１２】
第３の発明は、サーバ内部に設けられた複数のプロセス間で情報のやり取りをするサーバ内プロセス間通信方法であって、各プロセス間送信パケットの最大パケット長と測定分割数を読み込むステップと、最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で変化させた測定パケットパターンを計算するステップと、前記測定パケットパターンの送信データ長毎に複数の異なるなるプロトコルスタックごとに動的に測定パケット長条件を変化させながら複数のプロトコルスタックごとのプロセス間通信処理性能を周期的に測定するステップと、前記動的通信性能測定部の測定結果に基づき、送信パケットごとに最適なプロトコルスタックを選択、分配するステップと、前記選択されたプロトコルスタックを用いてサーバ内プロセス間通信のパケット送信を実施するステップとを含んでいる。
【００１３】
この第３の発明によれば、運用中システムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択できるため、最も効率の良い運用、最大性能の引き出しが可能なサーバ内プロセス間通信方法を提供できる。
【００１４】
第４の発明は、第３の発明に記載のサーバ内プロセス間通信方法において、更に、前記プロセス間通信で使用するパケット長の分布からある範囲に収束した形になるプロセス間通信傾向を分析するステップと、前記収束したパケット長に絞って複数のプロトコルスタックごとのプロセス間通信性能を測定するステップと、前記動的に測定した測定結果と、前記収束したパケット長に絞った測定結果のいずれかを用いて使用プロトコルスタックを選択するステップとを含んでいる。
【００１５】
この第４の発明によれば、プロセス間通信の大部分を占めるものがある場合、パケット長により、細かくプロトコルスタック選択するより効率が良いケースがあり、より効率よくプロセス間通信が行うことができるサーバ内プロセス間通信方法を提供できる。
【００１６】
第５の発明は、第４の発明に記載のサーバ内プロセス間通信方法において、前記プロセス間通信傾向を前記複数のプロセス毎に分析するステップを更に含んでいる。
【００１７】
この第５の発明によれば、パケット分布は各送信プロセスにより分布が異なる場合がある。この場合を考慮し、プロセス毎の最適なプロトコルスタックを選択することが可能なサーバ内プロセス間通信方法を提供できる。
【発明の効果】
【００１８】
以上、本発明のサーバ及びサーバ内プロセス間通信方法によれば、運用中システムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択可能となり、その結果、サーバとしての最も効率の良い運用、最大性能の引き出しが可能となり、システム全体の性能劣化を防止することが可能となる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態について、図を参照しながら説明する。
【００２０】
図１は、本発明の一実施形態におけるサーバ内プロセス間通信の構成図である。同図において、サーバ１内にはコンピュータで実行しているプロセスＡ（２）とプロセスＢ（３）が存在している。
【００２１】
プロセスＡ（２）とプロセスＢ（３）は、ＯＳ（Operating System）からメモリ領域などの割り当てを受けて処理を実行しているプログラムであって、プロセス間通信は、コンピュータの動作においてプロセスＡ（２）とプロセスＢ（３）間で情報をやり取りする。
【００２２】
サーバ内プロセス間通信を司る通信制御部４内には、動的通信性能測定部４１、環境ファイル４２、周期タイマー部４３、測定結果評価部４４、分析評価部４５、プロトコルスタック分配部４６、及びデータベース部４７を備える。
【００２３】
動的通信性能測定部４１は、環境ファイル４２に定義してある最大パケット長、及び測定分割数を元に、各プロトコルスタック上で、パケット長の異なるパケットを送信し、その性能値を測定するものである。最大パケット長を測定分数で分割し、マトリックス（後述する図３）を作成していく。測定は、動的に変化させる。最大パケット長及び計測分割数を元に計測を実施するが、計測分割数を可変にすることで、動的測定が可能となる。その方法は、ｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で変化させたパターンで構成し、測定パターンを変化させながら、プロトコルスタックの詳細な性能値を収集する。
【００２４】
環境ファイル４２には、プロセッサ間通信の最大パケット長と測定分割数が格納されている。
【００２５】
周期タイマー部４３は、動作通信性能測定部４１と測定結果評価部４４を周期的に動作し評価するために、環境ファイル４２に付随してタイマー値を有する。
【００２６】
測定結果評価部４４は、上述する動的通信性能の測定の過程で、性能値の一番良いものを使用プロトコルスタックとして選択するための選択評価を行う。（後述する図３、図４の使用プロトコルスタック）の選択がこれに相当する。このプロセス間通信傾向から算出された静的なプロトコルスタック選択を行う。
【００２７】
分析評価部４５は、プロセス間通信傾向を分析評価する。プロセス間通信傾向とは、あるプロセス間通信で使用するパケット長の分布からある範囲に収束した形になる場合、傾向としてそこに着目すれば良いという考えで、傾向と読んでいる。周期処理よりパケットの分布分析（後述する図６は、分布を評価した一例である。）を実施する。収集した分布で一番発生回数（パケット送信依頼が最も多いパケット長区間）が多いものだけに着目し、その区間の一番多いパケット長にて各プロトコルスタックにて性能測定を実施し、使用するプロトコルスタック選択を実施する。
【００２８】
プロトコルスタック分配部４６は、お互いに関連を持ったプロトコル（コンピュータによるデータ通信を行うために必要な取り決め）の階層構造であるプロトコルスタックＸ（５）とプロトコルスタックＹ（６）をそれぞれの測定結果に基づき、送信パケット毎に最適なプロトコルスタックを選択、分配する機能を具備する。
【００２９】
データベース４７には、測定結果データ、分布評価データ、プロトコルスタック使用マトリックスなどが格納される。
【００３０】
ＯＳ（Operating System）７は、サーバ装置１の全体管理と、基本的なユーザ動作環境を提供するソフトウェアである。
【００３１】
図２は、本発明の一実施形態におけるサーバ内プロセス間通信のフローチャート（その１）である。この場合、評価パケットは、パケット長のパターンを作成して行う方法であり、全パターンを測定し終わるまで測定を繰り返す方法である。以下にサーバ内プロセス間通信の手順を、図１を用いて説明する。
【００３２】
Ｓ１．全パターン測定まで周期的に評価するための処理。
【００３３】
Ｓ２．周期処理を開始する。
【００３４】
Ｓ３．環境ファイル４２からプロセッサ間通信の最大パケット長と測定分割数を読み込む。
【００３５】
Ｓ４．読み込んだ最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で、変化させた測定パケットパターンを計算する。
【００３６】
Ｓ５．測定パケットパターンの送信データ長毎にプロトコルスタックＸとプロトコルスタックＹ上でパケット長の異なるパケットを送信する。
【００３７】
Ｓ６．測定パケットを受信する。
【００３８】
Ｓ７．測定パケットの送受信経過時間を計算し、その計算結果をデータベース４７へ格納する。全パターンを測定し終わるまで、Ｓ４〜Ｓ７の手順を繰り返す。
【００３９】
Ｓ８．適切なプロトコルスタックを選択し、データベース４７へプロトコルスタック使用マトリックスを格納する。
【００４０】
Ｓ９．プロセスＡまたはプロセスＢからプロセッサ間通信の送信要求を受ける。
【００４１】
Ｓ１０．送信要求のあったパケット長を解析し、データベース４７に格納された該当するパケット長の測定結果を検索に行く。
【００４２】
Ｓ１１．データベース４７から該当する送信データ長の使用プロトコルスタック情報を得る。
【００４３】
Ｓ１２．使用プロトコルスタックを用いてプロセス間送信を行う。
【００４４】
図３は、本発明による測定結果と使用プロトコルスタック選択マトリックスの一例（例１）である。
【００４５】
同図において、測定サンプルは、プロトコルスタックＡとプロトコルスタックＢ上で、パケット長の異なるパケット（８００バイト〜８０００バイト）を８００バイト刻みで送信し、その送信必要時間（２ｍｓｅｃ〜６ｍｓｅｃ）を測定した結果である。
【００４６】
測定結果評価部４４にて、使用プロトコルスタックは、送信必要時間の短い方を選択することになり、パケット長が８００バイト〜４０００バイトではプロトコルスタックＹを選択し、パケット長が４８００バイト〜８０００バイトではプロトコルスタックＸを選択することになる。
【００４７】
以上説明したとおり、例１では、最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で変化させたパターンで構成し、このパターンで計測をパターン分全て完了すると、一連のプロトコルスタック毎と、パケット長のマトリックスが形成される。
【００４８】
図４は、本発明による測定結果と使用プロトコルスタック選択マトリックスの一例（例２）である。例２は、ｎ＝２の場合を示す。２倍にすることにより、詳細なプロトコルスタック選択が可能となり、精度が向上する。
【００４９】
同図において、測定サンプルは、プロトコルスタックＡとプロトコルスタックＢ上で、パケット長の異なるパケット（４００バイト〜８０００バイト）を４００バイト刻みで送信し、送信必要時間（２ｍｓｅｃ〜６ｍｓｅｃ）を測定した結果である。
【００５０】
測定結果評価部４４にて、使用プロトコルスタックは、送信必要時間の短い方を選択することになり、パケット長が４００バイト〜４４００バイトではプロトコルスタックＹを選択し、パケット長が４８００バイト〜８０００バイトではプロトコルスタックＸを選択することになる。
【００５１】
以上説明したとおり、図３（例１）及び図４（例２）では、最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で変化させたパターンで構成し、このパターンで計測をパターン分全て完了すると、一連のプロトコルスタック毎と、パケット長のマトリックスが形成される。
【００５２】
図５は、本発明の一実施形態におけるサーバ内プロセス間通信のフローチャート（その２）である。このサーバ内プロセス間通信方法は、プロセス間通信のパケットに分布がある場合に、細かく評価することが無駄になる場合を考慮するもので、プロセス間通信のパケット長によりパターンを作成し、このパターンで統計情報を収集し、パケットを送信する方法である。以下にサーバ内プロセス間通信の手順を、図１を用いて説明する。
【００５３】
Ｓ１３．プロセスＡまたはプロセスＢからプロセッサ間通信の送信要求を受信する。
【００５４】
Ｓ１４．環境ファイル４２からプロセッサ間通信の最大パケット長と測定分割数を読み込む。既に内容を読み込み済であればスキップする。
【００５５】
Ｓ１５．読み込んだ最大パケット長とｎ×計測分割数Ｎ（ｎ：１以上の自然数でランダム算出）で、変化させた測定パケットパターンを計算する。しかしながら、データベース４７から読み込まれたプロセッサ間通信のパケットに分布がある場合は、細かく評価することが無駄になる場合があるため、パケット分布分析により求めた収集パケットパターンをデータベース４７より取り出して、測定パケットパターンを計算する。即ち、収集パケットパターンは、初期は環境ファイルから、その後はデータベースから読み出して計算する。
【００５６】
Ｓ１６．統計集計では、収集パケットパターンに従い、パケット長と数を集計し、その結果をデータベース４７へ格納する。
【００５７】
Ｓ１７．一番はじめは、パケット分布分析評価されていないため、プロトコルスタックは仮決めしておく。使用する統計情報を収集中に周期処理よりパケットの分布分析を実施する。
【００５８】
Ｓ１８．選択されたプロトコルスタックでパケットを送信する。
【００５９】
一方、上記Ｓ１３〜Ｓ１８とは別個に、Ｓ１９〜Ｓ２３にて周期処理を実施してパケット分布分析を行い、前述したプロセス間通信傾向を評価する。その結果、使用するプロトコルスタック選択を行いデータベース４７に格納する。
【００６０】
Ｓ１９．周期処理を開始する。
【００６１】
Ｓ２０．プロセッサ間通信のパケットに分布がある場合は、分析評価部４５にて、そのパケット分布を分析する。（図６は、分布の評価した一例である。）収集した分布で一番発生回数（パケット送信依頼が最も多いパケット長区間）が多いものだけに着目し、その区間の一番大きいパケット長にて各プロトコルスタックにて性能測定を実施する。（静的なプロトコルスタック選択と称する。）
Ｓ２１．その結果、図７にあるようなマトリックスが作成され、使用するプロトコルスタック選択を実施する。あるプロセッサ間通信で使用するパケット長の分布から、ある範囲に収束した形になる場合、傾向としてそこに着目すれば良いという考えで、傾向と呼んでいる。
【００６２】
収集した分布で一番発生回数が多いものが複数存在する場合は、プロトコルスタック選択不可としてプロトコルスタック選択測定を行わない。
【００６３】
Ｓ２２．前記Ｓ２１にて収集した分布で一番発生回数が多い送信データサイズを選択し、各プロトコルスタック毎に該当送信データサイズの送信必要時間を測定し、その送信必要時間の短い方のプロトコルスタックを選択し、データベース４７へ格納する。
【００６４】
Ｓ２３．最後に統計情報をクリアし、再度統計情報を収集し、周期処理の分析を待つ。
【００６５】
図６は、本発明の一実施形態におけるパケット分布の分析図である。同図において、横軸に送信データサイズを、縦軸に発生回数を示す。この場合は、送信データサイズが４０００バイトのものが最も発生回数が多い状態を示す。
【００６６】
図７は、図６に示すパケット分析に基づき使用プロトコルスタックの選択を示す図（例３）である。パケット分析結果より送信データサイズが４０００バイトのパケット送信の発生回数が多いことに鑑み、送信データサイズを４０００バイトに絞って、プロトコルスタックＸとプロトコルスタックＹでの送受信速度を測定した結果（４ｍｓｅｃと２ｍｓｅｃ）を示す。
【００６７】
以上説明したとおり、例３では、パケット分析に基づき使用プロトコルスタックの選択を行う選択収集した分布で一番発生回数が多いものだけに着目し、その区間の一番多いパケット長（この場合は４０００バイト）にて、各プロトコルスタックにて性能測定を実施するサーバ内プロセス間通信方法である。
【産業上の利用可能性】
【００６８】
本発明は、運用中システムのネットワーク性能に応じたサーバ上のプロセスが最速な通信路を選択可能となる。そのため、最も効率の良い運用、最大性能の引き出しが可能なサーバおよびサーバ内プロセス間通信方法に利用できる。
【図面の簡単な説明】
【００６９】
【図１】本発明の一実施形態におけるサーバ内プロセス間通信の構成図である。
【図２】本発明の一実施形態におけるサーバ内プロセス間通信のフローチャート（その１）である。
【図３】本発明による測定結果と使用プロトコルスタックセンタクマトリックスの一例（例１）である。
【図４】本発明による測定結果と使用プロトコルスタックセンタクマトリックスの一例（例２）である。
【図５】本発明の一実施形態におけるサーバ内プロセス間通信のフローチャート（その２）である。
【図６】本発明の一実施形態におけるパケット分布の分析図である。
【図７】図６に示すパケット分析に基づき使用プロトコルスタックの選択を示す図である。
【符号の説明】
【００７０】
１    サーバ装置
２    プロセスＡ
３    プロセスＢ
４    通信制御部
４１    動的通信性能測定部
４２    環境ファイル
４３    周期タイマー部
４４    測定結果評価部
４５    分析評価部
４６    プロトコルスタック分配部
４７    データベース
５    プロトコルスタックＸ
６    プロトコルスタックＹ
７    ＯＳ（Operating System）
【図１】
2010073129.tif 000003
【図２】
2010073129.tif 000004
【図３】
2010073129.tif 000005
【図４】
2010073129.tif 000006
【図５】
2010073129.tif 000007
【図６】
2010073129.tif 000008
【図７】
2010073129.tif 000009