Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP6300632B2 - 情報処理装置、負荷制御方法および負荷制御プログラム - Google Patents
[go: Go Back, main page]

JP6300632B2 - 情報処理装置、負荷制御方法および負荷制御プログラム - Google Patents

情報処理装置、負荷制御方法および負荷制御プログラム Download PDF

Info

Publication number
JP6300632B2
JP6300632B2 JP2014103278A JP2014103278A JP6300632B2 JP 6300632 B2 JP6300632 B2 JP 6300632B2 JP 2014103278 A JP2014103278 A JP 2014103278A JP 2014103278 A JP2014103278 A JP 2014103278A JP 6300632 B2 JP6300632 B2 JP 6300632B2
Authority
JP
Japan
Prior art keywords
state
processor
cycle
load
operation level
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
JP2014103278A
Other languages
English (en)
Other versions
JP2015082321A (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.)
Fujitsu Ltd
Georgia Tech Research Corp
Original Assignee
Fujitsu Ltd
Georgia Tech Research 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 Fujitsu Ltd, Georgia Tech Research Corp filed Critical Fujitsu Ltd
Publication of JP2015082321A publication Critical patent/JP2015082321A/ja
Application granted granted Critical
Publication of JP6300632B2 publication Critical patent/JP6300632B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)

Description

本発明は情報処理装置、負荷制御方法および負荷制御プログラムに関する。
近年、コンピュータの情報処理能力が向上するに伴い、コンピュータに搭載されるプロセッサの消費電力が増大することが問題となっている。プロセッサの消費電力を抑制する技術の1つに、DVFS(Dynamic Voltage and Frequency Scaling)がある。DVFSを実装したプロセッサは、演算時の動作レベルとして、クロック周波数や電圧の異なる複数の動作レベルをもつ。この動作レベルはP−stateと呼ばれることがある。クロック周波数や電圧が小さい(動作レベルが低い)ほど、プロセッサの消費電力は小さくなる。動作レベルを動的に下げることで、プロセッサの不要な電力消費を削減することができる。ただし、動作レベルが低い状態では、プロセッサの演算速度も低下している。
BIOS(Basic Input Output System)やOS(Operating System)などのシステムソフトウェアの中には、プロセッサ使用率に応じてプロセッサの動作レベルを切り替えることができるものがある。例えば、システムソフトウェアは、プロセッサ使用率が低いとき、プロセッサの動作レベルを下げて消費電力を削減する。プロセッサ使用率が高くなると、システムソフトウェアは、動作レベルを上げてプロセッサ使用率が下がるのを待つ。
プロセッサの動作レベルを切り替えるか否かは、所定の固定周期で判定することが多い。例えば、システムソフトウェアは、所定の固定周期でプロセッサ使用率を確認し、確認したプロセッサ使用率に応じて動作レベルを切り替えるか否か判定する。ただし、動作レベルの切替回数が過多にならないように、動作レベルを切り替えるか否か判定する頻度を変更する半導体装置が提案されている。この半導体装置は、クロック周波数および電圧を切り替えた回数をカウントし、過去の切替回数が大きいほど判定する頻度を低く設定し、過去の切替回数が小さいほど判定する頻度を高く設定するようにする。
なお、OSがプロセッサ情報を監視し、プロセッサ情報に応じて、性能の異なる複数の実行状態の中からプロセッサの実行状態を選択する電力管理方法が提案されている。この電力管理方法では、OSはサンプリングした過去のプロセッサ情報に基づいて未来のプロセッサ情報を予測し、過去のプロセッサ情報と未来のプロセッサ情報の平均に基づいて、プロセッサの実行状態を選択する。また、プロセッサがビジーである時間の割合から、目標P−stateを選択するシステムが提案されている。このシステムは、プロセッサが100%ビジーであるとき、目標P−stateの選択を周期的に減少させる。
特開2004−29983号公報 国際公開第2004/102363号 特開2009−110509号公報
ところで、コンピュータにかかる負荷(例えば、単位時間当たりに他のコンピュータから受信するリクエストの量など)は、定常的でないことが多く周期性をもって変動することがある。このとき、負荷変動の周期によっては、負荷とプロセッサの動作レベルとの間に継続的なミスマッチが発生し、プロセッサの使用効率が低下することがある。
例えば、プロセッサの動作レベルが低いときにコンピュータにかかる負荷が急激に増大したとする。この場合でも、動作レベルを切り替えるか否か判定するタイミングが次に到来するまで低い動作レベルが維持されるため、処理待ちのリクエストが増加してレスポンスの遅延が大きくなる。動作レベルを切り替えるか否か判定するタイミングが到来すると、プロセッサの動作レベルが高くなり、処理待ちのリクエストが減少していく。その後、コンピュータにかかる負荷が急激に低下したとする。この場合でも、動作レベルを切り替えるか否か判定するタイミングが次に到来するまで高い動作レベルが維持されるため、プロセッサの消費電力が負荷に不相応に大きい状態になってしまう。
このような負荷とプロセッサの動作レベルとの間のミスマッチは、負荷変動の周期が動作レベルを切り替えるか否か判定する周期と同じかまたは近似していると、継続して発生する。すなわち、負荷が増大してもプロセッサの動作レベルが低いままの状態と、負荷が低下してもプロセッサの動作レベルが高いままの状態とが、交互に繰り返し現れることになる。このように、プロセッサの省電力化のための技術であるDVFSが、かえってプロセッサの使用効率を低下させる場合があるという問題がある。一方、動作レベルを切り替えるか否か判定する周期を短い周期に固定してしまうと、動作レベルの制御自体のオーバヘッドが大きくなり、DVFSによる省電力化の効果が小さくなってしまう。
1つの側面では、本発明は、負荷とプロセッサの動作レベルとのミスマッチを抑制する情報処理装置、負荷制御方法および負荷制御プログラムを提供することを目的とする。
1つの態様では、消費電力の異なる複数の動作レベルの中から動作レベルを切替可能なプロセッサと、プロセッサの動作レベルを制御するプログラムを記憶する記憶部と、を有する情報処理装置が提供される。プログラムを実行するプロセッサは、自装置の負荷変動の周期性を検出し、負荷変動の周期性に応じて、プロセッサの動作レベルを切り替えるか否か判定する判定周期を変更する。
また、1つの態様では、消費電力の異なる複数の動作レベルの中から動作レベルを切替可能なプロセッサを有するコンピュータが実行する負荷制御方法が提供される。負荷制御方法では、コンピュータの負荷変動の周期性を検出する。負荷変動の周期性に応じて、プロセッサの動作レベルを切り替えるか否か判定する判定周期を変更する。
また、1つの態様では、コンピュータに実行させる負荷制御プログラムが提供される。
1つの側面では、負荷とプロセッサの動作レベルとのミスマッチを抑制できる。
第1の実施の形態の情報処理装置を示す図である。 第2の実施の形態の情報処理システムを示す図である。 Webサーバのハードウェア例を示すブロック図である。 P−stateとクロック周波数の関係例を示す図である。 入力負荷とクロック周波数のミスマッチ例を示す図である。 入力負荷とクロック周波数のミスマッチの伝搬例を示す図である。 Webサーバの機能例を示すブロック図である。 履歴テーブルの例を示す図である。 入力負荷の周期性の例を示す図である。 周期調整の手順例を示すフローチャートである。 CPU動作の第1のシミュレーション例を示すグラフである。 CPU動作の第2のシミュレーション例を示すグラフである。 他の周期調整の手順例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態の情報処理装置を示す図である。
第1の実施の形態の情報処理装置10は、プロセッサ11および記憶部12を有する。情報処理装置10は、コンピュータや物理マシンなどと呼ばれることもある。
プロセッサ11は、BIOSプログラム、OSプログラム、アプリケーションプログラムなどの各種のプログラムを実行する。プロセッサ11は、並列にプログラムを実行可能な複数のコアを有していてもよい。プロセッサ11は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などと呼ばれることもある。ただし、プロセッサ11は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の集積回路を更に含んでいてもよい。
ここで、プロセッサ11は、消費電力の異なる複数の動作レベルの中で動作レベルLを切替可能である。複数の動作レベルの間では、例えば、プログラム実行時のクロック周波数と電圧の少なくとも一方が異なる。例えば、動作レベルLが低いほど、プロセッサ11のクロック周波数や電圧が低くなり消費電力が小さくなる。動作レベルLは、P−stateと呼ばれるものであってもよい。プロセッサ11は、コアに提供されるクロック信号の周波数や電圧を動的に切り替えるための制御回路を有していてもよい。
記憶部12は、プログラム12aを記憶する。記憶部12は、RAM(Random Access Memory)などの主記憶装置でもよいし、HDD(Hard Disk Drive)などの補助記憶装置でもよい。また、記憶部12は、基盤に取り付けられたROM(Read Only Memory)やフラッシュメモリなどであってもよい。プログラム12aは、プロセッサ11の動作レベルLを制御する。プログラム12aは、BIOSやOSなどのシステムソフトウェアのプログラムであってもよい。プログラム12aまたはプログラム12aから依頼される他のプログラムは、例えば、プロセッサ11の制御回路に動作レベルLの切替を指示する。
プログラム12aをプロセッサ11が実行することで、プロセッサ11は、以下のように動作レベルLを制御する。プロセッサ11は、情報処理装置10の過去の負荷変動の周期性を検出し、検出した負荷変動の周期性に応じて、プロセッサ11の動作レベルLを切り替えるか否か判定する判定周期Tを変更する。プロセッサ11は、例えば、判定周期Tでプロセッサ11の使用率を確認し、プロセッサ11の使用率に応じて動作レベルLを切り替えるか判定する。例えば、プロセッサ11は、プロセッサ11の使用率が高い場合は動作レベルLを上げ、プロセッサ11の使用率が低い場合は動作レベルLを下げる。
判定周期Tを算出するにあたり、例えば、プロセッサ11は、過去の負荷変動(例えば、直近の所定時間または所定回数の負荷変動)の周期である負荷周期Fを算出する。ここで言う負荷は、情報処理装置10が実行すべき情報処理のストックに対応し、例えば、情報処理装置10が単位時間当たりに受信するリクエストの数やキューに滞留した未処理のリクエストの数などに対応する。ただし、プロセッサ11は、動作レベルLの切替を示す履歴情報を取得し、履歴情報から過去の負荷変動を推定することも可能である。動作レベルLの履歴情報から負荷変動を推定することで、プロセッサ11は、キュー長などのアプリケーション層の情報を参照しなくてもよく、システムソフトウェア層において効率的に動作レベルLを制御することができる。その場合、例えば、プロセッサ11は、動作レベルLが閾値以上になったタイミングの周期を負荷周期Fとして算出する。
負荷周期Fが算出されると、プロセッサ11は、負荷周期Fから判定周期Tを算出することができる。例えば、プロセッサ11は、判定周期Tを負荷周期Fよりも短くする。負荷周期Fの1/n(nは2以上の所定の整数)を判定周期Tとしてもよい。負荷周期Fが変化すると、それに合わせて判定周期Tも変更されることが好ましい。例えば、負荷周期Fが小さいほど判定周期Tを小さくし、負荷周期Fが大きいほど判定周期Tを大きくする。これにより、負荷と動作レベルLとのミスマッチを解消できる程度を超えて過度に判定周期Tが小さくなるのを抑制できる。なお、負荷変動に周期性がないと判断される場合、プロセッサ11は、判定周期Tを現在の値より小さくすることを制限してもよい。
第1の実施の形態の情報処理装置10によれば、情報処理装置10の負荷変動の周期性に応じて、プロセッサ11の動作レベルLを切り替えるか判定する判定周期Tが変更される。これにより、負荷周期Fが判定周期Tと同一または近似した場合に継続的に発生し得る、負荷と動作レベルLとの間のミスマッチを抑制することができる。すなわち、負荷が増大しても動作レベルLが低い状態と負荷が低下しても動作レベルLが高い状態とが、交互に繰り返し現れることを抑制できる。よって、DVFSを利用してもプロセッサ11を効率的に運用できる。また、判定周期Tを負荷周期Fに応じて可変にすることで、判定周期Tが過度に小さくなるのを抑制することができ、動作レベルLの制御のためのオーバヘッドを削減してプロセッサ11の省電力化を図ることができる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、いわゆる3階層アーキテクチャと呼ばれる形態のWebシステムである。この情報処理システムは、クライアント21、Webサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bを有する。クライアント21、Webサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bは、ネットワーク20に接続されている。ただし、クライアント21とネットワーク20の間に、広域ネットワークが介在していてもよい。
クライアント21は、ユーザが操作する端末装置としてのクライアントコンピュータである。クライアント21は、Webページを表示するためのWebブラウザを実行する。クライアント21は、HTTP(Hypertext Transfer Protocol)を用いてリクエストをWebサーバ100に送信し、リクエストに対するレスポンスをWebサーバ100から受信する。通常、HTTPのリクエストには要求するWebページの識別情報が含まれ、HTTPのレスポンスには表示するWebページのデータが含まれる。
Webサーバ100は、クライアント21からのリクエストに応じて情報処理を行うサーバコンピュータである。Webサーバ100は、HTTP通信を制御するアプリケーションソフトウェア(ソフトウェアとしてのWebサーバ)を実行する。Webサーバ100は、クライアント21からHTTPのリクエストを受信すると、要求されたWebページのデータを生成するために利用する業務ロジックを特定し、業務ロジックのリクエストをアプリケーションサーバ100aに送信する。Webサーバ100は、リクエストに対して、業務ロジックの実行結果を含むレスポンスをアプリケーションサーバ100aから受信する。すると、Webサーバ100は、業務ロジックの実行結果に基づいてWebページのデータを生成し、HTTPのレスポンスをクライアント21に送信する。
アプリケーションサーバ100aは、Webサーバ100からのリクエストに応じて情報処理を行うサーバコンピュータである。アプリケーションサーバ100aは、業務ロジックを実装したアプリケーションソフトウェアを実行する。アプリケーションサーバ100aは、Webサーバ100からリクエストを受信すると、指定された業務ロジックを実行する。このとき、アプリケーションサーバ100aは、業務ロジックで使用するデータを特定し、データアクセスのリクエストをデータベースサーバ100bに送信する。データアクセスには、データの検索・追加・更新・削除などのデータ操作が含まれ得る。アプリケーションサーバ100aは、リクエストに対して、データアクセスの結果を示すレスポンスをデータベースサーバ100bから受信する。すると、アプリケーションサーバ100aは、データアクセスの結果に基づいて(例えば、検索されたデータに基づいて)、業務ロジックを完了してレスポンスをWebサーバ100に送信する。
データベースサーバ100bは、アプリケーションサーバ100aからのリクエストに応じて情報処理を行うサーバコンピュータである。データベースサーバ100bは、データを管理するアプリケーションソフトウェア(データベース管理システム(DBMS:Database Management System)など)を実行する。データベースサーバ100bは、HDDなどの不揮発性の記憶装置にデータを記憶している。データベースサーバ100bは、アプリケーションサーバ100aからリクエストを受信すると、要求されたデータアクセスを実行し、データアクセスの結果を示すレスポンスをアプリケーションサーバ100aに送信する。要求されたデータアクセスがデータの検索である場合、レスポンスには検索されたデータが含まれる。要求されたデータアクセスがデータの追加・更新・削除などである場合、レスポンスにはデータアクセスの成否を示す情報が含まれる。
なお、3階層アーキテクチャのWebシステムでは、上記のWebサーバ100の機能をプレゼンテーション層、アプリケーションサーバ100aの機能をアプリケーション層、データベースサーバ100bの機能をデータ層と言うことがある。図2では、プレゼンテーション層とアプリケーション層とデータ層をそれぞれ異なるサーバコンピュータを用いて実装しているが、2以上の層を同一のサーバコンピュータ上で実装することも可能である。例えば、Webサーバ100とアプリケーションサーバ100aのアプリケーションソフトウェアを、単一のサーバコンピュータに実行させることも可能である。
図3は、Webサーバのハードウェア例を示すブロック図である。
Webサーバ100は、CPU101、RAM102、ROM103、HDD104、画像信号処理部105、入力信号処理部106、媒体リーダ107および通信インタフェース108を有する。上記のユニットは、Webサーバ100内でバス109に接続されている。クライアント21、アプリケーションサーバ100aおよびデータベースサーバ100bも、Webサーバ100と同様のハードウェアを用いて実現できる。なお、CPU101は、第1の実施の形態のプロセッサ11の一例である。RAM102、ROM103またはHDD104は、第1の実施の形態の記憶部12の一例である。
CPU101は、Webサーバ100を制御するプロセッサである。CPU101は、少なくとも1つのコア(コア101a)およびDVFS回路101bを有する。
コア101aは、算術論理演算回路やレジスタなどを有し、プログラムの命令を実行する。コア101aは、後述するように、クロック周波数と電圧の組み合わせが異なる複数の「P−state」という動作レベルをもつ。なお、CPU101は、複数のコアを有していてもよい。その場合、複数のコアは並列にプログラムの命令を実行できる。
DVFS回路101bは、コア101aに対するDVFSを実現する回路であり、プログラムの命令に応じてコア101aのP−stateを変更する。すなわち、DVFS回路101bは、コア101aに供給されるクロック信号の周波数や電圧を制御する。例えば、DVFS回路101bは、バス109から供給されるベースクロック信号に適用する倍率を変更することで、コア101aのクロック周波数を変更する。なお、CPU101が複数のコアを有する場合、DVFS回路101bは、複数のコアに共通のP−stateを適用してもよいし、コア毎に独立にP−stateを変更してもよい。
RAM102は、CPU101が実行するプログラムやデータを一時的に記憶する揮発性の半導体メモリであり、主記憶装置である。なお、Webサーバ100は、RAM以外の種類の主記憶装置を有してもよく、複数個の主記憶装置を有してもよい。
ROM103は、BIOSプログラムを記憶する不揮発性の半導体メモリである。ただし、ROM103に代えて、フラッシュメモリなどの書換可能な半導体メモリを用いてもよい。BIOSプログラムには、OSを起動する機能が実装されている。Webサーバ100が起動されると、CPU101は、BIOSプログラムをRAM102に読み出し、HDD104を含む周辺デバイスをアクセス可能にする。そして、CPU101は、BIOSプログラムに従って、OSプログラムをHDD104からRAM102に読み出す。また、BIOSプログラムには、DVFS回路101bにP−stateを変更するよう指示する機能や、CPU101の使用状況をモニタする機能が実装されている。
HDD104は、OSプログラム、アプリケーションソフトウェアのプログラム、および、OSやアプリケーションソフトウェアによって使用されるデータを記憶する不揮発性の記憶装置であり、補助記憶装置である。OSプログラムには、BIOSを介してCPU101の使用状況の情報を収集する機能や、CPU101の使用率に応じてP−stateを決定しBIOSを介してDVFS回路101bを制御する機能が実行されている。なお、Webサーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の補助記憶装置を有してもよく、複数個の補助記憶装置を有してもよい。
画像信号処理部105は、CPU101からの命令に従って、Webサーバ100に接続されたディスプレイ31に画像を出力する。ディスプレイ31としては、例えば、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部106は、Webサーバ100に接続された入力デバイス32から入力信号を取得し、CPU101に出力する。入力デバイス32としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、Webサーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ107は、記録媒体33に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体33として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ107は、例えば、記録媒体33から読み取ったプログラムやデータをRAM102またはHDD104に格納する。
通信インタフェース108は、ネットワーク20に接続され、ネットワーク20を介してクライアント21やアプリケーションサーバ100aなどの他のコンピュータと通信を行うインタフェースである。通信インタフェース108は、例えば、ケーブルを介して、ネットワーク20に属するスイッチなどの通信装置と接続される。
なお、Webサーバ100は、媒体リーダ107を有していなくてもよい。また、Webサーバ100は、ユーザが操作する端末装置(クライアント21など)からネットワーク20経由でWebサーバ100が制御される場合には、画像信号処理部105や入力信号処理部106を有していなくてもよい。また、ディスプレイ31や入力デバイス32が、Webサーバ100の筐体と一体に形成されていてもよい。
次に、P−stateの定義およびDVFSで発生し得る問題について説明する。
図4は、P−stateとクロック周波数の関係例を示す図である。
CPU101には、動作レベルとしてP0〜P8の9段階のP−stateが定義されている。P0はクロック周波数が最も高いP−stateであり、P8はクロック周波数が最も低いP−stateである。すなわち、P0はCPU101の演算能力が最大であり動作レベルが最も高いことを示しており、P8はCPU101の演算能力が最小であり動作レベルが最も低いことを示している。クロック周波数が高いほど電圧も高くなり、クロック周波数が低いほど電圧も低く抑えられる。よって、P0のときにCPU101の消費電力が最大となり、P8のときにCPU101の消費電力が最小となる。
例えば、P0のクロック周波数が2261MHz(2.261GHz)、P1のクロック周波数が2128MHz、P2のクロック周波数が1995MHz、P3のクロック周波数が1862MHz、P4のクロック周波数が1729MHzである。また、例えば、P5のクロック周波数が1596MHz、P6のクロック周波数が1463MHz、P7のクロック周波数が1330MHz、P8のクロック周波数が1197MHzである。このようなクロック周波数の増減と正の相関をもって、電圧も増減する。
ただし、OSによるP−state制御を簡潔にするため、また、以下のP−state制御の説明を簡単にするため、第2の実施の形態では、OSはP0〜P8のうちP0,P4,P8のみを使用するものとする。すなわち、OSからBIOSを介してDVFS回路101bに指示され得るP−stateは、P0,P4,P8の3つに限定される。
OSは、パフォーマンスを考慮しつつCPU101の消費電力を削減するため、CPU101の使用率に応じてP−stateを調整する。OSは、CPU101がP8で動作しているときにCPU使用率が高くなる(例えば、CPU使用率が上限閾値以上になる)と、P−stateをP8からP4に上げる。P−stateをP4に上げてもCPU使用率が十分に下がらない場合(例えば、CPU使用率がまだ上限閾値以上の場合)、OSは、P−stateを更にP4からP0に上げる。段階的にP−stateを上げるのは、CPU使用率が100%のときに、どの程度の演算能力が不足しているか(どの程度演算能力を上げればCPU使用率が十分に下がるか)を推定するのが難しいためである。
一方、OSは、CPU101がP0で動作しているときにCPU使用率が低くなる(例えば、CPU使用率が下限閾値未満になる)と、P−stateをP0からP4またはP8に下げる。このとき、OSは、P−stateをP8に下げたときのCPU使用率を、現在のCPU使用率から推定することが可能である。よって、OSは、P−stateをP0からP4に下げるかP8まで下げるかを、現在のCPU使用率に応じて選択できる。例えば、OSは、P−stateをP8に下げたときのCPU使用率の推定値が上限閾値未満である場合はP8に下げ、それ以外の場合はP4に下げればよい。
以上のようなP−stateの制御は、Webサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bそれぞれで独立に実行される。
ところで、CPU使用率の瞬間的な変化に合わせてP−stateを過度に高頻度で変更すると、かえってCPU101の省電力化が図れないおそれがある。ある瞬間にCPU使用率が急増しても、それが一時的であり次の瞬間にはCPU使用率が急激に低下する可能性がある。その場合、CPU使用率の一時的な増加に合わせてCPU101の演算能力を瞬時に上げてしまうと、その後のCPU101の空き時間が増えてしまいCPU101の利用効率が低下してしまう。また、P−stateを過度に高頻度で変更することは、CPU101への割り込みの発生によってOSのオーバヘッドを大きくし、アプリケーションソフトウェアのパフォーマンスを低下させるおそれがある。
そこで、OSは、CPU使用率を確認してCPU101のP−stateを変更するか否か判定することを、一定の周期(例えば、500ms周期など)で間欠的に行う。第2の実施の形態において、P−stateを変更するか否か判定するタイミングをP−state制御タイミングと言うことがあり、P−state制御タイミングの周期をP−state制御周期と言うことがある。ある瞬間にCPU使用率が急増しても、次のP−state制御タイミングまでにCPU使用率が下がっていればP−stateは上がらない。例えば、Webサーバ100が一時的に大量のリクエストを受信しても、次のP−state制御タイミングまでにそれらリクエストを処理し終えていれば、P−stateを上げなくてよい。これにより、CPU101の平均消費電力を削減できる。
ただし、P−state制御周期を固定にすると、次のような問題が生じ得る。
図5は、入力負荷とクロック周波数のミスマッチ例を示す図である。
ここでは、アプリケーションサーバ100aで実行されるDVFSについて考える。Webサーバ100やデータベースサーバ100bでも同様の問題が発生し得る。
外部からアプリケーションサーバ100aに与えられる負荷(入力負荷)は、主にWebサーバ100から受信されるリクエストの数に比例する。そして、アプリケーションサーバ100aがWebサーバ100から単位時間当たりに受信するリクエストの数、すなわち、単位時間当たりの入力負荷は、均一ではなく変動することが多い。入力負荷の変動の波には、幾つかの周期の異なる波が含まれ得る。入力負荷の変動の波の中に、周期がアプリケーションサーバ100aのP−state制御周期と同一または近似する波が含まれており、その波の振幅が十分に大きいとする。すると、入力負荷とP−stateとの間に「反同期」(anti-synchronization)と表現できる現象が発生する。
入力負荷とP−stateとの「反同期」は、入力負荷とP−stateとが負の相関をもって同期してしまい、入力負荷とP−stateとのミスマッチが継続的に発生する現象である。「反同期」が生じると、入力負荷が高いのにP−stateが低い状態と入力負荷が低いのにP−stateが高い状態とが、継続的に交互に現れる。これにより、アプリケーションサーバ100aのCPUの運用が非効率になってしまう。
例えば、まず、(1)アプリケーションサーバ100aが、入力負荷が低く(受信するリクエストが少なく)P−stateが低い(CPUのクロック周波数が低い)状態であるとする。次に、(2)入力負荷が周期的に変動することから、入力負荷が増大する(受信するリクエストが増える)。しかし、アプリケーションサーバ100aでは、次のP−state制御タイミングが到来するまでP−stateが変更されないため、低いP−state(低いクロック周波数)が維持される。すなわち、入力負荷が高いのにP−stateが低いというミスマッチが発生する。このとき、未処理のリクエストが増加し、Webサーバ100に対する応答時間が急激に悪化する。
次に、(3)P−state制御タイミングが到来すると、CPU使用率が高いため、P−stateが上がる(CPUのクロック周波数が高くなる)。これにより、アプリケーションサーバ100aでは、未処理のリクエストが徐々に減少し、Webサーバ100に対する応答時間が徐々に改善していく。次に、(4)入力負荷が周期的に変動することから、入力負荷が低下する(受信するリクエストが減る)。しかし、アプリケーションサーバ100aでは、次のP−state制御タイミングが到来するまでP−stateが変更されないため、高いP−state(高いクロック周波数)が維持される。すなわち、入力負荷が低いのにP−stateが高いというミスマッチが発生する。この状態では、CPUの省電力化が実現できていないことになる。
次に、(5)P−state制御タイミングが到来すると、CPU使用率が低いため、P−stateが下がる(CPUのクロック周波数が低くなる)。これにより、CPUの省電力化が実現でき、上記の状態(1)に戻る。しかし、入力負荷の変動周期とP−state制御周期とが同一または近似しているため、上記の状態(2)のミスマッチと状態(4)のミスマッチとが交互に継続的に発生することになる。
図6は、入力負荷とクロック周波数のミスマッチの伝搬例を示す図である。
上記では、単一のサーバコンピュータに着目して、入力負荷とP−stateとのミスマッチを説明した。このミスマッチは、3階層アーキテクチャのWebシステムのように複数のサーバコンピュータが連携するシステムでは増幅されることがある。ここでは、アプリケーションサーバ100aとデータベースサーバ100bの連携について考える。Webサーバ100とアプリケーションサーバ100aの間でも同様の問題が発生し得る。
例えば、まず、(1)アプリケーションサーバ100aおよびデータベースサーバ100bの両方が、入力負荷が低くP−stateが高い状態であるとする。次に、(2)アプリケーションサーバ100aのP−state制御タイミングが到来したとする。すると、CPU使用率が低いため、アプリケーションサーバ100aのP−stateが下がる。その結果、アプリケーションサーバ100aのリクエストの処理速度が低下するため、データベースサーバ100bの入力負荷が低下する。しかし、データベースサーバ100bでは、次のP−state制御タイミングが到来するまで高いP−stateが維持されるため、入力負荷とP−stateのミスマッチが発生する。
次に、(3)アプリケーションサーバ100aの入力負荷が増大する。しかし、アプリケーションサーバ100aでは、次のP−state制御タイミングが到来するまで低いP−stateが維持されるため、入力負荷とP−stateのミスマッチが発生する。一方、データベースサーバ100bのP−state制御タイミングが到来すると、CPU使用率が低いため、データベースサーバ100bのP−stateが下がる。
次に、(4)アプリケーションサーバ100aのP−state制御タイミングが到来する。すると、CPU使用率が高いため、アプリケーションサーバ100aのP−stateが上がる。その結果、アプリケーションサーバ100aのリクエストの処理速度が上昇するため、データベースサーバ100bの入力負荷が増大する。しかし、データベースサーバ100bでは、次のP−state制御タイミングが到来するまで低いP−stateが維持されるため、入力負荷とP−stateのミスマッチが発生する。
次に、(5)アプリケーションサーバ100aの入力負荷が減少する。しかし、アプリケーションサーバ100aでは、次のP−state制御タイミングが到来するまで高いP−stateが維持されるため、入力負荷とP−stateのミスマッチが発生する。一方、データベースサーバ100bのP−state制御タイミングが到来すると、CPU使用率が高いため、データベースサーバ100bのP−stateが上がる。これにより、滞留したリクエストが処理されて上記の状態(1)に戻る。
このように、アプリケーションサーバ100aの入力負荷とP−stateとのミスマッチと、データベースサーバ100bの入力負荷とP−stateとのミスマッチとが、交互に繰り返し発生する。すなわち、常にミスマッチがWebシステムの何れかの層で発生していることになる。また、前段のサーバコンピュータ(アプリケーションサーバ100a)におけるミスマッチの影響で、後段のサーバコンピュータ(データベースサーバ100b)の入力負荷の変動が増幅される。よって、クライアント21に対するWebシステムの応答時間が顕著に悪化するという問題がある。
そこで、第2の実施の形態のWebサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bは、入力負荷とP−stateの「反同期」が抑制されるようにP−state制御周期を可変とする。「反同期」を抑制することで、各サーバコンピュータのCPUを効率的に運用することができ、クライアント21に対する応答時間を改善することができる。以下では、Webサーバ100がP−state制御を行う場合について説明する。アプリケーションサーバ100aおよびデータベースサーバ100bも、Webサーバ100と同様のP−state制御を行うことができる。
図7は、Webサーバの機能例を示すブロック図である。
Webサーバ100は、CPUモニタ111、P−state指示部112、制御情報記憶部121、履歴記憶部122、P−state決定部123、周期算出部124、リクエストキュー131およびリクエスト処理部132を有する。
例えば、CPUモニタ111およびP−state指示部112は、BIOSのプログラムモジュールとして実装できる。制御情報記憶部121および履歴記憶部122は、OSが使用するRAM102またはHDD104の記憶領域として実現できる。P−state決定部123および周期算出部124は、OSのプログラムモジュールとして実装できる。リクエストキュー131は、アプリケーションソフトウェアが使用するRAM102またはHDD104の記憶領域として実現できる。リクエスト処理部132は、アプリケーションソフトウェアのプログラムモジュールとして実装できる。
CPUモニタ111は、CPU101の使用状況をモニタしP−state決定部123に報告する。例えば、CPUモニタ111は、幾つかの時点でコア101aが命令を実行しているか否かサンプリングし、サンプリング結果をP−state決定部123に報告する。命令を実行しているサンプルの割合を、CPU使用率とすることができる。
P−state指示部112は、P−state決定部123からの要求に応じて、P−stateの変更を制御する。例えば、P−state指示部112は、コア101aのP−stateをP−state決定部123で決定されたものに変更するよう、DVFS回路101bに指示する。これにより、DVFS回路101bによって、コア101aに供給されるクロック信号の周波数や電圧が変更される。なお、P−stateとクロック周波数および電圧との対応関係は、予めDVFS回路101bに定義されている。
制御情報記憶部121は、P−state制御に用いられる制御情報を記憶する。制御情報には、P−state制御周期、すなわち、CPU101のP−stateを変更するか否か判定する周期を示す情報が含まれる。制御情報は周期算出部124によって生成され、P−state決定部123によって参照される。履歴記憶部122は、P−stateの変更履歴を示す履歴情報を記憶する。履歴情報には、P−stateを変更した時刻と変更後のP−stateとを示す情報が含まれる。履歴情報は、P−state決定部123によって生成され、周期算出部124によって参照される。
P−state決定部123は、制御情報記憶部121に記憶された制御情報が示すP−state制御周期に従って間欠的に、P−stateを調整する。P−state制御タイミングが到来すると、P−state決定部123は、CPUモニタ111からの報告に基づいて現在のCPU使用率を算出し、CPU使用率と現在のP−stateに基づいてP−stateを変更するか否か判定する。前述のように、例えば、P−stateがP8でありCPU使用率が上限閾値以上である場合にはP8からP4に変更すると決定され、P−stateがP4でありCPU使用率が上限閾値以上である場合にはP4からP0に変更すると決定される。また、P−stateがP0でありCPU使用率が下限閾値未満である場合にはP0からP4またはP8に変更すると決定される。
P−stateの変更が決定された場合、P−state決定部123は、変更後のP−stateをP−state指示部112に通知する。また、P−state決定部123は、履歴記憶部122に記憶された履歴情報に、現在時刻と変更後のP−stateを示す情報を追加する。このとき、P−state決定部123は、所定回数以上前または所定時間以上前の古い情報を履歴情報から削除するようにしてもよい。
周期算出部124は、Webサーバ100の入力負荷の変動周期に基づいて、適切なP−state制御周期を算出する。算出したP−state制御周期が現在のP−state制御周期と異なる場合、周期算出部124は、制御情報記憶部121に記憶された制御情報を更新する。第2の実施の形態では、Webサーバ100の入力負荷の変動周期は、履歴記憶部122に記憶された履歴情報に基づいて推定することとする。具体的には、周期算出部124は、CPU101のP−stateがP0に上がった平均間隔を、入力負荷の変動周期と推定する。周期算出部124は、推定した入力負荷の変動周期よりも短い周期を、適切なP−state制御周期として算出する。ただし、入力負荷の変動に周期性がないと判断される場合は、P−state制御周期を変更しなくてもよい。
ここで、周期算出部124がP−state制御周期を算出する契機は、例えば、履歴情報が更新された(P−state決定部123がP−stateの変更を決定した)ことであってもよい。また、P−state制御周期を算出する契機は、履歴情報にP0の情報が追加された(CPU101のP−stateがP8またはP4からP0に上がった)ことであってもよい。また、周期算出部124が、P−state制御周期よりも長い間隔で定期的にP−state制御周期を算出するようにしてもよい。
リクエストキュー131は、Webサーバ100が受信したリクエストを一時的に記憶するキュー構造のバッファである。リクエストキュー131に記憶されたリクエストは、リクエスト処理部132によって取り出されて処理される。CPU101の演算能力の不足によって未処理になっているリクエストは、リクエストキュー131に滞留することになる。滞留しているリクエストの数を、キュー長と言うことができる。
リクエスト処理部132は、CPU101を用いて、リクエストキュー131に記憶されているリクエストを順次処理する。例えば、リクエスト処理部132は、クライアント21から受信されたHTTPのリクエストから実行すべき業務ロジックを特定し、特定した業務ロジックを示すリクエストをアプリケーションサーバ100aに送信する。リクエスト処理部132は、アプリケーションサーバ100aから業務ロジックの実行結果を受信すると、HTTPのレスポンスを生成してクライアント21に送信する。
なお、図7では、P−stateを変更するか否かの判定およびP−state制御周期の算出を、OSで行うこととした。これは、「OS制御型」と言うことができる。これに対し、P−stateを変更するか否かの判定およびP−state制御周期の算出を、BIOSで行うことも可能である。これは、「BIOS制御型」と言うことができる。その場合、制御情報記憶部121および履歴記憶部122は、BIOSが使用するRAM102またはHDD104の記憶領域として実現される。また、P−state決定部123および周期算出部124は、BIOSのプログラムモジュールとして実装される。
また、CPU101が複数のコアを有しており、DVFS回路101bがコア毎に独立にP−stateを変更できる場合も考えられる。その場合、P−state決定部123は、コア毎にP−stateを変更するか否か判定してもよく、周期算出部124は、コア毎にP−state制御周期を算出するようにしてもよい。
また、上記の説明では、P−stateがP8またはP4からP0に上がった平均間隔を入力負荷の変動周期と推定することとしたが、P−stateが所定の閾値以上に上がった平均間隔を入力負荷の変動周期と推定してもよい。例えば、OSがP−stateをP0,P4,P8の3段階ではなくP0〜P8の9段階で調整できるとする。その場合、P2を閾値とし、P−stateがP3〜P8からP0〜P2に上がった平均間隔を入力負荷の変動周期と推定することも可能である。また、周期算出部124は、履歴情報が示すP−stateの変化を波動解析してP−stateのピークの平均間隔を算出し、ピークの平均間隔を入力負荷の変動周期と推定するようにしてもよい。また、周期算出部124は、アプリケーションソフトウェアからリクエストキュー131のキュー長を示す情報を継続的に収集し、入力負荷の変動周期としてキュー長の変動周期を算出してもよい。
図8は、履歴テーブルの例を示す図である。
履歴テーブル125は、履歴記憶部122に格納されている。履歴テーブル125は、時刻およびP−stateの項目を含む。時刻の項目には、P−state決定部123がP−stateの変更を決定した時刻が登録される。この時刻は、例えば、ミリ秒の精度で表現される。P−stateの項目には、変更後のP−stateを示す情報(例えば、P0,P4,P8の何れか)が登録される。履歴テーブル125に含まれるレコード(時刻とP−stateの組)のうちP−stateがP0であるレコードが、周期算出部124によってP−state制御周期を算出するために利用される。
次に、P−state制御周期を算出する手順について説明する。
図9は、入力負荷の周期性の例を示す図である。
周期算出部124は、入力負荷の周期性を判断し、入力負荷が周期的に変動していると判断される場合に、入力負荷の変動周期より短いP−state制御周期を算出する。前述のように、入力負荷の周期性は、過去のP−stateの周期性から推定できる。
P−stateの周期性を判断するにあたり、周期算出部124は、履歴テーブル125からP−stateがP0であるレコード(P−stateがP8またはP4からP0に上がったことを示すレコード)を抽出する。周期算出部124は、抽出したレコードのうち隣接する2つのレコード毎に時刻の差、すなわち、P−stateが前回P0に上がってから次に再びP0に上がるまでの時間を、間隔Bjとして算出する。このとき、P−stateがP0になった間隔Bには古い順に番号jが付与され、最新の間隔Bには番号iが付与されているとする(i,jは1≦j≦iを満たす正の整数)。
次に、周期算出部124は、数式(1)のように直近k個の間隔Bjの算術平均AAiを算出する(kは2以上の整数)。例えば、周期算出部124は、間隔Bj,Bj-1,Bj-2,…,Bi-k+1の合計をkで割ることで算術平均AAiを算出する。次に、周期算出部124は、数式(2)のように直近k個の間隔Bjの標準偏差SDiを算出する。例えば、周期算出部124は、間隔Bjと算術平均AAiの差の二乗を合計しk−1で割って平方根をとることで、標準偏差SDiを算出する。次に、周期算出部124は、数式(3)のように直近k個の間隔Bjの変動係数CViを算出する。例えば、周期算出部124は、標準偏差SDiを算術平均AAiで割ることで変動係数CViを算出する。
Figure 0006300632
Figure 0006300632
Figure 0006300632
算出した変動係数CViが閾値TH(例えば、TH=0.2)未満である場合、周期算出部124は、過去のP−stateの変更に周期性がある、すなわち、入力負荷に周期性があると判断する。図9の上段の場合、間隔B1〜B7のばらつきが小さく変動係数CV7が小さいため、入力負荷に周期性があると判断される。一方、変動係数CViが閾値TH以上である場合、周期算出部124は、過去のP−stateの変更に周期性がない、すなわち、入力負荷に周期性がないと判断する。図9の下段の場合、間隔B1〜B3のばらつきが大きく変動係数CV3が大きいため、入力負荷に周期性がないと判断される。
入力負荷に周期性があると判断した場合、周期算出部124は、入力負荷の変動周期を所定の割合で短縮した周期をP−state制御周期として算出する。具体的には、周期算出部124は、間隔Bjの算術平均AAiのn分の1(例えば、n=10)をP−state制御周期とする。ただし、周期算出部124は、P−state制御周期が下限値Tlower(例えば、50ms)以上かつ上限値Tupper(例えば、500ms)以下になるように、P−state制御周期をクリッピングする。
よって、P−state制御周期Tiは数式(4)のように定義できる。周期算出部124は、AAi/nが下限値Tlower未満である場合はTi=Tlowerと設定し、AAi/nが下限値Tlower以上かつ上限値Tupper以下である場合はTi=AAi/nと設定し、AAi/nが上限値Tupperを超える場合はTi=Tupperと設定する。
Figure 0006300632
図10は、周期調整の手順例を示すフローチャートである。
前述のように、この周期調整は、CPU101のP−stateが変更される毎、または、P−stateがP4,P8からP0に上がる毎に実行されてもよい。また、この周期調整は、P−state制御周期より長い所定間隔で実行されてもよい。
(S10)周期算出部124は、履歴記憶部122に記憶された履歴テーブル125から、P−stateがP0であるレコード(変更履歴)を抽出する。
(S11)周期算出部124は、ステップS10で抽出された変更履歴の中に、図10の周期制御を前回実行してから追加された変更履歴が存在するか、すなわち、周期制御を前回実行してからP−stateがP0に上がったことがあるか判断する。追加された変更履歴がある場合はステップS12に処理を進め、ない場合は周期調整が終了する。
(S12)周期算出部124は、抽出された変更履歴が示す時刻から、P−stateがP0に上がった間隔Bjを算出する。間隔Bjは少なくとも直近k個分について算出する。そして、周期算出部124は、直近k個の間隔Bjの算術平均AAiを算出する。
(S13)周期算出部124は、直近k個の間隔Bjとその算術平均AAiとから、間隔Bjの標準偏差SDiを算出する。そして、周期算出部124は、算術平均AAiと標準偏差SDiとから、直近k個の間隔Bjの変動係数CViを算出する。
(S14)周期算出部124は、ステップS13で算出した変動係数CViが閾値TH(例えば、0.2)未満か、すなわち、直近k個の間隔Bjのばらつきが小さいか判断する。変動係数CViが閾値TH未満の場合、周期算出部124は入力負荷の変動に周期性があると判断し、ステップS15に処理が進む。変動係数CViが閾値TH以上の場合、周期算出部124は入力負荷の変動に周期性がないと判断し、周期調整が終了する。周期性がない場合、現在のP−state制御周期Ti-1が維持されることになる。
(S15)周期算出部124は、ステップS12で算出した算術平均AAiのn分の1(=AAi/n)を算出する。nは周期調整の速度に影響を与えるパラメータであり、例えば、n=10とする。周期算出部124は、AAi/nが下限値Tlower未満であるか判断する。AAi/nが下限値Tlower未満の場合はステップS16に処理が進み、AAi/nが下限値Tlower以上の場合はステップS17に処理が進む。
(S16)周期算出部124は、P−state制御周期Tiを下限値Tlower(例えば、50ms)とする。そして、ステップS20に処理が進む。
(S17)周期算出部124は、AAi/nが上限値Tupperを超えるか判断する。AAi/nが上限値Tupperを超える場合はステップS18に処理が進み、AAi/nが上限値Tupper以下の場合はステップS19に処理が進む。
(S18)周期算出部124は、P−state制御周期Tiを上限値Tupper(例えば、500ms)とする。そして、処理がステップS20に進む。
(S19)周期算出部124は、P−state制御周期TiをAAi/nとする。これにより、所定の範囲内に属するP−state制御周期Tiが算出される。
(S20)周期算出部124は、ステップS16,S18またはS19で算出されたP−state制御周期Tiが現在のP−state制御周期Ti-1と異なるか判断する。現在のP−state制御周期Ti-1は、制御情報記憶部121に記憶された制御情報を参照して確認できる。TiがTi-1と異なる場合、ステップS21に処理が進む。TiがTi-1と同じ場合、制御情報が更新されずに周期調整が終了する。
(S21)周期算出部124は、制御情報記憶部121に記憶された制御情報を、上記で算出されたP−state制御周期Tiを示すように更新する。
次に、P−state制御周期を可変にした場合としない場合の動作の違いを示す。
図11は、CPU動作の第1のシミュレーション例を示すグラフである。
このシミュレーション例は、P−state制御周期を可変にせずに500msに固定した場合を示している。ここでは、入力負荷の変動周期が500msであるかまたは500msに近いとする。すると、入力負荷とP−stateの「反同期」が発生する。
図11に示すように、P−stateがP0からP8に下がった後、P−stateがP8からP4に上がるまでの間、キュー長(リクエストキュー131に滞留している未処理のリクエストの数)が急増している。一方、P−stateがP4からP0に上がった後にキュー長が急減し、キュー長が短い時間がしばらく続いている。すなわち、「反同期」によって、キュー長の急激な増加と減少とが繰り返されている。キュー長が急増すると、それに合わせてリクエストに対する応答時間も急激に長くなる。すなわち、リクエストに対する応答時間の変動が大きくなり、パフォーマンスが低下している。
図12は、CPU動作の第2のシミュレーション例を示すグラフである。
このシミュレーション例は、図10に示したような方法でP−state制御周期を可変にした場合を示している。入力負荷の周期性が検知されると、P−state制御周期が500msから徐々に短縮される。P−state制御周期が短くなると、入力負荷が変動してからP−stateが変更されるまでのタイムラグが小さくなり、入力負荷がP−stateに適切に反映されるようになる。すなわち、入力負荷とP−stateの「反同期」が抑制される。そして、P−stateがP0に上がった平均間隔に基づいて算出されるP−state制御周期も収束していく。図12の例では、P−state制御周期が100ms程度に収束している。このP−state制御周期は、入力負荷の変動周期が変わったときに、それに追従して変更されることになる。
また、入力負荷とP−stateのミスマッチが抑制されることで、最大のキュー長が図11の場合よりも短く抑えられている。キュー長の増加が抑えられることで、リクエストに対する応答時間の増加を抑えられる。すなわち、リクエストに対する応答時間の変動が小さくなり、アプリケーションソフトウェアのパフォーマンスが安定する。
ところで、図10に示した方法では、入力負荷に周期性がないと判断した場合、現在のP−state制御周期を維持している。よって、P−state制御周期を短くした後に入力負荷の周期性が消滅すると、その短いP−state制御周期が当面維持される。一方、入力負荷に周期性がなければ「反同期」が発生する可能性は低いため、P−state制御周期は長くてもよい。また、入力負荷の変動周期が長くなるとき、過渡的に入力負荷の周期性が消滅したように見えることがある。このとき、入力負荷の変動周期が安定するのを待たずに、P−state制御周期を長くする余地もある。
そこで、入力負荷に周期性がないと判断される場合であっても、P−state制御周期を変更し得る変形例が考えられる。ただし、上記の理由から、P−state制御周期を長くすることを許容する一方、P−state制御周期を短くすることは制限する。
具体的には、入力負荷に周期性がないと判断される場合、P−state制御周期Tiは数式(5)のように定義される。周期算出部124は、AAi/nが現在のP−state制御周期Ti-1以下である場合はTi=Ti-1と設定する。すなわち、P−state制御周期を短くせずに現在のP−state制御周期を維持する。また、周期算出部124は、AAi/nがTi-1より大きくかつ上限値Tupper以下である場合はTi=AAi/nと設定し、AAi/nが上限値Tupperを超える場合はTi=Tupperと設定する。
Figure 0006300632
図13は、他の周期調整の手順例を示すフローチャートである。
周期調整の変形例は、図10のステップS14に代えて、以下のステップS14a,S14bが実行される。他のステップは図10と図13とで共通している。
(S14a)周期算出部124は、ステップS13で算出した変動係数CViが閾値TH未満か、すなわち、直近k個の間隔Bjのばらつきが小さいか判断する。変動係数CViが閾値TH未満の場合、周期算出部124は入力負荷の変動に周期性があると判断し、ステップS15に処理が進む。変動係数CViが閾値TH以上の場合、周期算出部124は入力負荷の変動に周期性がないと判断し、ステップS14bに処理が進む。
(S14b)周期算出部124は、ステップS12で算出した算術平均AAiのn分の1(=AAi/n)を算出する。周期算出部124は、AAi/nが現在のP−state制御周期Ti-1より大きいか判断する。AAi/nがTi-1より大きい場合はステップS17に処理が進み、AAi/nがTi-1以下の場合はステップS20に処理が進む。
第2の実施の形態の情報処理システムによれば、Webサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bそれぞれのP−state制御周期が、入力負荷の変動周期に応じて変更される。特に、P−state制御周期が、入力負荷の変動周期の1/nに設定される。よって、入力負荷とP−stateのミスマッチを抑制してCPUを効率的に運用でき、アプリケーションソフトウェアのパフォーマンスを向上できる。また、P−state制御周期を短周期に固定する場合と比べて、P−state制御のオーバヘッドを抑制でき、CPUの省電力化を図ることができる。
また、P−stateの変更履歴から入力負荷の変動周期を推定することで、アプリケーションソフトウェアから情報を収集しなくてもよく、OSやBIOSが一元的にP−state制御を行える。よって、P−state制御の実装が容易となる。なお、P−stateの変更履歴からは、入力負荷とP−stateのミスマッチを抑制するのに十分な精度で入力負荷の変動周期を推定することができる。例えば、P−stateが変更されない程度の入力負荷の変動は、「反同期」に与える影響が小さいため無視してもよい。
なお、前述のように、第1の実施の形態の情報処理は、情報処理装置10にプログラムを実行させることで実現することができる。また、第2の実施の形態の情報処理は、クライアント21、Webサーバ100、アプリケーションサーバ100aおよびデータベースサーバ100bにプログラムを実行させることで実現することができる。
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体33)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD104)にプログラムを複製して(インストールして)実行してもよい。
10 情報処理装置
11 プロセッサ
12 記憶部
12a プログラム

Claims (7)

  1. 消費電力の異なる複数の動作レベルの中から動作レベルを切替可能なプロセッサと、
    前記プロセッサの動作レベルを制御するプログラムを記憶する記憶部と、を有し、
    前記プログラムを実行する前記プロセッサは、
    過去に前記プロセッサの動作レベルが切り替わったタイミングを示す変更履歴に基づいて自装置の負荷変動の周期性を検出し、前記負荷変動の周期性に応じて、前記プロセッサの動作レベルを切り替えるか否か判定する判定周期を変更する、
    情報処理装置。
  2. 前記プロセッサは、過去に前記プロセッサの動作レベルが閾値以上になったタイミングを前記変更履歴から検出し、前記検出したタイミングの周期に基づいて前記判定周期を算出する、請求項記載の情報処理装置。
  3. 前記プロセッサは、前記情報処理装置の負荷変動の周期を算出し、前記判定周期を前記負荷変動の周期より短く設定する、請求項1または2記載の情報処理装置。
  4. 前記プロセッサは、前記情報処理装置の負荷変動に周期性がないと判断した場合、前記判定周期の短縮を制限する、請求項1乃至の何れか一項に記載の情報処理装置。
  5. 前記複数の動作レベルの間では、前記プロセッサのクロック周波数と電圧の少なくとも一方が異なる、請求項1乃至の何れか一項に記載の情報処理装置。
  6. 消費電力の異なる複数の動作レベルの中から動作レベルを切替可能なプロセッサを有するコンピュータが実行する負荷制御方法であって、
    過去に前記プロセッサの動作レベルが切り替わったタイミングを示す変更履歴に基づいて前記コンピュータの負荷変動の周期性を検出し、
    前記負荷変動の周期性に応じて、前記プロセッサの動作レベルを切り替えるか否か判定する判定周期を変更する、
    負荷制御方法。
  7. 消費電力の異なる複数の動作レベルの中から動作レベルを切替可能なプロセッサを有するコンピュータに、
    過去に前記プロセッサの動作レベルが切り替わったタイミングを示す変更履歴に基づいて前記コンピュータの負荷変動の周期性を検出し、
    前記負荷変動の周期性に応じて、前記プロセッサの動作レベルを切り替えるか否か判定する判定周期を変更する、
    処理を実行させる負荷制御プログラム。
JP2014103278A 2013-10-24 2014-05-19 情報処理装置、負荷制御方法および負荷制御プログラム Expired - Fee Related JP6300632B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/062,260 US9436265B2 (en) 2013-10-24 2013-10-24 Information processing apparatus and load control method
US14/062,260 2013-10-24

Publications (2)

Publication Number Publication Date
JP2015082321A JP2015082321A (ja) 2015-04-27
JP6300632B2 true JP6300632B2 (ja) 2018-03-28

Family

ID=52996845

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014103278A Expired - Fee Related JP6300632B2 (ja) 2013-10-24 2014-05-19 情報処理装置、負荷制御方法および負荷制御プログラム

Country Status (2)

Country Link
US (1) US9436265B2 (ja)
JP (1) JP6300632B2 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102205836B1 (ko) * 2014-01-29 2021-01-21 삼성전자 주식회사 태스크 스케줄링 방법 및 장치
KR102190453B1 (ko) * 2014-02-17 2020-12-11 삼성전자주식회사 전력 관리 장치 및 이를 포함하는 시스템 온 칩
KR102197874B1 (ko) * 2014-09-01 2021-01-05 삼성전자주식회사 멀티-코어 프로세서를 포함하는 시스템 온 칩 및 그것의 쓰레드 스케줄링 방법
US9830242B2 (en) * 2015-01-14 2017-11-28 Mediatek Inc. Loading calculation method and loading calculation system for processor in electronic device
JP6631374B2 (ja) * 2016-04-13 2020-01-15 富士通株式会社 情報処理装置、動作状況収集プログラム及び動作状況収集方法
US11054883B2 (en) * 2017-06-19 2021-07-06 Advanced Micro Devices, Inc. Power efficiency optimization in throughput-based workloads
US10775876B2 (en) * 2017-12-29 2020-09-15 Advanced Micro Devices, Inc. Method and apparatus for controlling power consumption of an integrated circuit
KR102844706B1 (ko) * 2019-05-31 2025-08-08 나이키 이노베이트 씨.브이. 동적 응답 목표를 가지는 멀티채널 통신 플랫폼
JP7415650B2 (ja) * 2020-02-25 2024-01-17 富士通株式会社 負荷変動試験プログラム及び負荷変動試験方法
JPWO2024122065A1 (ja) * 2022-12-09 2024-06-13
JP2024172833A (ja) * 2023-06-01 2024-12-12 日立Astemo株式会社 電子制御装置、制御システム、及び制御方法
CN119179582B (zh) * 2024-11-25 2025-06-20 阿里云计算有限公司 负载异常处理方法、电子设备、存储介质和程序产品

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10268963A (ja) * 1997-03-28 1998-10-09 Mitsubishi Electric Corp 情報処理装置
JP3368475B2 (ja) * 2000-05-19 2003-01-20 富士通株式会社 情報処理装置及び省電力制御方法及び省電力制御プログラムを格納した記録媒体
JP2002182776A (ja) 2000-12-18 2002-06-26 Kenwood Corp 動作周波数制御システム及び動作周波数制御方法
JP3864859B2 (ja) 2002-06-24 2007-01-10 株式会社日立製作所 半導体装置または上記半導体装置の消費電力を削減するプログラム
JP4030408B2 (ja) * 2002-10-31 2008-01-09 シャープ株式会社 動作周波数制御システムおよび方法
US7194385B2 (en) * 2002-11-12 2007-03-20 Arm Limited Performance level setting of a data processing system
US7240223B2 (en) 2003-05-07 2007-07-03 Apple Inc. Method and apparatus for dynamic power management in a processor system
JP2005117357A (ja) * 2003-10-08 2005-04-28 Nec Corp 無線通信システムの管理方法及びシステム並びに管理装置
JP4490298B2 (ja) 2004-03-02 2010-06-23 三菱電機株式会社 プロセッサ電力制御装置及びプロセッサ電力制御方法
US7360103B2 (en) * 2004-05-21 2008-04-15 Intel Corporation P-state feedback to operating system with hardware coordination
WO2006056824A2 (en) * 2004-09-10 2006-06-01 Freescale Semiconductor, Inc. Apparatus and method for controlling voltage and frequency
US7484108B2 (en) * 2005-06-23 2009-01-27 Intel Corporation Enhancing power delivery with transient running average power limits
US7562234B2 (en) * 2005-08-25 2009-07-14 Apple Inc. Methods and apparatuses for dynamic power control
GB2445167A (en) * 2006-12-29 2008-07-02 Advanced Risc Mach Ltd Managing performance of a processor
US7917789B2 (en) 2007-09-28 2011-03-29 Intel Corporation System and method for selecting optimal processor performance levels by using processor hardware feedback mechanisms
WO2009138953A1 (en) * 2008-05-13 2009-11-19 Nxp B.V. Power manager and method for managing power
US8028182B2 (en) * 2008-06-04 2011-09-27 Dell Products L.P. Dynamic CPU voltage regulator phase shedding
JP5267566B2 (ja) 2008-10-03 2013-08-21 日本電気株式会社 マルチプロセッサのカウント値補正装置及びこれを備えるマルチプロセッサ
US8239697B2 (en) * 2009-10-30 2012-08-07 Dell Products L.P. Processor performance state control system
US8839006B2 (en) * 2010-05-28 2014-09-16 Nvidia Corporation Power consumption reduction systems and methods
US8504854B2 (en) * 2010-06-21 2013-08-06 Advanced Micro Devices, Inc. Managing multiple operating points for stable virtual frequencies
JP2012173926A (ja) * 2011-02-21 2012-09-10 Nec Corp サーバシステム及び電力供給制御方法
US8572421B2 (en) * 2011-04-05 2013-10-29 Apple Inc. Adjusting device performance based on processing profiles
US9372524B2 (en) * 2011-12-15 2016-06-21 Intel Corporation Dynamically modifying a power/performance tradeoff based on processor utilization
US9442732B2 (en) * 2012-03-19 2016-09-13 Via Technologies, Inc. Running state power saving via reduced instructions per clock operation
US9195514B2 (en) * 2012-07-30 2015-11-24 Alcatel Lucent System and method for managing P-states and C-states of a system

Also Published As

Publication number Publication date
US9436265B2 (en) 2016-09-06
JP2015082321A (ja) 2015-04-27
US20150121103A1 (en) 2015-04-30

Similar Documents

Publication Publication Date Title
JP6300632B2 (ja) 情報処理装置、負荷制御方法および負荷制御プログラム
US9772794B2 (en) Method and apparatus for big data cloud storage resource management
JP6277827B2 (ja) 情報処理装置、スケール管理方法およびプログラム
JP4699837B2 (ja) ストレージシステム、管理計算機及びデータ移動方法
JP2011118525A (ja) サーバ管理装置とサーバ管理方法およびサーバ管理プログラム
Nishikawa et al. Energy efficient storage management cooperated with large data intensive applications
JP2005196430A (ja) 半導体装置および半導体装置の電源電圧/クロック周波数制御方法
US20120331235A1 (en) Memory management apparatus, memory management method, control program, and recording medium
JP6209863B2 (ja) ストレージ制御装置、ストレージ制御方法およびストレージ制御プログラム
JP2005099973A (ja) 運用管理システム
US20140013142A1 (en) Processing unit power management
JP6227841B1 (ja) データ処理システム及びデータ処理方法
JP4126702B2 (ja) 制御装置、情報処理システム、制御方法、及びプログラム
US11144234B2 (en) Apparatus, method for storage access management, and non-transitory computer-readable storage medium for storing program
JP2017194931A (ja) ストレージ管理装置、ストレージ装置管理方法及びストレージ装置管理プログラム
JP6928263B2 (ja) 情報処理装置、計算機制御方法、および計算機制御プログラム
JP4778538B2 (ja) ストレージデータ管理システム及びストレージデータ管理プログラム
JP5678923B2 (ja) ストレージシステム、入出力制御装置、入出力制御方法、および、コンピュータ・プログラム
CN113886746A (zh) 页面加载方法、装置、设备和介质
JP2019040343A (ja) 情報処理装置、プロセス管理方法およびプロセス管理プログラム
EP3032397A1 (en) Storage control device, cache control method, and cache control program
JP2017107486A (ja) 処理リソース制御プログラム、処理リソース制御装置、および処理リソース制御方法
CN120872262B (zh) 存储系统的数据处理方法和电子设备
JP2015095226A (ja) 情報処理装置、データアクセス方法およびプログラム
Yan et al. Prefigure: an analytic framework for hdd management

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171106

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180227

R150 Certificate of patent or registration of utility model

Ref document number: 6300632

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees