JP6377197B1 - スレッド数変動通信装置及びスレッド数変動通信プログラム - Google Patents

スレッド数変動通信装置及びスレッド数変動通信プログラム Download PDF

Info

Publication number
JP6377197B1
JP6377197B1 JP2017040151A JP2017040151A JP6377197B1 JP 6377197 B1 JP6377197 B1 JP 6377197B1 JP 2017040151 A JP2017040151 A JP 2017040151A JP 2017040151 A JP2017040151 A JP 2017040151A JP 6377197 B1 JP6377197 B1 JP 6377197B1
Authority
JP
Japan
Prior art keywords
threads
thread
cpu usage
usage rate
traffic volume
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
Application number
JP2017040151A
Other languages
English (en)
Other versions
JP2018147141A (ja
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.)
Mitsubishi Electric Information Systems Corp
Original Assignee
Mitsubishi Electric Information Systems Corp
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 Mitsubishi Electric Information Systems Corp filed Critical Mitsubishi Electric Information Systems Corp
Priority to JP2017040151A priority Critical patent/JP6377197B1/ja
Application granted granted Critical
Publication of JP6377197B1 publication Critical patent/JP6377197B1/ja
Publication of JP2018147141A publication Critical patent/JP2018147141A/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】CPU使用率、トラフィック量、1スレッド処理時間を考慮してスレッド数を決定しデータ送信することを課題とする。【解決手段】スレッド数変動通信装置は、ネットワークを使用してデータを送信するデータ送信部と、前記データ送信部がデータ送信するときに、少なくとも測定されたスレッド数毎のCPU使用率と、ネットワークの負荷に基づき最適スレッド数を決定する最適スレッド数決定部と、を備える。【選択図】図2

Description

この発明は、データ送信方法に関し、コンピュータが処理すべき情報処理量の単位であるスレッド数を決定する技術に関するものである。
多くのコンピュータシステムでは、ネットワークを使用したデータ送信を一般的に行っている。
Webシステムにおいては、多くの利用者からのリクエストに対して、できるだけ早く応答することが求められている。
大量のリクエストに対応するためには、同時に処理できるスレッド数を増やせばよい。しかし、同時に処理するスレッド数を増加させると、個々のリクエストに対する応答は遅くなってしまうという課題がある。
その解決方法の一つとして、最大スレッド数を定義して、データ送信スレッドを最大値まで増加させる制御方法が知られている。
このような制御方法をとるアプリケーションとして、例えばWebコンテナであるtomcatがある。
tomcatでは、リアルタイムのCPU使用率を考慮せず最大値を設定するので、動作時に必ずしもCPU使用率が適正値となっているとは限らず、データ送信サーバの性能を最大限引き出すことができない課題がある。
また、特許文献1(特開2010−231313号公報)では、CPU使用率の適正値を考慮した発明を公開している。しかし、この発明では、CPU使用率は考慮しているが、データ送信におけるトラフィック量を考慮していない。
データ送信で重要となる指標の一つは、トラフィック量であり、CPU使用率を考慮するだけでは十分ではない。
また、特許文献1は1スレッド処理時間についても考慮していないため、データ送信サーバの性能を最大限に引き出すことができず、利用者からの個々のリクエストに早く応答することができていないという課題がある。
特開2010−231313号公報
この発明は、少なくともCPU使用率と測定されたスレッド数毎のネットワークの負荷(以下、トラフィック量と言う)を考慮してスレッド数を決定しデータ送信することを課題とする。
この発明の一態様に係るスレッド数変動通信装置は、
ネットワークを使用してデータを送信するデータ送信部と、
前記データ送信部がデータ送信するときに、少なくともCPU使用率とトラフィック量に基づき最適スレッド数を決定する最適スレッド数決定部と、
を備える。
この発明のスレッド数変動通信装置によると、少なくともCPU使用率とトラフィック量を考慮したスレッド数を決定することができる。
実施の形態1、2、3におけるシステム全体構成図。 実施の形態1、2、3におけるスレッド数変動通信装置100の構成図。 実施の形態1、2におけるスレッド数変動通信装置100の処理の流れを示した図。 実施の形態1、2で測定した測定データファイルの一例を示した図。 実施の形態3におけるスレッド数変動通信装置100の運用での処理の流れを示した図。 実施の形態3で測定した測定データファイルの一例を示した図。 実施の形態3で測定した測定データファイルの一例を示した図。 実施の形態3で測定した測定データファイルの一例を示した図。
実施の形態1.
本実施の形態では、スレッド数変動通信装置100について説明する。
図1は、スレッド数変動通信装置100を含むシステム全体の構成図である。図1に示すように、スレッド数変動通信装置100は、隣接したネットワーク装置(図示せず)を経由しネットワーク300を介してデータ送信先装置200へデータを送信する。
ネットワーク装置とは例えば、スイッチングハブやルータで構成される。
データ送信先装置200は、1台以上のコンピュータである。
図2は、本実施の形態におけるスレッド数変動通信装置100の構成図を示した図である。
スレッド数変動通信装置100は、コンピュータであり、プロセッサ910、記憶装置920、通信インタフェース930といったハードウェアを備える。
またスレッド数変動通信装置100は、機能構成として、データ送信部101、スレッド数設定変更部102、CPUコア数取得部103、CPU使用率取得部104、トラフィック量取得部105、通信時間取得部106、スレッド処理時間算出部107、測定データファイル入出力部108、測定データファイル109、最適スレッド数決定部110、初期設定ファイル111とを備える。
以下の説明では、データ送信部101とスレッド数設定変更部102とCPUコア数取得部103とCPU使用率取得部104と通信時間取得部106とスレッド処理時間算出部107とトラフィック量取得部105と測定データファイル入出力部108と最適スレッド数決定部110とを、スレッド数変動通信装置100の「部」の機能という。スレッド数変動通信装置100の「部」の機能は、ソフトウェアで実現される。
また記憶部150は、記憶装置920で実現される。
記憶部150には、測定データファイル109および初期設定ファイル111が記憶されている。
プロセッサ910は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
プロセッサ910は、プロセッシングを行うIC(Integrated・Circuit)である。プロセッサ910は、具体的には、CPU(Central・Processing・Unit)である。
記憶装置920は、補助記憶装置921およびメモリ922を含む。補助記憶装置921は、具体的には、ROM(Read・Only・Memory)、フラッシュメモリ、または、HDD(Hard・Disk・Drive)である。メモリ922は、具体的には、RAM(Random・Access・Memory)である。記憶部150は、メモリ922により実現される。なお、記憶部150は、補助記憶装置921により実現されていてもよいし、補助記憶装置921とメモリ922の両方により実現されてもよい。
通信インタフェース930は、外部の装置と通信するためのインタフェースである。通信インタフェース930は、具体例としては、Ethernet(登録商標)、USB(Universal Serial Bus)、HDMI(登録商標,High−Definition Multimedia Interface)のポートである。
補助記憶装置921には、「部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ922にロードされ、プロセッサ910に読み込まれ、プロセッサ910によって実行される。補助記憶装置921には、OS(Operating・System)も記憶されている。OSの少なくとも一部がメモリ922にロードされ、プロセッサ910はOSを実行しながら、「部」の機能を実現するプログラムを実行する。
スレッド数変動通信装置100は、1つのプロセッサ910のみを備えていてもよいし、複数のプロセッサ910を備えていてもよい。複数のプロセッサ910が「部」の機能を実現するプログラムを連携して実行してもよい。
「部」の機能による処理の結果を示す情報、データ、信号値、および、変数値は、補助記憶装置921、メモリ922、または、プロセッサ910内のレジスタ又はキャッシュメモリに記憶される。なお、図2において、「部」の各部と記憶部150とを結ぶ矢印は、各部による処理の結果を記憶部150に記憶する、あるいは、記憶部150から情報を各部が読み出すことを表している。また、各部同士を結ぶ矢印は、制御の流れを表している。矢印の記載は一部省略しているものもある。
なお、情報が各部同士でメモリ922を介して授受されることを表すメモリ922と各部間の矢印については省略する。
「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ブルーレイ(登録商標)ディスク、DVD(Digital・Versatile・Disc)といった可搬記録媒体に記憶されてもよい。
なお、「部」の機能を実現するプログラムをスレッド数変動通信プログラムともいう。
スレッド数変動通信プログラムは、「部」として説明している機能を実現するプログラムである。また、スレッド数変動通信プログラムプロダクトと称されるものは、スレッド数変動通信プログラムが記録された記憶媒体および記憶装置であり、見た目の形式に関わらず、コンピュータ読み取り可能なプログラムをロードしているものである。
図1に示したデータ送信先装置200も、コンピュータであり、ハードウェアとしては、図2に示したスレッド数変動通信装置100と同様に、プロセッサ910、記憶装置920、通信インタフェース930といったハードウェアを備える。
スレッド数変動通信装置100の全体構成を、図2を使用して説明する。
データ送信部101は、例えばhttpを利用してデータを他コンピュータへ送信する部であり、1スレッドが1送信を実行する。また複数スレッドを同時に起動することで、通信の並行動作を実現することも可能である。
スレッド数設定変更部102は、データ送信部101が起動するスレッド数を設定・変更する部である。データ送信部101は、スレッド数設定変更部102の指示を受けて、起動可能なスレッド数を動的に変更する。
CPUコア数取得部103は、スレッド数変動通信装置100が動作するコンピュータのCPUコア数を取得する部である。例えばWindows(登録商標)の場合、Operating・System(以下、OSと言う)のsetコマンドを用いることでコア数を取得することができる。
CPU使用率取得部104は、スレッド数変動通信装置100が動作するコンピュータのCPU使用率を取得する部である。例えばWindows(登録商標)の場合、OSのtypeperfコマンドを用いることで取得することができる。
トラフィック量取得部105は、スレッド数変動通信装置100が動作するコンピュータのトラフィック量をリアルタイムに測定する部である。
ここでいうトラフィック量とは、スレッド数変動通信装置100からデータ送信先装置200に対してデータ送信を行う際に利用する経路において、スレッド数変動通信装置100と隣接するネットワーク装置間のトラフィック量のことを言う。
トラフィック量の測定方法は、Windows(登録商標)の場合、パフォーマンスモニタを用いること、またネットワークモニタを用いることで実現可能である。
通信時間取得部106は、データ送信部101で起動する全スレッドの処理時間を求める部である。
スレッド処理時間算出部107は、1スレッドの処理時間を計測する部である。
測定データファイル入出力部108は、測定データファイル109に対して入出力する部であり、ファイルの読込み、書込みを行う。
測定データファイル109は、スレッド数、CPU使用率、トラフィック量、および1スレッド処理時間を保存するデータベースである。測定データファイル109は、データベース以外のテキストファイルでも構わない。
最適スレッド数決定部110は、測定データファイル109に保存された情報に基づき最適なスレッド数を決定する部である。
初期設定ファイル111は、スレッド数の初期値をパラメータとして保存するデータベースである。初期設定ファイル111は、データベース以外のテキストファイルでも構わない。
本発明では、スレッド数決定方法として、次の3つの方法を示す。
方法1.トラフィック量を最大とするスレッド数を最適スレッド数として決定する方法
方法2.CPU使用率およびトラフィック量が所定の範囲内であり、1スレッド毎の処理時間を最小とするスレッド数を最適スレッド数として決定する方法
方法3.スレッド数変動通信装置が動作している間、CPU使用率およびトラフィック量が所定の範囲内となるスレッド数を維持する方法
実施の形態1では、方法1.トラフィック量を最大とするスレッド数を最適スレッド数として決定する方法について説明する。
方法1.トラフィック量を最大とするスレッド数を最適スレッド数として決定する方法は、スレッド数がCPUコア数に比べて増大し、個々のスレッド処理時間にアイドリングが発生して個々の処理時間は悪化するが、トラフィック量が最大となるため、総送信時間が最小となる方法である。
図3から図4を参照して、実施の形態1に係るスレッド数変動通信装置100の動作を説明する。
まず、図3においてスレッド数設定変更部102は、データ送信部101が初期値として起動するスレッド数を設定する(ステップS101)。ここでは、例として初期スレッド数を1とする。
スレッド数設定変更部102が、設定する初期値は、スレッド数変動通信装置100内に設定しておいてもよいし、初期設定ファイル111に設定し、この初期設定ファイル111から読み込ませるようにしてもよい。
次に、CPUコア数取得部103が、CPUコア数を取得する(ステップS102)。
次に、CPU使用率取得部104は、スレッド数変動通信装置100が動作するコンピュータのCPU使用率の測定を開始する(ステップS103)。
次に、トラフィック量取得部105は、スレッド数変動通信装置100が動作するコンピュータのトラフィック量の測定を開始する(ステップS104)。
次に、通信時間取得部106が、スレッド数変動通信装置100が動作するコンピュータのデータ送信開始時刻を取得する(ステップS105)。
次に、データ送信部101は、指定されたスレッド数でデータ送信処理を開始する(ステップS106)。
データの送信は、スレッド数変動通信装置100からデータ送信先装置200に対して行う。送信プロトコルや、テストデータのデータサイズは、所定のものを使用すればよい。
今回は、ステップS101で指定したスレッド数の値は1であるので、一つのスレッドでデータ送信を行う。
スレッド数が2の場合は、2つのスレッドを同時実行することで、データ送信を並行処理する。
すべてのスレッドのデータ送信が完了すると、通信時間取得部106は、データ送信終了時刻を取得する(ステップS107)。
次に、トラフィック量取得部105は、トラフィック量の測定を終了する(ステップS108)。
次に、CPU使用率取得部104は、スレッド数変動通信装置100が動作するコンピュータのCPU使用率の測定を終了する(ステップS109)。
次に、スレッド処理時間算出部107は、通信時間取得部106で測定した値(総和)をスレッド数で除算し、1スレッド処理時間(平均)を算出する(ステップS110)。
次に、測定データファイル入出力部108は、測定結果として、スレッド数、CPU使用率、トラフィック量、1スレッド処理時間を測定データファイル109に保存する(ステップS111)。
CPU使用率は、CPU使用率取得部104において測定開始から測定終了までに取得したCPU使用率の平均値とする。CPU使用率は平均値の代わりに最大値を利用することでもよい。また、複数CPU/複数コアの場合は、それぞれのCPU/コアの平均値を利用してもよいし、最大値を使用するようにしてもよい。
トラフィック量は、トラフィック量取得部105において測定開始から測定終了までに取得したトラフィック量の平均値とする。トラフィック量は平均値の代わりに最大値を利用することでもよい。
次に、スレッド数設定変更部102は、スレッド数を一定数加算する(ステップS112)。図3の例では、一定数を1としている。加算する前のスレッド数を、例えば1とすると、加算された結果スレッド数は2となる。
最適スレッド数決定部110は、終了判定を実施する(ステップS113)。
終了判定は、現在のスレッド数が所定のスレッド数より大きいかどうかで判定する。
所定の最終スレッド数を図3のように例えば500とすると、現在のスレッド数を、例えば2とすると、現在のスレッド数2は所定のスレッド数500より小さいので、判定結果はNoとなり、CPU使用率測定開始(ステップS103)に戻り、CPU使用率測定開始(ステップS103)以降の処理を繰り返す。
最適スレッド数決定部110の終了判定で使用する所定の最終スレッド数は、初期設定ファイル111に設定し、この初期設定ファイル111から読み込ませるようにしてもよいし、トラフィック量の最大値はCPUコア数に依存することから、CPUコア数取得部103で取得したCPUコア数を元に決めるようにしてもよい。
初期スレッド数1から最終スレッド数500になるまで処理を繰り返した後、現在のスレッド数が501なると、所定のスレッド数500より大きいので、判定結果はYesとなり、最適スレッド数決定処理を行う(ステップS114)。
最適スレッド数決定部110は、測定データファイル109に保存されたスレッド毎の測定結果から、トラフィック量が最大となるスレッド数を決定する(ステップS114)。
具体例として、ステップS114の処理を、図4を用いて説明する。
図4は、測定データファイル109の一例で、スレッド数が1から500までの値をとるときに、各スレッド数での測定結果を表にしたものである。
図4は、スレッド数、CPU使用率(%)、トラフィック量(Kbps)、1スレッド処理時間(秒)の列を持つ。
図4のトラフィック量の列を見ると、トラフィック量の最大値は92,000Kbpsであることがわかる。なお、このときのスレッド数は300であることがわかる。
以上により、最適スレッド数決定部110は、方法1.トラフィック量を最大とするスレッド数として、最適スレッド数を300に設定する。
トラフィック量を最大とするスレッド数を求める方法では、同じトラフィック量となるスレッド数が複数見つかる場合がある。この場合、CPU使用率の少ないスレッド数がより好ましいため、見つかったスレッド数の中で、CPU使用率が最小となるスレッド数を方法1.トラフィック量を最大とするスレッド数として、最適スレッド数に設定する。
前記方法1.トラフィック量の最大値で決定する方法の変形例として、トラフィック量の最大値との差が僅差であれば、よりスレッド数の少ないトラフィック量のスレッド数を最適スレッド数とすることも可能である。
図4では、スレッド数が300のとき、トラフィック量が最大の92,000Kbpsとなっている。しかし、このときのCPU使用率は100%となっており、トラフィック量は大きいがCPU使用率も高く、スレッド数変動通信装置100が動作するコンピュータとしては高負荷で逼迫している。このような場合には、所定の割合だけ少ないスレッド数を最適スレッド数として構成することがむしろ好ましい。
例えば、トラフィック量が最大となるスレッド数の3分の2のスレッド数を最適スレッド数とする方法とする。この場合、最適スレッド数は200となる。スレッド数200の場合のトラフィック量は、90,000Kbpsとなり、スレッド数300のときのスレッド数92,000Kbpsよりも2,000Kbps少なくなるが、CPU使用率は90%でCPU使用率には余裕を持たせることが可能となる。
このように本実施の形態によると、トラフィック量を最大とするスレッド数を提示する。これは、スレッド毎の処理時間を考慮する必要はなく、全体のトラフィック量が重要となる場合の最適解を提示することが可能となる。
実施の形態2.
実施の形態2では、実施の形態1の変形例として、方法2.CPU使用率およびトラフィック量が所定の範囲内であり、1スレッド毎の処理時間を最小とするスレッド数を最適スレッド数として決定する方法について説明する。
方法2.CPU使用率およびトラフィック量が所定の範囲内であり、1スレッド毎の処理時間を最小とするスレッド数を最適スレッド数として決定する方法は、スレッド数変動通信装置100が動作するコンピュータのCPU使用率、トラフィック量を一定範囲に保ちながら、個々のスレッドでの処理時間をできるだけ小さくするスレッド数に決定する方法である。
図3から図4を参照して、実施の形態2に係るスレッド数変動通信装置100の動作を説明する。
まず、図3のステップS101からステップS113までの処理は、実施の形態1と同じである。
初期スレッド数1から最終スレッド数500になるまで処理を繰り返した後、最適スレッド数決定部110は、測定データファイル109に保存されたスレッド毎の測定結果から、最適スレッド数を決定する(ステップS114)。
このため、図3のステップS101からステップS113までの処理の説明は省略する。
実施の形態2における図3のS114の処理を、図4を用いて説明する。
具体例として、CPU使用率の値が45%以上、トラフィック量が10,000Kbps以上の範囲内で1スレッド処理時間を最小とするスレッド数を求める
図4において、CPU使用率の列を見ると、CPU使用率が45%以上となるのは、スレッド数が9より大きい時であることがわかる。
また、トラフィック量の列を見ると、トラフィック量が10,000Kbps以上となるのは、スレッド数が、10以上であることがわかる。
この中で、1スレッド処理時間を最小とするのは、1スレッド処理時間が2.0秒となるスレッド数が10のときであることがわかる。
以上により、最適スレッド数決定部110は、最適スレッド数を10に設定する
このように本実施の形態によると、トラフィック量だけでなく、スレッド毎の処理時間がより重要となる場合のスレッド数を提示する。これは、Webシステムのような全体のトラフィック量だけでなく、個々の応答をより重視する場合の最適解となる。
実施の形態3.
実施の形態3では、方法3.スレッド数変動通信装置が動作している間、CPU使用率およびトラフィック量が所定の範囲内となるスレッド数を維持する方法について説明する。
方法3.スレッド数変動通信装置が動作している間、CPU使用率およびトラフィック量が所定の範囲内となるスレッド数を維持する方法は、運用時にCPU使用率、トラフィック量、1スレッド毎の処理時間を計測し、所定の範囲から外れる場合、スレッド数を増減させることで、CPU使用率、トラフィック量の適正化を図り、運用時のスレッド数の最適化を実現する方法である。
スレッド数変動通信装置100が動作するコンピュータ上で、他のアプリケーションが動作することにより、CPU使用率またはトラフィック量が増減することで、CPU使用率またはトラフィック量が所定の範囲から外れ、設計とおりの性能を期待できないときがある。
この場合、スレッド数の値を動的に変更することでスレッド数変動通信装置100が動作するコンピュータを有効に使用することが可能となる。
図5を使用して実施の形態3の処理の流れを説明する。
まず、スレッド数設定変更部102は、データ送信部101が初期値として起動するスレッド数を設定する(ステップS201)。
スレッド数設定変更部102が設定する初期値は、測定データファイル109を読込み、方法1.1スレッドの処理時間が最小かつトラフィック量を一定値以上とするスレッド数で求めたスレッド数300を初期値として設定することとしてもよいし、方法2.1スレッドの処理時間が最小かつCPU使用率が所定の範囲内かつトラフィック量が一定値以上で決定するスレッド数で求めたスレッド数10を初期値として設定するようにしてもよい。
また、トラフィック量の最大値はCPUコア数に依存することから、CPUコア数取得部103で次に取得するCPUコア数を元に決めるようにしてもよい。
次に、CPUコア数取得部103は、CPUコア数を取得する(ステップS202)。
なお、図5のS202〜S211は、図3のS102〜S111と同じ処理内容である。
次に、CPU使用率取得部104は、CPU使用率測定を開始する(ステップS203)。
次に、トラフィック量取得部105は、トラフィック量の測定を開始する(ステップS204)。次に、通信時間取得部106は、データ送信開始時刻を取得する(ステップS205)。
次に、データ送信部101は、指定されたスレッド数でデータ送信処理を開始する(ステップS206)。
現在のスレッド数が、ステップS201で指定したスレッド数が例えば10であったとすると、10個のスレッドを使用して並行してデータ送信を行う。
次に、データ送信が完了すると、通信時間取得部106は、データ送信終了時刻を取得する(ステップS207)。次に、トラフィック量取得部105は、トラフィック量の測定を終了する(ステップS208)。次に、CPU使用率取得部104は、CPU使用率測定を終了する(ステップS209)。
スレッド処理時間算出部107は、通信時間取得部106で測定した値(総和)をスレッド数で除算し、1スレッド処理時間(平均)とする(ステップS210)。
測定データファイル入出力部108は、測定結果として、スレッド数、CPU使用率、トラフィック量、1スレッド処理時間を測定データファイル109に保存する(ステップS211)。
CPU使用率は、CPU使用率取得部104において測定開始から測定終了までに取得したCPU使用率の平均値とする。CPU使用率は平均値の代わりに最大値を利用することでもよい。また、複数CPU/複数コアの場合は、それぞれのCPU/コアの平均値を利用してもよいし、最大値を使用するようにしてもよい。
トラフィック量は、トラフィック量取得部105において測定開始から測定終了までに取得したトラフィック量の平均値とする。トラフィック量は平均値の代わりに最大値を利用することでもよい。
次に、測定値が所定の範囲内か判定処理を実行する(ステップS212)。
判定処理では、CPU使用率が所定の範囲内であるか、トラフィック量が所定の範囲内であるかを判定する。
所定の範囲内より小さい場合、スレッド数を一定数増加する(ステップS213)。所定の範囲内より大きな場合、スレッド数を一定数減少する(ステップS214)。
CPU使用率およびトラフィック量がともに所定の範囲になるまで測定を繰り返し、最初に条件を満たすスレッド数を最適スレッド数として採用する(ステップS215)。
具体例として、CPU使用率の所定の範囲を80〜95%、トラフィック量の所定の範囲を90,000Kbps以上とし、適正なスレッド数を求めてみる。
初期スレッド数は10とする。
ステップS212の処理を、図6を用いて説明する。
図6は、測定データファイル109の一例である。図4と同様、スレッド数、CPU使用率(%)、トラフィック量(Kbps)、1スレッド処理時間(秒)の列を持つ。
各スレッド数での測定値の説明のために、運用時に測定した結果が仮に図6のようになるとする。
スレッド数が10のときの測定結果は、図6を見るとCPU使用率は70%、トラフィック量は8,000Kbpsとなっており、CPU使用率とトラフィック量が共に所定の範囲を下回っていることがわかる。
そこで、測定を繰り返しながら、スレッド数を一定数ずつ増やしていく。
スレッド数が100のときの測定結果を見ると、図6よりCPU使用率は80%、トラフィック量は80,000Kbpsとなっており、トラフィック量がまだ所定の範囲を下回っていることがわかる。
さらに、測定を繰り返しながら、スレッド数を一定数ずつ増やしていき、最初に条件を満たすスレッド数を最適スレッド数として採用する。
図6を見ると、スレッド数が200の測定結果を見ると、CPU使用率は90%、トラフィック量は90,000Kbpsとなっている。所定の範囲であるCPU使用率80〜95%、トラフィック量90,000Kbps以上の範囲に入っており、最初に条件を満たすスレッド数は200であることがわかる。
運用を続けていくと、スレッド数変動通信装置100が動作するコンピュータ上で動作する他のアプリケーションの影響でCPU使用率またはトラフィック量の増減により、CPU使用率またはトラフィック量が所定の範囲から外れ、設計とおりの性能を期待できなくなるときがある。
例えば、図7はスレッド数200で、CPU使用率、トラフィック量ともに所定の範囲を保って運用していたが、スレッド数変動通信装置100が動作するコンピュータ上で動作する他のアプリケーションの影響により、CPU使用率、トラフィック量が増加してしまい、設計時の所定の範囲を外れてしまったケースである。
図7は、測定データファイル109の一例である。図4と同様、スレッド数、CPU使用率(%)、トラフィック量(Kbps)、1スレッド処理時間(秒)の列を持つ。
各スレッド数での測定値の説明のために、運用時に測定した結果が仮に図7のようになるとする。
スレッド数が200のときの測定結果は、図7を見るとCPU使用率は100%、トラフィック量は91,199Kbpsとなっており、CPU使用率が所定の範囲80〜95%を上回っていることがわかる。
そこで、測定を繰り返しながら、スレッド数を一定数ずつ減らしていく。
図7を見ると、スレッド数が100のときの測定結果を見ると、CPU使用率は95%、トラフィック量は92,000Kbpsとなっており、所定の範囲であるCPU使用率80〜95%、トラフィック量90,000Kbps以上の範囲に入っており、最初に条件を満たすスレッド数は100であることがわかる。
図8はスレッド数200で、CPU使用率、トラフィック量ともに所定の範囲を保って運用していたが、スレッド数変動通信装置100が動作するコンピュータ上で動作する他のアプリケーションの影響により、図7とは反対に、CPU使用率、トラフィック量が減少してしまい、設計時の所定の範囲を外れてしまったケースである。
図8は、測定データファイル109の一例である。図4と同様、スレッド数、CPU使用率(%)、トラフィック量(Kbps)、1スレッド処理時間(秒)の列を持つ。
各スレッド数での測定値の説明のために、運用時に測定した結果が仮に図8のようになるとする。
スレッド数が200のときの測定結果は、図8を見るとCPU使用率は80%、トラフィック量は80,000Kbpsとなっており、トラフィック量が所定の範囲90,000Kbps以上を下回っていることがわかる。
そこで、測定を繰り返しながら、スレッド数を一定数ずつ増やしていく。
図8を見ると、スレッド数を300のときの測定結果を見ると、図8よりCPU使用率は90%、トラフィック量は90,000Kbpsとなっており、所定の範囲であるCPU使用率80〜95%、トラフィック量90,000Kbps以上の範囲に入っており、最初に条件を満たすスレッド数は300であることがわかる。
実施の形態3の変形例として、最適なスレッド数を維持する条件として、CPU使用率およびトラフィック量に加えて、1スレッド毎の処理時間を所定の範囲とすることを特徴とするように構成することも可能である。
スレッド毎の処理時間がより重要となる場合、例えばWebシステムのような全体のトラフィック量だけでなく、個々の応答をより重視する場合には、1スレッド毎の処理時間を条件の一つとすることも有効である。
このように本実施の形態によると、限られたリソースの中で利用者にとって、運用時における最適なスレッド数を提示する。通常、個々のリソース値は変動するため、利用者にとっての最適なスレッド数も変動する。リソース値に合わせて最適なスレッド数の範囲を維持することを可能とし、運用時における幅広い利用を可能としている。
100 スレッド数変動通信装置、101 データ送信部、110 最適スレッド数決定部、300 ネットワーク。

Claims (2)

  1. ネットワークを使用してデータ送信処理をするデータ送信部と、
    前記データ送信部がデータ送信するときに、少なくとも測定されたスレッド数毎のCPU使用率と、トラフィック量とに基づき最適スレッド数を決定する最適スレッド数決定部とを備え
    前記最適スレッド決定部は、前記スレッド数を1から予め定められた値まで一定数ずつ増加させ、前記スレッド数毎に前記CPU使用率と、
    前記トラフィック量と、
    1スレッド毎の前記データ送信処理時間と、
    を測定し、前記CPU使用率および前記トラフィック量が所定の範囲内であり、1スレッドの平均処理時間を最小とする前記スレッド数を最適スレッド数として決定すること
    を特徴とするスレッド数変動通信装置。
  2. コンピュータを、請求項1記載のスレッド数変動通信装置として機能させるスレッド数変動通信プログラム。
JP2017040151A 2017-03-03 2017-03-03 スレッド数変動通信装置及びスレッド数変動通信プログラム Expired - Fee Related JP6377197B1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017040151A JP6377197B1 (ja) 2017-03-03 2017-03-03 スレッド数変動通信装置及びスレッド数変動通信プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017040151A JP6377197B1 (ja) 2017-03-03 2017-03-03 スレッド数変動通信装置及びスレッド数変動通信プログラム

Publications (2)

Publication Number Publication Date
JP6377197B1 true JP6377197B1 (ja) 2018-08-22
JP2018147141A JP2018147141A (ja) 2018-09-20

Family

ID=63249983

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017040151A Expired - Fee Related JP6377197B1 (ja) 2017-03-03 2017-03-03 スレッド数変動通信装置及びスレッド数変動通信プログラム

Country Status (1)

Country Link
JP (1) JP6377197B1 (ja)

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256207A (ja) * 2000-03-08 2001-09-21 Mitsubishi Electric Corp コンピュータ装置及び記録媒体
JP2002259143A (ja) * 2001-03-05 2002-09-13 Nec Soft Ltd タスク数自動制御装置、タスク数自動制御方法、オンライントランザクション処理システム、プログラム
JP2006209165A (ja) * 2005-01-25 2006-08-10 Hitachi Ltd 同時実行多重度調整システム及び方法
JP4170302B2 (ja) * 2005-03-10 2008-10-22 富士通株式会社 負荷制御装置および負荷制御プログラム
JP2006301749A (ja) * 2005-04-18 2006-11-02 Hitachi Information Technology Co Ltd サーバ装置
JP4570527B2 (ja) * 2005-07-20 2010-10-27 富士通株式会社 システム性能監視プログラム及びシステム性能監視方法
JP5181121B2 (ja) * 2008-03-17 2013-04-10 インターナショナル・ビジネス・マシーンズ・コーポレーション タスク数制御装置、タスク数制御方法、及びコンピュータプログラム
JP4977069B2 (ja) * 2008-03-19 2012-07-18 株式会社野村総合研究所 メール配信速度調整システム及びプログラム
JP5691749B2 (ja) * 2011-03-31 2015-04-01 富士通株式会社 リソース抑制プログラム、リソース監視プログラム、リソース抑制装置、リソース監視装置、リソース抑制方法、リソース監視方法及びリソース抑制システム
WO2013129061A1 (ja) * 2012-02-28 2013-09-06 日本電気株式会社 同時接続数制御システム、同時接続数制御サーバ、同時接続数制御方法および同時接続数制御プログラム
JPWO2014045417A1 (ja) * 2012-09-21 2016-08-18 富士通株式会社 情報処理装置、および負荷試験方法
JP6260375B2 (ja) * 2014-03-17 2018-01-17 富士通株式会社 管理装置、管理プログラム及び情報処理システム

Also Published As

Publication number Publication date
JP2018147141A (ja) 2018-09-20

Similar Documents

Publication Publication Date Title
US9766818B2 (en) Electronic system with learning mechanism and method of operation thereof
CN109756230B (zh) 数据压缩存储方法、数据压缩方法、装置、设备及介质
JP7296197B2 (ja) 損失データ圧縮方法
US8893146B2 (en) Method and system of an I/O stack for controlling flows of workload specific I/O requests
US20150295970A1 (en) Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system
JP2013529813A (ja) 帯域幅適応型メモリ圧縮
US20160179565A1 (en) Device Remote Access Method, Thin Client, and Virtual Machine
EP2808789B1 (en) Multi-core apparatus and job scheduling method thereof
CN107357642B (zh) 一种计算任务调整方法及装置
JP6273966B2 (ja) ストレージ管理装置、性能調整方法及び性能調整プログラム
US20210181829A1 (en) Memory throttling
US8307011B2 (en) System and method for determining overall utilization
JP6060276B2 (ja) 監視レコード管理方法及びデバイス
CN110601872A (zh) 一种传输方法及装置、存储介质
CN109151848B (zh) 确定网络服务质量的方法、装置及服务器
US7873759B2 (en) Information processing system and method of allocating I/O to paths in same
JP6377197B1 (ja) スレッド数変動通信装置及びスレッド数変動通信プログラム
CN115328825A (zh) 用于内存访问的集成电路、处理方法、电子设备和介质
CN112367384B (zh) 基于Kafka集群的动态限速方法、装置以及计算机设备
JP6848278B2 (ja) ストレージ管理装置、性能調整方法及び性能調整プログラム
WO2020024392A1 (zh) 节点处理方法及装置、存储介质和电子设备
KR102625723B1 (ko) 전자 장치 및 전자 장치의 제어 방법
KR102296940B1 (ko) 클라우드 환경 내에서 가상 머신을 위한 마이그레이션을 수행하기 위한 전자 장치 및 그의 동작 방법
CN112182454A (zh) 一种网页优化的方法、装置及存储介质、电子设备
CN109344043A (zh) 一种性能分析方法及相关装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180607

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: 20180717

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180724

R150 Certificate of patent or registration of utility model

Ref document number: 6377197

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees