JP2009199367A - Computer system, i/o scheduler and i/o scheduling method - Google Patents

Computer system, i/o scheduler and i/o scheduling method Download PDF

Info

Publication number
JP2009199367A
JP2009199367A JP2008040633A JP2008040633A JP2009199367A JP 2009199367 A JP2009199367 A JP 2009199367A JP 2008040633 A JP2008040633 A JP 2008040633A JP 2008040633 A JP2008040633 A JP 2008040633A JP 2009199367 A JP2009199367 A JP 2009199367A
Authority
JP
Japan
Prior art keywords
disk
processes
disk access
access requests
file
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
JP2008040633A
Other languages
Japanese (ja)
Inventor
Teruyuki Baba
輝幸 馬場
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2008040633A priority Critical patent/JP2009199367A/en
Publication of JP2009199367A publication Critical patent/JP2009199367A/en
Withdrawn legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To increase a throughput under a condition that all processes execute disk access at least once within a prescribed time. <P>SOLUTION: An I/O scheduler performs the scheduling of access requests from a plurality of processes. The scheduling includes a step (A) for reading process characteristic information indicating an access target file and file position information, a step (B) for storing an access request in a wait queue, a step (C) for determining the order of wait queues so that the access target file is accessed in the arrangement order on a disk while referring to the process characteristic information and the file position information, a step (D) for determining the number of access requests to be taken out from respective wait queues so that all processes execute disk access at least once within the prescribed time, and a step (E) for acquiring the access requests from the wait queues and sending the acquired access requests to the disk in accordance with the determined order and number of access requests. <P>COPYRIGHT: (C)2009,JPO&INPIT

Description

本発明は、計算機システムに関する。特に、本発明は、計算機システムにおいて、ディスクへのアクセス要求をスケジューリングするI/Oスケジューリング技術に関する。   The present invention relates to a computer system. In particular, the present invention relates to an I / O scheduling technique for scheduling a disk access request in a computer system.

計算機システムにおいて、CPUが実行する多くのプロセスは、ディスクへのアクセス処理(データ読み込み、データ書き込み)を必要とする。従って、ディスクアクセス処理を高速化することは、計算機システムの高速化のために重要な課題の一つである。ディスクアクセス処理を高速化するためには、多くのプロセスからのディスクアクセス要求をそのままディスクに渡すのではなく、ディスクへ送られるディスクアクセス要求の順番を適切に調整することが重要である。そのような調整(調停)を行うことは、「スケジューリング」と呼ばれる。複数のプロセスからのディスクアクセス要求のスケジューリングを行うのが、OS内の「I/Oスケジューラ」である。   In a computer system, many processes executed by a CPU require a disk access process (data reading, data writing). Therefore, speeding up the disk access processing is one of the important issues for speeding up the computer system. In order to increase the speed of the disk access processing, it is important to appropriately adjust the order of the disk access requests sent to the disk, instead of directly passing the disk access requests from many processes to the disk. Performing such adjustment (arbitration) is called “scheduling”. The “I / O scheduler” in the OS performs scheduling of disk access requests from a plurality of processes.

特許文献1には、複数のコンピュータで共有される外部記憶装置が開示されている。その外部記憶装置は、データを格納する複数の記憶ディスク部と、外部記憶制御部とを備える。記憶ディスク部は、データに対する読み出し/書き込みコマンドをキューイング可能である。外部記憶制御部は、コンピュータからのコマンドを受入キューに蓄え記憶ディスク部に順次発行することによって、コンピュータと記憶ディスク部との間のデータ入出力処理を制御する。より詳細には、外部記憶制御部は、予測処理時間生成手段と、送出キューと、処理時間予測手段と、コマンドキューイング手段と、コマンドバッチ生成手段とを含む。予測処理時間生成手段は、コマンドの処理に要すると予測される時間であるコマンド処理時間予測値を生成する。送出キューは、コマンドの待ち行列である。送出キューには、コマンド処理時間予測値の和が所定の処理タイムスライスに応じた値となる個数だけ、受入キュー内のコマンドが所定のタイミングで格納される。処理時間予測手段は、予測処理時間生成手段に基づいて、各記憶ディスク部別の処理時間を予測する。コマンドキューイング手段は、予測された処理時間が最大となる記憶ディスク部に対するコマンドを送出キューから取り出して、対応する記憶ディスク部にキューイングする。コマンドバッチ生成手段は、各送出キューが空になると、受入キュー内のコマンドを送出キューに格納する。   Patent Document 1 discloses an external storage device shared by a plurality of computers. The external storage device includes a plurality of storage disk units for storing data and an external storage control unit. The storage disk unit can queue read / write commands for data. The external storage control unit controls data input / output processing between the computer and the storage disk unit by storing commands from the computer in an acceptance queue and sequentially issuing the commands to the storage disk unit. More specifically, the external storage control unit includes a predicted processing time generation unit, a sending queue, a processing time prediction unit, a command queuing unit, and a command batch generation unit. The predicted processing time generation unit generates a command processing time predicted value that is a predicted time required for command processing. The send queue is a queue of commands. In the sending queue, the commands in the receiving queue are stored at a predetermined timing as many times as the sum of the command processing time predicted values becomes a value corresponding to a predetermined processing time slice. The processing time prediction means predicts the processing time for each storage disk unit based on the predicted processing time generation means. The command queuing means takes out a command for the storage disk unit having the maximum estimated processing time from the transmission queue and queues the command to the corresponding storage disk unit. The command batch generation means stores the commands in the receiving queue in the sending queue when each sending queue becomes empty.

特開平9−258907号公報JP-A-9-258907

近年、CPU性能は急速に向上しているが、ディスク性能はCPUほど急速には向上していない。そのため、ディスクアクセス要求の発行からレスポンスを受け取るまでの待ち時間が非常に長くなるプロセスやCPUが発生し得る。待ち時間が長くなったり、頻繁に待ち状態が発生したりすると、システム全体の効率が低下してしまう。従って、I/Oスケジューラは、待ち時間が短くなるように、複数のプロセスからのディスクアクセス要求をスケジューリングすることが好適である。   In recent years, CPU performance has improved rapidly, but disk performance has not improved as rapidly as CPU. For this reason, there may be a process or CPU in which the waiting time from when a disk access request is issued until a response is received becomes very long. If the waiting time becomes long or the waiting state frequently occurs, the efficiency of the entire system is lowered. Therefore, it is preferable that the I / O scheduler schedules disk access requests from a plurality of processes so that the waiting time is shortened.

また、ディスクアクセス処理を高速化するために、ディスクとCPUとの間の単位時間あたりのデータ転送速度であるディスク帯域幅(スループット)を向上させることも重要である。よって、I/Oスケジューラは、スループットが向上するように、複数のプロセスからのディスクアクセス要求をスケジューリングすることが好適である。   It is also important to improve the disk bandwidth (throughput), which is the data transfer rate per unit time between the disk and the CPU, in order to speed up the disk access process. Therefore, it is preferable that the I / O scheduler schedules disk access requests from a plurality of processes so as to improve the throughput.

しかしながら、一般的に、「待ち時間の短縮」と「スループットの向上」とは互いに相反する関係にある。そのことを、図1で示される例を参照して説明する。   However, in general, “reduction of waiting time” and “improvement of throughput” are in a mutually contradictory relationship. This will be described with reference to the example shown in FIG.

図1において、プロセスP1〜P4が、ディスクに記録されているファイルF1〜F4のそれぞれへアクセスを行うとする。I/Oスケジューラは、プロセスP1〜P4のそれぞれから発行されるディスクアクセス要求をどのような順番でディスクへ送るかを決定する。より詳細には、I/Oスケジューラは、ディスクアクセス要求を一時的に保持しておく待ちキューQ1〜Q4を有している。待ちキューはプロセス毎に割り当てられており、図1の例では、待ちキューQ1〜Q4がそれぞれプロセスP1〜P4に割り当てられている。つまり、プロセスP1〜P4からのディスクアクセス要求は、待ちキューQ1〜Q4のそれぞれに一旦格納される。リクエスト選択部は、“所定の規則”に従って、待ちキューQ1〜Q4からディスクアクセス要求を取り出し、取り出したものを順次ディスクへ送る。   In FIG. 1, it is assumed that processes P1 to P4 access files F1 to F4 recorded on the disc. The I / O scheduler determines in what order the disk access requests issued from each of the processes P1 to P4 are sent to the disk. More specifically, the I / O scheduler has wait queues Q1 to Q4 that temporarily hold disk access requests. The wait queue is assigned for each process. In the example of FIG. 1, the wait queues Q1 to Q4 are assigned to the processes P1 to P4, respectively. That is, disk access requests from the processes P1 to P4 are temporarily stored in the waiting queues Q1 to Q4. The request selection unit takes out the disk access requests from the waiting queues Q1 to Q4 according to the “predetermined rule”, and sequentially sends the taken out requests to the disk.

ここで、その所定の規則としては、(1)それぞれの待ちキューからディスクアクセス要求を1個ずつ順番に取り出す、あるいは、(2)1つの待ちキューに格納されている全てのディスクアクセス要求を取り出した後、次の待ちキューへ移る、が考えられる。これら2つの規則はそれぞれ長所と短所を有している。   Here, as the predetermined rule, (1) one disk access request is sequentially taken out from each waiting queue, or (2) all disk access requests stored in one waiting queue are taken out. After that, it is possible to move to the next waiting queue. Each of these two rules has advantages and disadvantages.

規則(1)の場合、リクエスト選択部は、ある待ちキューから1個のディスクアクセス要求を取り出した後、すぐに次の待ちキューへ移る。その結果、あるプロセスがディスク上のあるファイルにアクセスした後、すぐに別のプロセスがディスク上の別のファイルにアクセスすることになる。従って、それぞれのプロセスが短い待ち時間で次々とディスクアクセスすることが可能となる。待ち時間が極端に長くなるプロセスが無いので、タイムアウトは発生せず、また、各プロセスの処理効率が向上する。その一方で、ディスク上のアクセス対象のファイルが次々と切り換わるため、ディスクヘッドは頻繁に移動する必要があり、ファイル間のシークに時間がとられてしまう。ファイル間のシーク時間が増大すると、ある一定の期間のうちに各ファイルから読み出せる(あるいは書き込める)データ量が必然的に少なくなってしまう。このことは、単位時間あたりのデータ伝送速度であるスループットが低下することを意味する。このように、規則(1)の場合、待ち時間は短縮されるが、スループットが低下する。   In the case of rule (1), the request selection unit takes out one disk access request from a certain waiting queue and immediately moves to the next waiting queue. As a result, after one process accesses a file on the disk, another process immediately accesses another file on the disk. Therefore, each process can access the disk one after another with a short waiting time. Since no process has an extremely long waiting time, no timeout occurs and the processing efficiency of each process is improved. On the other hand, since the files to be accessed on the disk are switched one after another, it is necessary to move the disk head frequently, and it takes time to seek between the files. When the seek time between files increases, the amount of data that can be read (or written) from each file within a certain period of time inevitably decreases. This means that the throughput, which is the data transmission rate per unit time, decreases. Thus, in the case of rule (1), the waiting time is shortened, but the throughput is reduced.

規則(2)の場合、リクエスト選択部は、1つの待ちキューに格納されている全てのディスクアクセス要求を取り出した後、次の待ちキューへ移る。そのため、アクセス対象のファイルが頻繁に切り換わることがない。また、一般的に、同一プロセスがアクセスするデータはディスク上の近い位置に存在している。従って、ディスクヘッドのシーク時間が短くなり、その分、単位時間あたりのデータ転送速度であるスループットが増加する。その一方で、あるプロセスからの全てのディスクアクセス要求の処理が終了するまで、次のプロセスは待機する必要がある。つまり、後のプロセスほど待ち時間は長くなり、タイムアウトが発生する可能性が高くなる。この傾向は、同時に動作するプロセスの数が多くなるほど、また、1つのプロセスが発行するディスクアクセス要求の数が多くなるほど、強くなる。このように、規則(2)の場合、スループットは向上するが、待ち時間が長くなる。   In the case of rule (2), the request selection unit extracts all disk access requests stored in one wait queue, and then moves to the next wait queue. Therefore, the file to be accessed does not switch frequently. In general, data accessed by the same process exists at a close position on the disk. Accordingly, the seek time of the disk head is shortened, and the throughput, which is the data transfer rate per unit time, is increased accordingly. On the other hand, the next process needs to wait until processing of all disk access requests from a process is completed. In other words, the later process has a longer waiting time and the possibility of a timeout occurring. This tendency becomes stronger as the number of processes operating simultaneously increases and as the number of disk access requests issued by one process increases. Thus, in the case of rule (2), the throughput is improved, but the waiting time is increased.

本願発明者は次の点に着目した。実際のシステム運用においては、各プロセスの待ち時間は最小である必要はなく、多くの場合、各プロセスは予め定められた時間(例えば、アプリケーションのタイムアウトが発生しない時間)内に処理を開始すればよい。つまり、所定の時間内に、各プロセスは少なくとも1回ディスクアクセスを行えばよい。このような条件の下で、スループットを可能な限り大きくすることが望まれる。   The inventor of the present application paid attention to the following points. In actual system operation, the waiting time of each process does not need to be minimum, and in many cases, if each process starts processing within a predetermined time (for example, a time when an application timeout does not occur) Good. In other words, each process may perform disk access at least once within a predetermined time. Under such conditions, it is desired to increase the throughput as much as possible.

本発明の1つの目的は、所定の時間内に全てのプロセスがディスクアクセスを少なくとも1回実行するという条件の下で、スループットをできるだけ大きくすることができるスケジューリング技術を提供することにある。   One object of the present invention is to provide a scheduling technique capable of increasing the throughput as much as possible under the condition that all processes execute disk access at least once within a predetermined time.

本発明の第1の観点において、I/Oスケジューラが提供される。I/Oスケジューラは、複数のプロセスがディスクにアクセスする際に、それぞれのプロセスから発行されるディスクアクセス要求のスケジューリング処理をコンピュータに実行させる。そのスケジューリング処理は、(A)複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及びディスクに記録されているファイルの位置を示すファイル位置情報を、記憶装置から読み出すステップと、(B)複数のプロセスからのディスクアクセス要求を、複数の待ちキューのそれぞれに格納するステップと、(C)プロセス特性情報及びファイル位置情報を参照し、アクセス対象ファイルがディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される複数の待ちキューの順番を決定するステップと、(D)所定の時間内に複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、当該所定の時間内に複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定するステップと、(E)上記決定された順番及び数に従って、複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求をディスクに送るステップと、を含む。   In a first aspect of the present invention, an I / O scheduler is provided. When a plurality of processes access a disk, the I / O scheduler causes a computer to execute a scheduling process of a disk access request issued from each process. The scheduling process includes (A) reading process characteristic information indicating an access target file accessed by each of a plurality of processes and file position information indicating a position of a file recorded on the disk from a storage device; B) A step of storing disk access requests from a plurality of processes in each of a plurality of wait queues, and (C) referring to process characteristic information and file position information, and the access target files are sequentially arranged in the order of arrangement on the disk. Determining the order of a plurality of wait queues from which disk access requests are retrieved so as to be accessed, and (D) the predetermined process so that all of the plurality of processes perform disk access at least once within a predetermined time period. The disk is removed from each of the multiple waiting queues within Determining a number of access requests, according to the order and the number determined above (E), comprising the steps of: sending from a plurality of waiting queue to get the disk access request, the disk access request to the disk obtained, the.

本発明の第2の観点において、複数のプロセスがディスクにアクセスする際に、それぞれのプロセスから発行されるディスクアクセス要求のスケジューリング処理を行うI/Oスケジューリング方法が提供される。そのI/Oスケジューリング方法は、(A)複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及びディスクに記録されているファイルの位置を示すファイル位置情報を、記憶装置から読み出すステップと、(B)複数のプロセスからのディスクアクセス要求を、複数の待ちキューのそれぞれに格納するステップと、(C)プロセス特性情報及びファイル位置情報を参照し、アクセス対象ファイルがディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される複数の待ちキューの順番を決定するステップと、(D)所定の時間内に複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、当該所定の時間内に複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定するステップと、(E)上記決定された順番及び数に従って、複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求をディスクに送るステップと、を含む。   In a second aspect of the present invention, there is provided an I / O scheduling method for performing a scheduling process of a disk access request issued from each process when a plurality of processes access the disk. In the I / O scheduling method, (A) a step of reading process characteristic information indicating an access target file accessed by each of a plurality of processes and file position information indicating a position of a file recorded on a disk from a storage device (B) a step of storing disk access requests from a plurality of processes in each of a plurality of waiting queues; and (C) referring to process characteristic information and file position information, and the access target files are arranged in order on the disk. (D) determining the order of a plurality of waiting queues from which disk access requests are taken out, so that all of the plurality of processes perform disk access at least once within a predetermined time period. And is taken out from each of the plurality of waiting queues within the predetermined time. And determining the number of I disk access request, in accordance with (E) the determined order and number, and sending a plurality of waiting queue to get the disk access request, the disk access request to the disk obtained, the.

本発明の第3の観点において、計算機システムが提供される。計算機システムは、ディスクと、そのディスクにアクセスする複数のプロセスを実行する処理装置と、I/Oスケジューラと、記憶装置とを備える。記憶装置には、複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及びディスクに記録されているファイルの位置を示すファイル位置情報が格納される。I/Oスケジューラは、処理装置によって実行され、複数のプロセスのそれぞれから発行されるディスクアクセス要求のスケジューリング処理を行う。より詳細には、I/Oスケジューラは、複数のプロセスからのディスクアクセス要求を複数の待ちキューのそれぞれに格納する。I/Oスケジューラは、プロセス特性情報及びファイル位置情報を参照し、アクセス対象ファイルがディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される複数の待ちキューの順番を決定する。I/Oスケジューラは、所定の時間内に複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、所定の時間内に複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定する。そして、I/Oスケジューラは、決定された順番及び数に従って、複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求をディスクに送る。   In a third aspect of the present invention, a computer system is provided. The computer system includes a disk, a processing device that executes a plurality of processes that access the disk, an I / O scheduler, and a storage device. The storage device stores process characteristic information indicating an access target file accessed by each of a plurality of processes, and file position information indicating a position of a file recorded on the disk. The I / O scheduler is executed by the processing device and performs a scheduling process of a disk access request issued from each of a plurality of processes. More specifically, the I / O scheduler stores disk access requests from a plurality of processes in each of a plurality of wait queues. The I / O scheduler refers to the process characteristic information and the file position information, and determines the order of a plurality of wait queues from which disk access requests are retrieved so that the access target file is accessed in order in the arrangement order on the disk. . The I / O scheduler determines the number of disk access requests fetched from each of the plurality of wait queues within a predetermined time period so that all of the plurality of processes perform disk access at least once within the predetermined time period. Then, the I / O scheduler acquires disk access requests from a plurality of waiting queues according to the determined order and number, and sends the acquired disk access requests to the disk.

本発明のスケジューリング技術によれば、所定の時間内に全てのプロセスがディスクアクセスを少なくとも1回実行するという条件の下で、スループットをできるだけ大きくすることが可能となる。   According to the scheduling technique of the present invention, it is possible to maximize the throughput under the condition that all processes execute disk access at least once within a predetermined time.

添付図面を参照して、本発明の実施の形態に係る計算機システム及びI/Oスケジューラを説明する。   A computer system and an I / O scheduler according to an embodiment of the present invention will be described with reference to the accompanying drawings.

1.計算機システム
図2は、本発明の実施の形態に係る計算機システム(コンピュータシステム)1の構成の一例を示している。計算機システム1は、処理装置2、記憶装置3、ディスク4、入力装置5及び出力装置6を備えている。処理装置2は、1つあるいは複数のCPUを含んでいる。記憶装置3は例えばRAM(Random Access Memory)である。ディスク4は例えば複数のファイルが記録されたHDD(Hard Disk Drive)である。ディスク4は、ネットワークを介して複数の計算機システム1で共有されていてもよい。入力装置5は例えばキーボードやマウスである。出力装置6は例えばディスプレイである。計算機システム1は、仮想化技術によって構築されていてもよい。
1. Computer System FIG. 2 shows an example of the configuration of a computer system (computer system) 1 according to an embodiment of the present invention. The computer system 1 includes a processing device 2, a storage device 3, a disk 4, an input device 5, and an output device 6. The processing device 2 includes one or a plurality of CPUs. The storage device 3 is, for example, a RAM (Random Access Memory). The disk 4 is, for example, an HDD (Hard Disk Drive) in which a plurality of files are recorded. The disk 4 may be shared by a plurality of computer systems 1 via a network. The input device 5 is, for example, a keyboard or a mouse. The output device 6 is a display, for example. The computer system 1 may be constructed by a virtualization technique.

処理装置2は、OSの他、様々なアプリケーションを実行する。このとき、処理装置2は、OSやアプリケーション等により発生するプロセスを実行する。多くのプロセスは、ディスク4へのアクセス処理(データ読み込み、データ書き込み)を必要とし、ディスクアクセス要求をOS内のI/Oスケジューラ10に発行する。I/Oスケジューラ10は、処理装置2によって実行されるプログラムの一種であり、複数のプロセスのそれぞれから発行されるディスクアクセス要求のスケジューリング処理を行う。尚、OSやI/Oスケジューラ10は、ディスク4やコンピュータ読み取り可能な記録媒体に記録されている。そして、OSやI/Oスケジューラ10は、記憶装置3に読み出され、処理装置2によって実行される。   The processing device 2 executes various applications in addition to the OS. At this time, the processing device 2 executes a process generated by the OS, application, or the like. Many processes require access processing (data read, data write) to the disk 4 and issue a disk access request to the I / O scheduler 10 in the OS. The I / O scheduler 10 is a kind of program executed by the processing device 2, and performs scheduling processing of disk access requests issued from each of a plurality of processes. The OS and the I / O scheduler 10 are recorded on the disk 4 or a computer-readable recording medium. Then, the OS and the I / O scheduler 10 are read into the storage device 3 and executed by the processing device 2.

後に詳しく説明されるように、本実施の形態に係るI/Oスケジューラ10は、所定の時間内に全てのプロセスがディスクアクセスを少なくとも1回実行するという条件の下で、スループットができるだけ大きくなるようにスケジューリング処理を行う。そのために、I/Oスケジューラ10は、プロセス特性情報PROC、ファイル位置情報LOC、シーク時間情報SEK、アクセス時間情報ACS等を利用する。それらプロセス特性情報PROC、ファイル位置情報LOC、シーク時間情報SEK及びアクセス時間情報ACSは、記憶装置3に格納される。まず、各情報の詳細を説明する。   As will be described in detail later, the I / O scheduler 10 according to the present embodiment increases the throughput as much as possible under the condition that all processes execute disk access at least once within a predetermined time. Perform scheduling processing. For this purpose, the I / O scheduler 10 uses process characteristic information PROC, file position information LOC, seek time information SEK, access time information ACS, and the like. The process characteristic information PROC, file position information LOC, seek time information SEK, and access time information ACS are stored in the storage device 3. First, details of each information will be described.

(プロセス特性情報PROC)
図3は、プロセス特性情報PROCの一例を示している。プロセス特性情報PROCは、それぞれのプロセスがアクセスするディスク4上のファイル(アクセス対象ファイル)を示している。例えば図3の例では、プロセス特性情報PROCは、複数のプロセスP1〜P4がそれぞれ複数のファイルF1〜F4へアクセスすることを示している。プロセス特性情報PROCは、プロセス(P1〜P4)とアクセス対象ファイル(F1〜F4)との対応関係を示しているとも言える。このプロセス特性情報PROCを参照することによって、I/Oスケジューラ10は、各プロセスがディスク4上のどのアクセス対象ファイルにアクセスするか把握することができる。
(Process characteristic information PROC)
FIG. 3 shows an example of the process characteristic information PROC. The process characteristic information PROC indicates a file (access target file) on the disk 4 accessed by each process. For example, in the example of FIG. 3, the process characteristic information PROC indicates that the plurality of processes P1 to P4 access the plurality of files F1 to F4, respectively. It can be said that the process characteristic information PROC indicates the correspondence between the processes (P1 to P4) and the access target files (F1 to F4). By referring to the process characteristic information PROC, the I / O scheduler 10 can grasp which access target file on the disk 4 is accessed by each process.

(ファイル位置情報LOC)
図4A及び図4Bは、ファイル位置情報LOCの例を示している。ファイル位置情報LOCは、ディスク4に記録されているファイルの位置を示す情報である。図4Aの例では、ファイル名、開始位置及び終了位置の対応関係がファイル毎に示されている。図4Bの例では、ファイル名、開始位置及びファイルサイズの対応関係がファイル毎に示されている。図4Bの場合、各ファイルの終了位置は、開始位置とファイルサイズから求めることができる。このファイル位置情報LOCを参照することによって、I/Oスケジューラ10は、ディスク4上のファイルの配置関係及びファイル間の距離を計算することができる。尚、図4A及び図4Bで示された例では、ファイル位置を表す単位として、ディスク4の先頭からのバイト数が用いられているが、それに限られない。ファイル位置は、ディスク4の先頭からのシリンダ数などで表されてもよい。
(File location information LOC)
4A and 4B show examples of the file position information LOC. The file position information LOC is information indicating the position of the file recorded on the disk 4. In the example of FIG. 4A, the correspondence between the file name, the start position, and the end position is shown for each file. In the example of FIG. 4B, the correspondence between the file name, the start position, and the file size is shown for each file. In the case of FIG. 4B, the end position of each file can be obtained from the start position and the file size. By referring to the file position information LOC, the I / O scheduler 10 can calculate the arrangement relationship of the files on the disk 4 and the distance between the files. In the example shown in FIGS. 4A and 4B, the number of bytes from the top of the disk 4 is used as a unit representing the file position, but is not limited thereto. The file position may be represented by the number of cylinders from the top of the disk 4.

(シーク時間情報SEK)
図5A及び図5Bは、シーク時間情報SEKの例を示している。シーク時間情報SEKは、ディスク4上でヘッドが移動する距離である「シーク距離」とその移動時間である「シーク時間」との対応関係を示す情報である。図5Aは、その対応関係y=f(x)を示すグラフである。図5Aにおいて、横軸はシーク距離xを表し、縦軸はシーク時間yを表している。あるいは、図5Bに示されるように、シーク時間情報SEKは、シーク距離とシーク時間との対応関係をテーブル形式で与えてもよい。図5Bによれば、例えば、シーク距離が0.5GByteのときにシーク時間は8.0ミリ秒であり、シーク距離が64GByteのときにシーク時間は17.5ミリ秒であることがわかる。テーブルのエントリに直接示されていないシーク距離に対応するシーク時間は、エントリ間を補間すること等によって算出することができる。尚、シーク距離は、バイト数だけでなくシリンダ数でも表され得る。
(Seek time information SEK)
5A and 5B show examples of seek time information SEK. The seek time information SEK is information indicating the correspondence between the “seek distance” that is the distance the head moves on the disk 4 and the “seek time” that is the movement time. FIG. 5A is a graph showing the correspondence y = f (x). In FIG. 5A, the horizontal axis represents the seek distance x, and the vertical axis represents the seek time y. Alternatively, as shown in FIG. 5B, the seek time information SEK may give the correspondence between the seek distance and the seek time in a table format. According to FIG. 5B, for example, when the seek distance is 0.5 GB, the seek time is 8.0 milliseconds, and when the seek distance is 64 GB, the seek time is 17.5 milliseconds. The seek time corresponding to the seek distance not directly shown in the table entry can be calculated by interpolating between the entries. The seek distance can be expressed not only by the number of bytes but also by the number of cylinders.

(アクセス時間情報ACS)
図6A及び図6Bは、アクセス時間情報ACSの例を示している。アクセス時間情報ACSは、アクセスされるデータサイズとそのアクセスに要する時間の関係を示す情報である。ディスクアクセスにはデータ読み出しとデータ書き込みがあり、それぞれに対してアクセス時間情報ACSが定義され得る。例えばデータ読み出しの場合、アクセス時間情報ACSは、「読み出しデータサイズ」とその読み出し動作に要する「読み出し時間」との対応関係を示す。図6Aは、その対応関係y=g(x)を示すグラフである。図6Aにおいて、横軸は読み出しデータサイズxを表し、縦軸は読み出し時間yを表している。あるいは、図6Bに示されるように、アクセス時間情報ACSは、読み出しデータサイズと読み出し時間との対応関係をテーブル形式で与えてもよい。図6Bによれば、例えば、読み出しデータサイズが4kBのときに読み出し時間は0.10ミリ秒であり、読み出しデータサイズが128kBのときに読み出し時間は3.2ミリ秒であることがわかる。テーブルのエントリに直接示されていない読み出しデータサイズに対応する読み出し時間は、エントリ間を補間すること等によって算出することができる。
(Access time information ACS)
6A and 6B show examples of access time information ACS. The access time information ACS is information indicating the relationship between the data size to be accessed and the time required for the access. Disk access includes data read and data write, and access time information ACS can be defined for each. For example, in the case of data reading, the access time information ACS indicates the correspondence between “read data size” and “read time” required for the read operation. FIG. 6A is a graph showing the correspondence y = g (x). In FIG. 6A, the horizontal axis represents the read data size x, and the vertical axis represents the read time y. Alternatively, as shown in FIG. 6B, the access time information ACS may give the correspondence between the read data size and the read time in a table format. According to FIG. 6B, for example, it can be seen that when the read data size is 4 kB, the read time is 0.10 milliseconds, and when the read data size is 128 kB, the read time is 3.2 milliseconds. The read time corresponding to the read data size not directly shown in the table entry can be calculated by interpolating between the entries.

2.I/Oスケジューラ
本実施の形態に係るI/Oスケジューラ10は、上述の情報を適宜利用することによって、スケジューリング処理を行う。このスケジューリング処理において、次の点が留意される。第一に、本実施の形態では、プロセスのディスクアクセスに対して所定のレスポンスタイム(以下、「要求ピリオドTprd」と参照される)が要求される。全てのプロセスは、その要求ピリオドTprd内に少なくとも1回ディスクアクセスを行うことが要求される。要求ピリオドTprdは、システム効率が劣化しない範囲でユーザにより適宜設定され得る。例えば、要求ピリオドTprdは、計算機システム1が実行するアプリケーションのタイムアウト時間以下に設定される。第二に、それぞれのプロセスのディスクアクセスに関するスループットの合計ができるだけ大きくなるように、スケジューリングが行われる。すなわち、本実施の形態に係るI/Oスケジューラ10は、要求ピリオドTprd内に全てのプロセスがディスクアクセスを少なくとも1回実行するという条件の下で、スループットができるだけ大きくなるようにスケジューリング処理を行う。
2. I / O scheduler The I / O scheduler 10 according to the present embodiment performs scheduling processing by appropriately using the above information. The following points are noted in this scheduling process. First, in this embodiment, a predetermined response time (hereinafter referred to as “request period Tprd”) is required for the disk access of the process. All processes are required to make a disk access at least once within the requested period Tprd. The request period Tprd can be set as appropriate by the user as long as the system efficiency does not deteriorate. For example, the request period Tprd is set to be equal to or less than the timeout time of the application executed by the computer system 1. Second, scheduling is performed so that the total throughput of each process regarding disk access is as large as possible. That is, the I / O scheduler 10 according to the present embodiment performs the scheduling process so that the throughput becomes as large as possible under the condition that all processes execute disk access at least once within the request period Tprd.

2−1.概要
図7に示されるように、複数のプロセスP1〜P4がI/Oスケジューラ10を介してディスクアクセスを行う場合を考える。複数のプロセスP1〜P4は、ディスク4に記録された複数のファイルF1〜F4のそれぞれにアクセスする。このとき、それぞれのプロセスP1〜P4はディスクアクセス要求をI/Oスケジューラ10に発行する。I/Oスケジューラ10は、プロセスP1〜P4のそれぞれから発行されるディスクアクセス要求のスケジューリング処理を行う。
2-1. Overview As shown in FIG. 7, consider a case where a plurality of processes P <b> 1 to P <b> 4 perform disk access via the I / O scheduler 10. The plurality of processes P1 to P4 access each of the plurality of files F1 to F4 recorded on the disk 4. At this time, each of the processes P 1 to P 4 issues a disk access request to the I / O scheduler 10. The I / O scheduler 10 performs scheduling processing of disk access requests issued from the processes P1 to P4.

I/Oスケジューラ10は、ディスクアクセス要求を一時的に保持しておく複数の待ちキューQ1〜Q4を有している。待ちキューはプロセス毎に割り当てられており、図7の例では、待ちキューQ1〜Q4がそれぞれプロセスP1〜P4に割り当てられている。つまり、プロセスP1〜P4からのディスクアクセス要求は、待ちキューQ1〜Q4のそれぞれに一旦格納される。   The I / O scheduler 10 has a plurality of wait queues Q1 to Q4 that temporarily hold disk access requests. The wait queue is assigned for each process. In the example of FIG. 7, the wait queues Q1 to Q4 are assigned to the processes P1 to P4, respectively. That is, disk access requests from the processes P1 to P4 are temporarily stored in the waiting queues Q1 to Q4.

更に、I/Oスケジューラ10は、プロセスモニタ部20、スケジューリング決定部30、及びリクエスト選択部40を有している。プロセスモニタ部20は、動作中のプロセスをモニタし、プロセスの情報を取得する機能を有する。スケジューリング決定部30は、ディスクアクセス要求が取り出される待ちキューの順番や、各待ちキューから取り出すべきディスクアクセス要求の数を決定する機能を有する。リクエスト選択部40は、決定された順番及び数に従って、待ちキューからディスクアクセス要求を取得し、取得したものを順次ディスク4へ送る機能を有する。   Further, the I / O scheduler 10 includes a process monitor unit 20, a scheduling determination unit 30, and a request selection unit 40. The process monitor unit 20 has a function of monitoring an operating process and acquiring process information. The scheduling determination unit 30 has a function of determining the order of waiting queues from which disk access requests are taken out and the number of disk access requests to be taken out from each waiting queue. The request selection unit 40 has a function of acquiring disk access requests from the waiting queue according to the determined order and number, and sequentially transmitting the acquired ones to the disk 4.

図8は、本実施の形態に係るスケジューリング処理を示すフローチャートである。図7及び図8を参照して、本実施の形態に係るスケジューリング処理を説明する。   FIG. 8 is a flowchart showing the scheduling process according to the present embodiment. The scheduling process according to the present embodiment will be described with reference to FIGS.

(ステップS10)
スケジューリング決定部30は、プロセス特性情報PROC、ファイル位置情報LOC、シーク時間情報SEK及びアクセス時間情報ACSを、記憶装置3から読み出す。また、OSは、予め設定されている要求ピリオドTprdの情報をスケジューリング決定部30に与える。要求ピリオドTprdは、全てのプロセスP1〜P4で共通であるとする。
(Step S10)
The scheduling determination unit 30 reads process characteristic information PROC, file position information LOC, seek time information SEK, and access time information ACS from the storage device 3. In addition, the OS provides the scheduling determination unit 30 with information on the preset request period Tprd. The request period Tprd is common to all the processes P1 to P4.

(ステップS20)
I/Oスケジューラ10は、プロセスP1〜P4のそれぞれからのディスクアクセス要求を、待ちキューQ1〜Q4のそれぞれに一旦格納する。また、プロセスモニタ部20は、動作中のプロセスP1〜P4をモニタし、それらプロセスP1〜P4の情報を取得する。取得する情報としては、プロセス番号やプロセス名が挙げられる。例えば、OSがLinuxの場合、psコマンドを利用することによって、プロセス番号やプロセス名を取得することができる。
(Step S20)
The I / O scheduler 10 temporarily stores disk access requests from the processes P1 to P4 in the waiting queues Q1 to Q4, respectively. In addition, the process monitor unit 20 monitors the processes P1 to P4 that are operating, and acquires information about the processes P1 to P4. Information to be acquired includes a process number and a process name. For example, when the OS is Linux, the process number and process name can be acquired by using the ps command.

(ステップS30)
スケジューリング決定部30は、要求ピリオドTprd内のスケジューリング規則を示す「スケジューリングパラメータ」を決定する。スケジューリングパラメータには、ディスクアクセス要求が取り出される待ちキューQ1〜Q4の順番や、要求ピリオドTprd内に待ちキューQ1〜Q4のそれぞれから取り出すべきディスクアクセス要求の数Aiが含まれる。ここで、添え字iは、待ちキューQ1〜Q4、すなわち、プロセスP1〜P4のそれぞれを示す。本実施の形態によれば、スケジューリング決定部30は、要求ピリオドTprd内に全プロセスP1〜P4が少なくとも1回ディスクアクセスを行い、且つ、プロセスP1〜P4のそれぞれに関するスループットの合計ができるだけ大きくなるように、スケジューリングパラメータを決定する。その詳細は後述される。
(Step S30)
The scheduling determination unit 30 determines a “scheduling parameter” indicating a scheduling rule in the request period Tprd. The scheduling parameters include the order of the waiting queues Q1 to Q4 from which disk access requests are taken out, and the number Ai of disk access requests to be taken out from each of the waiting queues Q1 to Q4 in the request period Tprd. Here, the suffix i indicates each of the waiting queues Q1 to Q4, that is, the processes P1 to P4. According to the present embodiment, the scheduling determination unit 30 causes all the processes P1 to P4 to access the disk at least once within the request period Tprd, and the total throughput for each of the processes P1 to P4 is as large as possible. Next, scheduling parameters are determined. Details thereof will be described later.

(ステップS40)
リクエスト選択部40は、スケジューリング決定部30によって決定されたスケジューリングパラメータに従って、それぞれの待ちキューQ1〜Q4からのディスクアクセス要求の選択及び出力を行う。つまり、リクエスト選択部40は、スケジューリングパラメータで示される順番に従って待ちキュー(i=Q1〜Q4)を1つずつ選択し、且つ、選択中の1つの待ちキューiからはスケジューリングパラメータで示される数Aiだけディスクアクセス要求を取り出す。そして、リクエスト選択部40は、取り出したディスクアクセス要求を順次ディスク4に送る。
(Step S40)
The request selection unit 40 selects and outputs disk access requests from the respective waiting queues Q1 to Q4 in accordance with the scheduling parameters determined by the scheduling determination unit 30. That is, the request selection unit 40 selects the waiting queues (i = Q1 to Q4) one by one according to the order indicated by the scheduling parameter, and the number Ai indicated by the scheduling parameter from one waiting queue i being selected. Only take out disk access requests. Then, the request selection unit 40 sequentially sends the extracted disk access requests to the disk 4.

ディスクアクセス要求に応答して、ディスク4ではアクセス対象ファイルに対するデータ読み出しあるいはデータ書き込みが行われる。そして、その結果が、当該ディスクアクセス要求を発行したプロセスに返される。本実施の形態では、要求ピリオドTprdの間に、全てのプロセスP1〜P4が少なくとも1回ディスクアクセスを行う。   In response to the disk access request, the disk 4 performs data reading or data writing with respect to the access target file. The result is returned to the process that issued the disk access request. In the present embodiment, all the processes P1 to P4 perform disk access at least once during the request period Tprd.

要求ピリオドTprd毎に、ステップS40は繰り返される。いずれかの待ちキューに蓄積されたディスクアクセス要求が無くなると、処理はステップS20に戻る。また、上述のプロセスモニタ部20は、動作中のプロセスのモニタを継続している。動作中のプロセスが増減すると、処理はステップS20に戻る。   Step S40 is repeated for each request period Tprd. When there is no disk access request stored in any of the waiting queues, the process returns to step S20. Further, the process monitor unit 20 described above continues to monitor the process in operation. When the number of operating processes increases or decreases, the process returns to step S20.

2−2.スケジューリングパラメータの決定(ステップS30)
次に、上述のステップS30を詳しく説明する。図9は、本実施の形態におけるスケジューリングパラメータの決定方法を示すフローチャートである。
2-2. Determination of scheduling parameters (step S30)
Next, step S30 described above will be described in detail. FIG. 9 is a flowchart showing a method for determining a scheduling parameter in the present embodiment.

(ステップS310)
まず、スケジューリング決定部30は、要求ピリオドTprdにおいてディスクアクセス要求が取り出される待ちキューの順番を決定する。要求ピリオドTprdにおけるスループットを増加させるためには、その要求ピリオドTprd中でアクセス対象ファイル間のシークにとられる時間をできるだけ削減することが望ましい。そのためには、要求ピリオドTprdにおけるアクセス対象ファイル間のシーク距離の合計をできるだけ小さくすることが望ましい。よって、スケジューリング決定部30は、アクセス対象ファイル間のシーク距離の合計がなるべく小さくなるように順番を決定する。
(Step S310)
First, the scheduling determination unit 30 determines the order of the waiting queue from which the disk access request is taken out in the request period Tprd. In order to increase the throughput in the request period Tprd, it is desirable to reduce as much as possible the time taken for seeking between the files to be accessed in the request period Tprd. For that purpose, it is desirable to make the total of the seek distances between the files to be accessed in the request period Tprd as small as possible. Therefore, the scheduling determination unit 30 determines the order so that the total seek distance between the access target files is as small as possible.

スケジューリング決定部30は、プロセスモニタ部20から動作中のプロセスP1〜P4の情報(例:プロセス名)を受け取る。そして、スケジューリング決定部30は、プロセス特性情報PROCを参照することにより、動作中のプロセスP1〜P4のそれぞれがアクセスするアクセス対象ファイルF1〜F4を把握する。更に、スケジューリング決定部30は、ファイル位置情報LOCを参照することにより、アクセス対象ファイルF1〜F4のディスク4上での配置関係を把握する。そして、スケジューリング決定部30は、アクセス対象ファイルF1〜F4がディスク4上の“並び順(配置順)”で順番にアクセスされるように、ディスクアクセス要求が取り出される待ちキューQ1〜Q4の順番を決定する。   The scheduling determination unit 30 receives information (for example, process name) of the processes P1 to P4 that are operating from the process monitor unit 20. Then, the scheduling determination unit 30 refers to the process characteristic information PROC to grasp the access target files F1 to F4 accessed by each of the operating processes P1 to P4. Further, the scheduling determination unit 30 refers to the file position information LOC to grasp the arrangement relationship of the access target files F1 to F4 on the disk 4. Then, the scheduling determining unit 30 sets the order of the waiting queues Q1 to Q4 from which the disk access request is taken out so that the access target files F1 to F4 are sequentially accessed in the “arrangement order (arrangement order)” on the disk 4. decide.

例えば、図4A及び図4Bで示されたファイル位置情報LOCの例の場合、アクセス対象ファイルF1〜F4は、ディスク4の先頭から「F1、F2、F3、F4」の順番で配置されている。従って、図10Aに示されるように、アクセス対象ファイルF1〜F4が「F1、F2、F3、F4、F1」の順番でアクセスされる場合に、シーク距離の合計が最も小さくなる。しかしながら、図10Bに示されるように、アクセス対象ファイルF1〜F4が「F1、F4、F2、F3、F1」といった順番でアクセスされると、シーク距離の合計は大きくなってしまう。上述の通り、スループットを大きくするためには、アクセス対象ファイルF1〜F4間のシーク距離の合計はなるべく小さいことが望ましい。従って、アクセス対象ファイルF1〜F4のアクセス順としては、図10Aで示されたような順番が好適である。あるいは、図10Aと逆の順番「F4、F3、F2、F1、F4」であっても同じである。いずれにせよ、アクセス対象ファイルF1〜F4のアクセス順としては、ディスク4上の“並び順(配置順)”に沿っていることが望ましい。   For example, in the example of the file position information LOC shown in FIGS. 4A and 4B, the access target files F1 to F4 are arranged in the order of “F1, F2, F3, F4” from the top of the disk 4. Therefore, as shown in FIG. 10A, when the access target files F1 to F4 are accessed in the order of “F1, F2, F3, F4, F1”, the total seek distance becomes the smallest. However, as shown in FIG. 10B, when the access target files F1 to F4 are accessed in the order of “F1, F4, F2, F3, F1”, the total seek distance becomes large. As described above, in order to increase the throughput, the total seek distance between the access target files F1 to F4 is preferably as small as possible. Therefore, as the access order of the access target files F1 to F4, the order shown in FIG. 10A is preferable. Or it is the same even if it is order "F4, F3, F2, F1, F4" reverse to FIG. 10A. In any case, it is desirable that the access order of the access target files F1 to F4 is in accordance with the “arrangement order (arrangement order)” on the disk 4.

スケジューリング決定部30は、要求ピリオドTprdにおいて図10Aで示されたようなアクセス順が再現されるように、ディスクアクセス要求が取り出される待ちキューQ1〜Q4の順番を決定する。すなわち、本例では、取り出し順は、「Q1、Q2、Q3、Q4」あるいは「Q2、Q3、Q4、Q1」あるいは「Q3、Q4、Q1、Q2」あるいは「Q4、Q3、Q2、Q1」と決定される。これにより、要求ピリオドTprd中でアクセス対象ファイルF1〜F4間のシークに割かれる時間が極力抑えられ、データ読み出しあるいはデータ書き込みに割り当て可能な時間が増えることになる。このことは、要求ピリオドTprdにおけるスループットの合計が増加することを意味する。   The scheduling determining unit 30 determines the order of the waiting queues Q1 to Q4 from which the disk access requests are taken out so that the access order as shown in FIG. 10A is reproduced in the request period Tprd. That is, in this example, the extraction order is “Q1, Q2, Q3, Q4” or “Q2, Q3, Q4, Q1” or “Q3, Q4, Q1, Q2” or “Q4, Q3, Q2, Q1”. It is determined. As a result, the time allocated for seeking between the access target files F1 to F4 in the requested period Tprd is suppressed as much as possible, and the time allocatable for data reading or data writing is increased. This means that the total throughput in the requested period Tprd increases.

尚、例えば図10Aに示されるように、アクセス対象ファイルF1〜F4に対するアクセスは、要求ピリオドTprdでちょうど一巡する。図10Aの例では、1回の要求ピリオドTprdにおいて、ディスクヘッドはファイルF1の位置からファイルF4の位置まで順次移動した後、最初のファイルF1の位置まで戻る。つまり、アクセス対象ファイルF1〜F4に対するアクセスは循環的に行われ、要求ピリオドTprd毎に同じ動作が繰り返される。   For example, as shown in FIG. 10A, the access to the access target files F1 to F4 is completed once in the request period Tprd. In the example of FIG. 10A, in one request period Tprd, the disk head sequentially moves from the position of the file F1 to the position of the file F4, and then returns to the position of the first file F1. That is, access to the access target files F1 to F4 is performed cyclically, and the same operation is repeated for each request period Tprd.

(ステップS320)
次に、スケジューリング決定部30は、ステップS310で決定された順番でディスクアクセス要求が取り出された場合の、アクセス対象ファイルF1〜F4間のシーク距離(ファイル間シーク距離)を算出する。つまり、スケジューリング決定部30は、要求ピリオドTprdにおいて上記決定順でアクセス対象ファイルF1〜F4にアクセスが発生した場合の、ファイル間シーク距離を算出する。プロセスP1〜P4のそれぞれのアクセス対象ファイルF1〜F4はプロセス特性情報PROCに示されており、それらアクセス対象ファイルF1〜F4のディスク4上の位置はファイル位置情報LOCに示されている。従って、その情報を参照することによりファイル間シーク距離を計算することができる。
(Step S320)
Next, the scheduling determining unit 30 calculates the seek distance (access seek distance between files) between the access target files F1 to F4 when the disk access requests are extracted in the order determined in step S310. That is, the scheduling determination unit 30 calculates the inter-file seek distance when the access target files F1 to F4 are accessed in the determination order in the request period Tprd. The access target files F1 to F4 of the processes P1 to P4 are indicated in the process characteristic information PROC, and the positions of the access target files F1 to F4 on the disk 4 are indicated in the file position information LOC. Therefore, the seek distance between files can be calculated by referring to the information.

各ファイルはディスク4上でファイルサイズ分の幅を有しているため、ファイル間シーク距離の算出にあたって、各ファイルの代表位置を決定する必要がある。その代表位置としては、各ファイルの開始位置、終了位置、あるいは開始位置と終了位置との中間位置などが挙げられる。例えば中間位置が代表位置として用いられる場合、あるファイルの中間位置と次にアクセスされるファイルの中間位置との間の距離が、ファイル間シーク距離として算出される。   Since each file has a width corresponding to the file size on the disk 4, it is necessary to determine a representative position of each file when calculating the seek distance between files. Examples of the representative position include a start position, an end position, or an intermediate position between the start position and the end position of each file. For example, when the intermediate position is used as the representative position, the distance between the intermediate position of a certain file and the intermediate position of the next accessed file is calculated as the seek distance between files.

図10Aで示された例の場合を考える。この場合、要求ピリオドTprdにおけるアクセス順は「F1、F2、F3、F4、F1」である。従って、ファイルF1とF2の間のシーク距離L12、ファイルF2とF3の間のシーク距離L23、ファイルF3とF4の間のシーク距離L34、及びファイルF4とF1の間のシーク距離L41が算出される。   Consider the case of the example shown in FIG. 10A. In this case, the access order in the request period Tprd is “F1, F2, F3, F4, F1”. Accordingly, the seek distance L12 between the files F1 and F2, the seek distance L23 between the files F2 and F3, the seek distance L34 between the files F3 and F4, and the seek distance L41 between the files F4 and F1 are calculated. .

(ステップS330)
次に、スケジューリング決定部30は、シーク時間情報SEK(図5A、図5B参照)を参照することによって、ステップS320で算出されたファイル間シーク距離に対応するファイル間シーク時間を算出する。図5Aで示されたような関数y=f(x)が用いられる場合、変数xにファイル間シーク距離を代入することによって、対応するファイル間シーク時間yを得ることができる。図5Bで示されたようなテーブルが用いられる場合、エントリ間を補間することによって、ファイル間シーク距離に対応するファイル間シーク時間を得ることができる。
(Step S330)
Next, the scheduling determination unit 30 refers to the seek time information SEK (see FIGS. 5A and 5B) to calculate an inter-file seek time corresponding to the inter-file seek distance calculated in step S320. When the function y = f (x) as shown in FIG. 5A is used, the corresponding inter-file seek time y can be obtained by substituting the inter-file seek distance into the variable x. When a table as shown in FIG. 5B is used, an inter-file seek time corresponding to an inter-file seek distance can be obtained by interpolating between entries.

図10Aで示された例の場合、上述のファイル間シーク距離L12、L23、L34及びL41のそれぞれに対応するファイル間シーク時間T12、T23、T34及びT41が算出される。算出されたファイル間シーク時間は、要求ピリオドTprd中でアクセス対象ファイルF1〜F4間のシークに割かれる時間に相当する。ステップS310で説明された順番決めの工夫の結果、ファイル間シーク時間の総和(T12+T23+T34+T41)は最小限に抑えられている。その分、各ファイルでのデータ読み出しあるいはデータ書き込みに割り当て可能な時間が増えることになる。このことは、要求ピリオドTprdにおけるスループットの合計が増加することを意味する。   In the example shown in FIG. 10A, the inter-file seek times T12, T23, T34, and T41 corresponding to the inter-file seek distances L12, L23, L34, and L41, respectively, are calculated. The calculated seek time between files corresponds to the time allocated for seeking between the access target files F1 to F4 in the request period Tprd. As a result of the devising of ordering described in step S310, the total inter-file seek time (T12 + T23 + T34 + T41) is minimized. Accordingly, the time allocatable for data reading or data writing in each file increases. This means that the total throughput in the requested period Tprd increases.

(ステップS340)
次に、スケジューリング決定部30は、ステップS330で算出されたファイル間シーク時間のそれぞれを要求ピリオドTprdから引くことによって、「残り時間Trst」を算出する。図10Aで示された例の場合、残り時間Trstは、Tprd−(T12+T23+T34+T41)と算出される。この残り時間Trstは、アクセス対象ファイルでのデータ読み出しあるいはデータ書き込みに利用可能な時間に相当する。上述の通り、ファイル間シーク時間の総和は最小限に抑えられているため、残り時間Trstとして最大限の時間が確保される。
(Step S340)
Next, the scheduling determination unit 30 calculates the “remaining time Trst” by subtracting each of the inter-file seek times calculated in step S330 from the request period Tprd. In the case of the example shown in FIG. 10A, the remaining time Trst is calculated as Tprd− (T12 + T23 + T34 + T41). This remaining time Trst corresponds to the time available for data reading or data writing in the access target file. As described above, since the total sum of seek times between files is minimized, the maximum time is secured as the remaining time Trst.

ステップS340の処理は、データ読み出しあるいはデータ書き込みに割り当て可能な残り時間Trstを見積もることだけでなく、要求ピリオドTprd中で全てのファイル間シーク動作に必要な時間をあらかじめ確保しておくことにも相当する。全てのファイル間シーク動作に必要な時間が確保されることは、全てのプロセスP1〜P4が要求ピリオドTprd内に少なくとも1回ディスクアクセスを行うことが可能となることを意味する。言い換えれば、ステップS340によって、全てのプロセスP1〜P4が要求ピリオドTprd内に少なくとも1回ディスクアクセスを行うことが保証される。   The processing in step S340 is equivalent to not only estimating the remaining time Trst that can be allocated to data reading or data writing, but also securing in advance the time required for all file-to-file seek operations in the requested period Tprd. To do. Securing the time required for all inter-file seek operations means that all the processes P1 to P4 can perform disk access at least once within the requested period Tprd. In other words, step S340 ensures that all processes P1-P4 make a disk access at least once within the requested period Tprd.

(ステップS350)
以上に説明されたように、ステップS310での順番決めにより、要求ピリオドTprdにおけるスループットの合計の向上が期待される。また、ステップS340での残り時間Trstの算出により、全てのプロセスP1〜P4が要求ピリオドTprd内に少なくとも1回ディスクアクセスを行うことが保証される。後は、スケジューリング決定部30が、残り時間TrstをプロセスP1〜P4間で適宜分配すればよい。それぞれのプロセスP1〜P4に分配される時間に基づいて、残り時間Trst(すなわち要求ピリオドTprd)内にそれぞれの待ちキューQ1〜Q4から取り出すことができるディスクアクセス要求の数Aiを決定することができる。その方法としては様々考えられる。
(Step S350)
As described above, the total throughput in the request period Tprd is expected to be improved by the order determination in step S310. Further, the calculation of the remaining time Trst in step S340 ensures that all the processes P1 to P4 perform disk access at least once within the request period Tprd. Thereafter, the scheduling determination unit 30 may appropriately distribute the remaining time Trst among the processes P1 to P4. Based on the time distributed to the respective processes P1 to P4, the number Ai of disk access requests that can be taken out from the respective waiting queues Q1 to Q4 within the remaining time Trst (that is, the request period Tprd) can be determined. . Various methods are conceivable.

<第1の例>
例えば、ディスクアクセス要求の取得数Aiは複数のプロセスP1〜P4間で均等になるように決定される。そのために、スケジューリング決定部30は例えば次のような処理を行う。ディスクアクセスがデータ読み出しの場合を例示するが、データ書き込みの場合も同様である。
<First example>
For example, the number Ai of disk access request acquisitions is determined to be equal among the plurality of processes P1 to P4. For this purpose, the scheduling determination unit 30 performs the following processing, for example. Although the case where the disk access is data reading is illustrated, the same applies to the case of data writing.

あるプロセスiが1回のディスクアクセス要求によってアクセス対象ファイルから読み出すデータサイズはDacs_iであるとする。この1回の読み出しデータサイズDacs_iは、ユーザによって与えられてもよいし、システムで予め決まっていてもよい。また、読み出しデータサイズDacs_iは、プロセス間で同じであってもよいし異なっていてもよい。   Assume that a data size read from a file to be accessed by a process i by a single disk access request is Dacs_i. This one-time read data size Dacs_i may be given by the user or may be predetermined by the system. Further, the read data size Dacs_i may be the same or different between processes.

スケジューリング決定部30は、アクセス時間情報ACS(図6A、図6B参照)を参照することによって、1回の読み出しデータサイズDacs_iに対応する読み出し時間Tacs_iを算出する。図6Aで示されたような関数y=g(x)が用いられる場合、変数xに読み出しデータサイズDacs_iを代入することによって、対応する読み出し時間Tacs_iを得ることができる。図6Bで示されたようなテーブルが用いられる場合、エントリ間を補間することによって、読み出しデータサイズDacs_iに対応する読み出し時間Tacs_iを得ることができる。また、スケジューリング決定部30は、シーク時間情報SEK(図5A、図5B参照)を参照することによって、アクセス対象ファイルの中で読み出しデータ間を移動するのに要するファイル内シーク時間Tsek_iを算出する。このファイル内シーク時間Tsek_iは、1回の読み出しデータサイズDacs_iに対応する1回のシーク時間である。   The scheduling determination unit 30 calculates the read time Tacs_i corresponding to one read data size Dacs_i by referring to the access time information ACS (see FIGS. 6A and 6B). When the function y = g (x) as shown in FIG. 6A is used, the corresponding read time Tacs_i can be obtained by substituting the read data size Dacs_i for the variable x. When the table as shown in FIG. 6B is used, the read time Tacs_i corresponding to the read data size Dacs_i can be obtained by interpolating between the entries. Further, the scheduling determining unit 30 refers to the seek time information SEK (see FIGS. 5A and 5B) to calculate the in-file seek time Tsek_i required for moving between read data in the access target file. This in-file seek time Tsek_i is one seek time corresponding to one read data size Dacs_i.

上記読み出し時間Tacs_i及びファイル内シーク時間Tsek_iの和(Tacs_i+Tsek_i)は、あるプロセスiからの1回のディスクアクセス要求の処理に必要な時間に相当する。従って、各プロセスiに関して、残り時間Trst内に待ちキューから取り出すことができるディスクアクセス要求の数Aiは、次の式(1)で与えられ得る。   The sum of the read time Tacs_i and the file seek time Tsek_i (Tacs_i + Tsek_i) corresponds to the time required to process one disk access request from a certain process i. Therefore, for each process i, the number Ai of disk access requests that can be taken out from the waiting queue within the remaining time Trst can be given by the following equation (1).

Figure 2009199367
Figure 2009199367

式(1)において、Nは動作中のプロセスP1〜P4の全体を意味する。よって、式(1)の分母は、全てのプロセスP1〜P4からのディスクアクセス要求を1回ずつ処理するのに必要な時間の総和を表す。残り時間Trstをその総和で割ることによって、各プロセスiに関するディスクアクセス要求の取得数Aiを算出することができる。この場合、取得数AiはプロセスP1〜P4間で等しくなる。尚、実際には取得数Aiは整数である必要があるため、式(1)により求まる値の小数点以下を切り捨てることにより取得数Aiが決定される。   In the formula (1), N means the entire processes P1 to P4 in operation. Therefore, the denominator of Expression (1) represents the total time required to process the disk access requests from all the processes P1 to P4 once. By dividing the remaining time Trst by the sum, it is possible to calculate the number of disk access request acquisitions Ai for each process i. In this case, the acquisition number Ai is equal between the processes P1 to P4. Actually, since the acquisition number Ai needs to be an integer, the acquisition number Ai is determined by rounding down the decimal part of the value obtained by the equation (1).

<第2の例>
プロセスP1〜P4のそれぞれに要求されるスループットに対して“重み”が与えられている場合を考える。この場合、得られるスループットにその重み付けが反映されるように、ディスクアクセス要求の取得数Aiを決定することが可能である。プロセスP1〜P4のそれぞれに要求されるスループットの重み付けを指定するパラメータは、以下「重み付けパラメータ」と参照される。重み付けパラメータは、例えばプロセス特性情報PROCに含まれる。
<Second example>
Consider a case where a “weight” is given to the throughput required for each of the processes P1 to P4. In this case, the number Ai of disk access request acquisitions can be determined so that the weighting is reflected in the obtained throughput. The parameter that designates the weighting of the throughput required for each of the processes P1 to P4 is hereinafter referred to as “weighting parameter”. The weighting parameter is included in the process characteristic information PROC, for example.

図11は、本例におけるプロセス特性情報PROCを示している。図11において、プロセス特性情報PROCは、プロセスP1〜P4のそれぞれに関するアクセス対象ファイルF1〜F4に加えて、重み付けパラメータを示している。本例では、重み付けパラメータは、要求スループットの「重み係数」である。重み係数は、それぞれのプロセスP1〜P4に要求されるスループット間の比率である。例えば、プロセスP1、P2に指定された重み係数がそれぞれ1と2である場合、プロセスP2にはプロセスP1の2倍のスループットが要求されている。   FIG. 11 shows the process characteristic information PROC in this example. In FIG. 11, the process characteristic information PROC indicates a weighting parameter in addition to the access target files F1 to F4 related to each of the processes P1 to P4. In this example, the weighting parameter is a “weighting factor” of the required throughput. The weighting factor is a ratio between the throughputs required for the respective processes P1 to P4. For example, when the weighting factors specified for the processes P1 and P2 are 1 and 2, respectively, the process P2 is required to have twice the throughput of the process P1.

スケジューリング決定部30は、この重み係数に応じて残り時間Trstを分配し、得られるスループットにその重み係数が反映されるようにディスクアクセス要求の取得数Aiを決定する。具体的には、既出の第1の例と同様に、スケジューリング決定部30は、1回あたりの読み出し時間Tacs_i及びファイル内シーク時間Tsek_iを算出する。また、スケジューリング決定部30は、プロセス特性情報PROCを参照し、それぞれのプロセスP1〜P4に指定された重み係数Wiを取得する。この場合、ディスクアクセス要求の取得数Aiは、次の式(2)で与えられる。   The scheduling determination unit 30 distributes the remaining time Trst according to the weighting factor, and determines the number Ai of disk access request acquisitions so that the weighting factor is reflected in the obtained throughput. Specifically, as in the first example described above, the scheduling determination unit 30 calculates the read time Tacs_i and the in-file seek time Tsek_i per time. Further, the scheduling determination unit 30 refers to the process characteristic information PROC and acquires the weighting factor Wi specified for each of the processes P1 to P4. In this case, the acquisition number Ai of the disk access request is given by the following equation (2).

Figure 2009199367
Figure 2009199367

実際には取得数Aiは整数である必要があるため、式(2)により求まる値の小数点以下を切り捨てることにより取得数Aiが決定される。尚、式(2)により求まる値が1未満となるプロセスがある場合、そのプロセスに関する取得数を1とし、代わりに他のプロセスに関する2以上の取得数から1だけ減算する。減算対象として取得数が最大であるプロセスを選択すると、当該プロセスに割り当てられるスループットの減少率が小さいため、影響を小さく抑えることができる。このような処理によっても全てのプロセスに関する取得数が1以上にならない場合、I/Oスケジューラ10はエラーを管理者に通知することもできる。   Actually, since the acquisition number Ai needs to be an integer, the acquisition number Ai is determined by rounding down the decimal point of the value obtained by the equation (2). When there is a process whose value obtained by the expression (2) is less than 1, the number of acquisitions related to that process is set to 1, and instead, 1 is subtracted from two or more acquisition numbers related to other processes. When the process with the maximum number of acquisitions is selected as the subtraction target, the reduction rate of the throughput allocated to the process is small, so that the influence can be suppressed small. If the number of acquisitions related to all processes does not become 1 or more by such processing, the I / O scheduler 10 can also notify the administrator of an error.

<第3の例>
要求スループットの重み付けは、上記重み係数に限られない。例えば、プロセスP1〜P4の中に、要求スループットが優先的に与えられる「優先プロセス」と、要求スループットがベストエフォートで与えられる「ベストエフォートプロセス」が混在する場合を考える。この場合、優先プロセスかベストエフォートプロセスかの区分けが、要求スループットの重み付けに相当することになる。
<Third example>
The weighting of the required throughput is not limited to the weighting factor. For example, let us consider a case where a “priority process” in which the requested throughput is given preferentially and a “best effort process” in which the requested throughput is given with the best effort are mixed in the processes P1 to P4. In this case, the classification between the priority process and the best effort process corresponds to the weighting of the requested throughput.

図12は、本例におけるプロセス特性情報PROCを示している。図12において、プロセス特性情報PROCは、プロセスP1〜P4のそれぞれに関するアクセス対象ファイルF1〜F4に加えて、重み付けパラメータを示している。本例では、重み付けパラメータは、各プロセスが優先プロセスかベストエフォートプロセスかを示す「クラス」と、優先プロセスに関する「要求スループット」と、ベストエフォートプロセスに関する要求スループットの「重み係数」とを含んでいる。優先プロセスに関する要求スループットは、優先的に確保されるべきスループットである。重み係数は、ベストエフォートプロセスのそれぞれに要求されるスループット間の比率である。   FIG. 12 shows the process characteristic information PROC in this example. In FIG. 12, the process characteristic information PROC indicates a weighting parameter in addition to the access target files F1 to F4 related to the processes P1 to P4, respectively. In this example, the weighting parameters include a “class” indicating whether each process is a priority process or a best effort process, a “request throughput” regarding the priority process, and a “weighting factor” of the request throughput regarding the best effort process. . The requested throughput related to the priority process is a throughput that should be secured with priority. The weighting factor is the ratio between the throughput required for each of the best effort processes.

スケジューリング決定部30は、この重み付けパラメータに応じて残り時間Trstを分配し、得られるスループットにその重み付けパラメータが反映されるようにディスクアクセス要求の取得数Aiを決定する。図13を参照して、本例におけるステップS350の処理を詳しく説明する。   The scheduling determination unit 30 distributes the remaining time Trst according to the weighting parameter, and determines the number Ai of disk access request acquisitions so that the weighting parameter is reflected in the obtained throughput. With reference to FIG. 13, the process of step S350 in this example will be described in detail.

(ステップS351)
スケジューリング決定部30は、プロセス特性情報PROCを参照し、まず優先プロセスkに関してディスクアクセス要求の取得数Akを決定する。ここで、添え字kは、プロセスP1〜P4に含まれる優先プロセスを示す。図12の例の場合、プロセスP1、P2が優先プロセスkである。プロセス特性情報PROCにおいて、優先プロセスkに指定された要求スループットはBkであるとする。また、優先プロセスkが1回のディスクアクセス要求によってアクセス対象ファイルから読み出すデータサイズはDacsであるとする。この1回の読み出しデータサイズDacsは、ユーザによって与えられてもよいし、システムで予め決まっていてもよい。この場合、スケジューリング決定部30は、次の式(3)に従って、優先プロセスkに関する取得数Akを算出する。
(Step S351)
The scheduling determining unit 30 refers to the process characteristic information PROC, and first determines the disk access request acquisition number Ak for the priority process k. Here, the subscript k indicates a priority process included in the processes P1 to P4. In the example of FIG. 12, processes P1 and P2 are priority processes k. In the process characteristic information PROC, it is assumed that the requested throughput specified for the priority process k is Bk. Further, it is assumed that the data size read from the access target file by the priority process k by one disk access request is Dacs. This one-time read data size Dacs may be given by the user or may be predetermined by the system. In this case, the scheduling determination unit 30 calculates the acquisition number Ak for the priority process k according to the following equation (3).

Figure 2009199367
Figure 2009199367

式(3)において、分子は、要求ピリオドTprd内に優先プロセスkが要求するデータ量を表す。この要求データ量を1回の読み出しデータサイズDacsで割ることにより、要求スループットBkを実現するために必要な取得数Akを算出することができる。つまり、スケジューリング決定部30は、優先プロセスkに関して、要求スループットBkが得られるようにそれぞれの待ちキューからの取得数Akを決定する。尚、実際には取得数Akは整数である必要があるため、式(3)により求まる値の小数点以下を切り捨てることにより取得数Akが決定される。   In equation (3), the numerator represents the amount of data required by the priority process k within the required period Tprd. By dividing this required data amount by the read data size Dacs for one time, the number of acquisitions Ak necessary for realizing the required throughput Bk can be calculated. That is, the scheduling determination unit 30 determines the acquisition number Ak from each waiting queue so that the requested throughput Bk can be obtained for the priority process k. Actually, since the acquisition number Ak needs to be an integer, the acquisition number Ak is determined by rounding down the decimal point of the value obtained by the equation (3).

(ステップS352)
次に、スケジューリング決定部30は、上記ステップS351で決定された取得数Akに基づいて、その取得数Akのディスクアクセス要求の処理に必要な時間を算出する。そして、スケジューリング決定部30は、算出された時間を残り時間Trstから引くことによって、新たな残り時間Trst’を算出する。具体的には、新たな残り時間Trst’は、次の式(4)で与えられる。
(Step S352)
Next, the scheduling determination unit 30 calculates the time required for processing the disk access request for the acquired number Ak based on the acquired number Ak determined in step S351. Then, the scheduling determination unit 30 calculates a new remaining time Trst ′ by subtracting the calculated time from the remaining time Trst. Specifically, the new remaining time Trst ′ is given by the following equation (4).

Figure 2009199367
Figure 2009199367

式(4)において、Tacs_k及びTsek_kはそれぞれ、優先プロセスkに関する1回あたりの読み出し時間及びファイル内シーク時間である。1回あたりの読み出し時間Tacs_k及びファイル内シーク時間Tsek_kは、既出の第1の例と同様に、アクセス時間情報ACSとシーク時間情報SEKを参照することによって算出可能である。   In Equation (4), Tacs_k and Tsek_k are a read time and a seek time within a file for the priority process k, respectively. The read time Tacs_k and in-file seek time Tsek_k per one time can be calculated by referring to the access time information ACS and seek time information SEK, as in the first example.

式(4)で示された処理によって、取得数Akのディスクアクセス要求の処理に必要な時間があらかじめ確保される。すなわち、要求ピリオドTprdにおいて優先プロセスkの要求スループットBkを実現するために必要な時間があらかじめ確保される。スケジューリング決定部30は、優先プロセスk用の時間をあらかじめ確保することにより、残り時間Trstを更新していると言える。そして、更新後の残り時間Trst’が、ベストエフォートプロセスに割り当て可能な時間となる。   By the process shown in the equation (4), the time necessary for processing the disk access request for the number of acquired Ak is secured in advance. That is, the time necessary for realizing the required throughput Bk of the priority process k in the required period Tprd is secured in advance. It can be said that the scheduling determination unit 30 updates the remaining time Trst by securing the time for the priority process k in advance. The remaining time Trst 'after the update is a time that can be allocated to the best effort process.

(ステップS353)
後は、スケジューリング決定部30が、プロセス特性情報PROCを参照して、更新後の残り時間Trst’をベストエフォートプロセスj間で分配すればよい。ここで、添え字jは、プロセスP1〜P4に含まれるベストエフォートプロセスを示す。図12の例の場合、プロセスP3、P4がベストエフォートプロセスjである。ベストエフォートプロセスP3、P4に分配される時間に基づいて、残り時間Trst’内にそれぞれの待ちキューQ3、Q4から取り出すことができるディスクアクセス要求の数Ajを決定することができる。
(Step S353)
Thereafter, the scheduling determination unit 30 may distribute the remaining time Trst ′ after the update among the best effort processes j with reference to the process characteristic information PROC. Here, the subscript j indicates the best effort process included in the processes P1 to P4. In the example of FIG. 12, the processes P3 and P4 are the best effort process j. Based on the time distributed to the best effort processes P3 and P4, the number Aj of disk access requests that can be taken out from the respective waiting queues Q3 and Q4 within the remaining time Trst ′ can be determined.

例えば図12に示されるように、ベストエフォートプロセスに対して要求スループットの重み係数が指定されている場合を考える。この場合、スケジューリング決定部30は、この重み係数に応じて残り時間Trst’を分配し、得られるスループットにその重み係数が反映されるように取得数Ajを決定する。具体的には、既出の第1の例と同様に、スケジューリング決定部30は、1回あたりの読み出し時間Tacs_j及びファイル内シーク時間Tsek_jを算出する。また、スケジューリング決定部30は、プロセス特性情報PROCを参照し、ベストエフォートプロセスjに指定された重み係数Wjを取得する。この場合、ベストエフォートプロセスjに関する取得数Ajは、次の式(5)で与えられる。   For example, as shown in FIG. 12, consider a case where a weighting factor for requested throughput is specified for the best effort process. In this case, the scheduling determination unit 30 distributes the remaining time Trst ′ according to the weighting factor, and determines the acquisition number Aj so that the weighting factor is reflected in the obtained throughput. Specifically, as in the first example described above, the scheduling determination unit 30 calculates a read time Tacs_j and an in-file seek time Tsek_j per time. In addition, the scheduling determination unit 30 refers to the process characteristic information PROC and acquires the weighting factor Wj specified for the best effort process j. In this case, the acquisition number Aj regarding the best effort process j is given by the following equation (5).

Figure 2009199367
Figure 2009199367

式(5)は、既出の式(2)における残り時間Trstを更新後の残り時間Trst’で置換し、対象をベストエフォートプロセスjだけに限定したものに相当する。尚、実際には取得数Ajは整数である必要があるため、式(5)により求まる値の小数点以下を切り捨てることにより取得数Ajが決定される。   Equation (5) corresponds to a case where the remaining time Trst in the foregoing equation (2) is replaced with the updated remaining time Trst 'and the target is limited to only the best effort process j. Actually, since the acquisition number Aj needs to be an integer, the acquisition number Aj is determined by rounding down the decimal point of the value obtained by the equation (5).

このように、スケジューリング決定部30は、残り時間Trstを優先プロセスとベストエフォートプロセスのそれぞれに別々に分配し、取得数Ak、Ajを別々に算出する。取得数Ak、Ajに従えば、優先プロセスkに要求されるスループットが実現され、ベストエフォートプロセスjに指定された要求スループットの比率が実現される。すなわち、それぞれのプロセスに関して得られるスループットに重み付けが反映されるように、取得数Ak、Ajが決定されている。   As described above, the scheduling determination unit 30 separately distributes the remaining time Trst to each of the priority process and the best effort process, and calculates the acquisition numbers Ak and Aj separately. According to the acquisition numbers Ak and Aj, the throughput required for the priority process k is realized, and the ratio of the requested throughput specified for the best effort process j is realized. That is, the acquisition numbers Ak and Aj are determined so that weighting is reflected in the throughput obtained for each process.

以上に説明されたように、ステップS350では、スケジューリング決定部30は、残り時間TrstをプロセスP1〜P4間で適宜分配することによって、それぞれのプロセスP1〜P4に関するディスクアクセス要求の取得数Aiを決定することができる。   As described above, in step S350, the scheduling determination unit 30 determines the number of acquired disk access requests Ai for each process P1 to P4 by appropriately distributing the remaining time Trst among the processes P1 to P4. can do.

ステップS310で決定された「順番」とステップS350で決定された「取得数Ai」が、要求ピリオドTprd内のスケジューリング規則を示す「スケジューリングパラメータ」となる。スケジューリング決定部30は、要求ピリオドTprd内に全プロセスP1〜P4が少なくとも1回ディスクアクセスを行い、且つ、プロセスP1〜P4のそれぞれに関するスループットの合計ができるだけ大きくなるように、スケジューリングパラメータを決定することができている。重み付けパラメータが与えられている場合には、スケジューリング決定部30は、それぞれのプロセスP1〜P4に関するスループットにその重み付けが反映されるようにスケジューリングパラメータを決定することができる。   The “order” determined in step S310 and the “number of acquisitions Ai” determined in step S350 become “scheduling parameters” indicating the scheduling rule in the request period Tprd. The scheduling determination unit 30 determines scheduling parameters so that all processes P1 to P4 perform disk access at least once within the requested period Tprd, and the total throughput for each of the processes P1 to P4 is as large as possible. Is done. When the weighting parameter is given, the scheduling determination unit 30 can determine the scheduling parameter so that the weight is reflected in the throughput regarding each of the processes P1 to P4.

決定されたスケジューリングパラメータに従えば、全てのプロセスは所定の要求ピリオドTprd内に少なくとも1回ディスクアクセスを実行することができ、且つ、与えられた条件下でスループットは最大限大きくなる。つまり、アプリケーションのタイムアウト等の発生を防止しつつ、スループットを向上させることが可能となる。   According to the determined scheduling parameters, all processes can perform disk access at least once within a given request period Tprd, and throughput is maximized under given conditions. That is, it is possible to improve throughput while preventing occurrence of an application timeout or the like.

以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。   The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the above-described embodiments, and can be appropriately changed by those skilled in the art without departing from the scope of the invention.

図1は、本発明の課題を説明するためのI/Oスケジューラの概念図である。FIG. 1 is a conceptual diagram of an I / O scheduler for explaining the problem of the present invention. 図2は、本発明の実施の形態に係る計算機システムの構成例を示すブロック図である。FIG. 2 is a block diagram showing a configuration example of the computer system according to the embodiment of the present invention. 図3は、本実施の形態におけるプロセス特性情報の一例を示すテーブルである。FIG. 3 is a table showing an example of process characteristic information in the present embodiment. 図4Aは、本実施の形態におけるファイル位置情報の一例を示すテーブルである。FIG. 4A is a table showing an example of file position information in the present embodiment. 図4Bは、本実施の形態におけるファイル位置情報の他の例を示すテーブルである。FIG. 4B is a table showing another example of file position information in the present embodiment. 図5Aは、本実施の形態におけるシーク時間情報の一例を示すグラフである。FIG. 5A is a graph showing an example of seek time information in the present embodiment. 図5Bは、本実施の形態におけるシーク時間情報の他の例を示すテーブルである。FIG. 5B is a table showing another example of seek time information in the present embodiment. 図6Aは、本実施の形態におけるアクセス時間情報の一例を示すグラフである。FIG. 6A is a graph showing an example of access time information in the present embodiment. 図6Bは、本実施の形態におけるアクセス時間情報の他の例を示すテーブルである。FIG. 6B is a table showing another example of access time information in the present embodiment. 図7は、本実施の形態に係るI/Oスケジューラの機能を概念的に示す機能ブロック図である。FIG. 7 is a functional block diagram conceptually showing the functions of the I / O scheduler according to the present embodiment. 図8は、本実施の形態に係るスケジューリング処理を示すフローチャートである。FIG. 8 is a flowchart showing the scheduling process according to the present embodiment. 図9は、本実施の形態におけるスケジューリングパラメータの決定方法を示すフローチャートである。FIG. 9 is a flowchart showing a method for determining a scheduling parameter in the present embodiment. 図10Aは、アクセス対象ファイルに対するアクセス順序の一例を示す概念図である。FIG. 10A is a conceptual diagram illustrating an example of an access order for an access target file. 図10Bは、アクセス対象ファイルに対するアクセス順序の他の例を示す概念図である。FIG. 10B is a conceptual diagram illustrating another example of an access order for an access target file. 図11は、本実施の形態におけるプロセス特性情報の他の例を示すテーブルである。FIG. 11 is a table showing another example of process characteristic information in the present embodiment. 図12は、本実施の形態におけるプロセス特性情報の更に他の例を示すテーブルである。FIG. 12 is a table showing still another example of the process characteristic information in the present embodiment. 図13は、本実施の形態におけるディスクアクセス要求の取得数の決定方法の一例を示すフローチャートである。FIG. 13 is a flowchart illustrating an example of a method for determining the number of acquired disk access requests according to the present embodiment.

符号の説明Explanation of symbols

1 計算機システム
2 処理装置
3 記憶装置
4 ディスク
5 入力装置
6 出力装置
10 I/Oスケジューラ
20 プロセスモニタ部
30 スケジューリング決定部
40 リクエスト選択部
PROC プロセス特性情報
LOC ファイル位置情報
SEK シーク時間情報
ACS アクセス時間情報
Ai スケジューリングパラメータ
Tprd 要求ピリオド
Trst 残り時間
DESCRIPTION OF SYMBOLS 1 Computer system 2 Processing apparatus 3 Storage apparatus 4 Disk 5 Input apparatus 6 Output apparatus 10 I / O scheduler 20 Process monitor part 30 Scheduling determination part 40 Request selection part PROC Process characteristic information LOC File position information SEK Seek time information ACS Access time information Ai Scheduling parameter Tprd Request period Trst Remaining time

Claims (10)

複数のプロセスがディスクにアクセスする際に、前記複数のプロセスのそれぞれから発行されるディスクアクセス要求のスケジューリング処理をコンピュータに実行させるI/Oスケジューラであって、
前記スケジューリング処理は、
(A)前記複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及び前記ディスクに記録されているファイルの位置を示すファイル位置情報を、記憶装置から読み出すステップと、
(B)前記複数のプロセスからのディスクアクセス要求を、複数の待ちキューのそれぞれに格納するステップと、
(C)前記プロセス特性情報及び前記ファイル位置情報を参照し、前記アクセス対象ファイルが前記ディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される前記複数の待ちキューの順番を決定するステップと、
(D)所定の時間内に前記複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、前記所定の時間内に前記複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定するステップと、
(E)前記決定された順番及び数に従って、前記複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求を前記ディスクに送るステップと
を含む
I/Oスケジューラ。
An I / O scheduler that causes a computer to execute scheduling processing of a disk access request issued from each of the plurality of processes when a plurality of processes access the disk,
The scheduling process includes
(A) reading process characteristic information indicating an access target file accessed by each of the plurality of processes and file position information indicating a position of a file recorded on the disk from a storage device;
(B) storing disk access requests from the plurality of processes in each of a plurality of waiting queues;
(C) Referring to the process characteristic information and the file position information, the order of the plurality of wait queues from which disk access requests are taken out so that the access target file is sequentially accessed in the arrangement order on the disk. A step to determine;
(D) determining the number of disk access requests to be retrieved from each of the plurality of wait queues within the predetermined time period so that all of the plurality of processes perform disk access at least once within a predetermined time period; When,
(E) obtaining a disk access request from the plurality of waiting queues according to the determined order and number, and sending the obtained disk access request to the disk.
請求項1に記載のI/Oスケジューラであって、
前記(A)ステップは、更に、前記ディスク上のシーク距離とシーク時間との対応関係を示すシーク時間情報を前記記憶装置から読み出すステップを含み、
前記(D)ステップは、
(D1)前記ファイル位置情報を参照し、前記決定された順番で前記アクセス対象ファイルに対してアクセスが発生した場合の前記アクセス対象ファイル間のシーク距離を算出するステップと、
(D2)前記シーク時間情報を参照して、前記算出されたシーク距離に対応するシーク時間を算出するステップと、
(D3)前記算出されたシーク時間を前記所定の時間から引くことにより、残り時間を算出するステップと、
(D4)前記残り時間を前記複数のプロセス間で分配することによって、前記残り時間内に前記複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定するステップと
を含む
I/Oスケジューラ。
The I / O scheduler according to claim 1,
The step (A) further includes a step of reading seek time information indicating a correspondence relationship between a seek distance on the disk and a seek time from the storage device,
The step (D)
(D1) referring to the file position information, and calculating a seek distance between the access target files when the access target file is accessed in the determined order;
(D2) referring to the seek time information, calculating a seek time corresponding to the calculated seek distance;
(D3) calculating a remaining time by subtracting the calculated seek time from the predetermined time;
(D4) determining the number of disk access requests to be retrieved from each of the plurality of wait queues within the remaining time by distributing the remaining time among the plurality of processes.
請求項2に記載のI/Oスケジューラであって、
前記(D4)ステップにおいて、前記ディスクアクセス要求の数は前記複数のプロセス間で均等になるように決定される
I/Oスケジューラ。
The I / O scheduler according to claim 2, wherein
In the step (D4), the number of disk access requests is determined to be equal among the plurality of processes. I / O scheduler.
請求項2に記載のI/Oスケジューラであって、
前記プロセス特性情報は、更に、前記複数のプロセスのそれぞれに要求されるスループットの重み付けを指定する重み付けパラメータを示し、
前記(D4)ステップにおいて、前記重み付けが前記複数のプロセスのそれぞれに関するスループットに反映されるように、前記ディスクアクセス要求の数が決定される
I/Oスケジューラ。
The I / O scheduler according to claim 2, wherein
The process characteristic information further indicates a weighting parameter that specifies a weight of throughput required for each of the plurality of processes,
In the step (D4), the number of disk access requests is determined so that the weighting is reflected in the throughput related to each of the plurality of processes.
請求項4に記載のI/Oスケジューラであって、
前記重み付けパラメータは、前記複数のプロセスのそれぞれに要求されるスループット間の比率を含み、
前記(D4)ステップにおいて、前記比率が前記複数のプロセスのそれぞれに関するスループットに反映されるように、前記ディスクアクセス要求の数が決定される
I/Oスケジューラ。
The I / O scheduler according to claim 4, wherein
The weighting parameter includes a ratio between throughput required for each of the plurality of processes;
In the step (D4), the number of disk access requests is determined so that the ratio is reflected in the throughput related to each of the plurality of processes.
請求項4に記載のI/Oスケジューラであって、
前記複数のプロセスは、要求されるスループットが優先的に与えられる優先プロセスと、要求されるスループットがベストエフォートで与えられるベストエフォートプロセスとを含み、
前記重み付けパラメータは、前記複数のプロセスの各々が前記優先プロセスか前記ベストエフォートプロセスかを示すクラスを含み、
前記(D4)ステップは、
(D41)前記優先プロセスに関して、前記要求されるスループットが得られるように、前記複数の待ちキューのうち対応するものから取り出されるディスクアクセス要求の数を決定するステップと、
(D42)前記決定された数のディスクアクセス要求の処理に必要な時間を前記残り時間から引くことによって、前記残り時間を更新するステップと、
(D43)前記更新後の残り時間を前記ベストエフォートプロセス間で分配することによって、前記ベストエフォートプロセスに関して、前記複数の待ちキューのうち対応するものから取り出されるディスクアクセス要求の数を決定するステップと
を含む
I/Oスケジューラ。
The I / O scheduler according to claim 4, wherein
The plurality of processes include a priority process in which a required throughput is preferentially given, and a best effort process in which a required throughput is given at best effort,
The weighting parameter includes a class indicating whether each of the plurality of processes is the priority process or the best effort process;
The step (D4) includes
(D41) determining the number of disk access requests to be retrieved from the corresponding one of the plurality of waiting queues so that the required throughput is obtained with respect to the priority process;
(D42) updating the remaining time by subtracting the time required to process the determined number of disk access requests from the remaining time;
(D43) determining the number of disk access requests to be retrieved from the corresponding one of the plurality of waiting queues for the best effort process by distributing the updated remaining time among the best effort processes; I / O scheduler including
請求項6に記載のI/Oスケジューラであって、
前記重み付けパラメータは、更に、前記ベストエフォートプロセスのそれぞれに要求されるスループット間の比率を含み、
前記(D43)ステップにおいて、前記比率が前記ベストエフォートプロセスのそれぞれに関するスループットに反映されるように、前記ディスクアクセス要求の数が決定される
I/Oスケジューラ。
The I / O scheduler according to claim 6, wherein
The weighting parameter further includes a ratio between throughput required for each of the best effort processes;
In the step (D43), the number of disk access requests is determined such that the ratio is reflected in the throughput for each of the best effort processes.
請求項1に記載のI/Oスケジューラであって、
前記プロセス特性情報は、更に、前記複数のプロセスのそれぞれに要求されるスループットの重み付けを指定する重み付けパラメータを示し、
前記(D)ステップにおいて、前記所定の時間内に前記複数のプロセスの全てが少なくとも1回ディスクアクセスを行い、且つ、前記重み付けが前記複数のプロセスのそれぞれに関するスループットに反映されるように、前記所定の時間内に前記複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数が決定される
I/Oスケジューラ。
The I / O scheduler according to claim 1,
The process characteristic information further indicates a weighting parameter that specifies a weight of throughput required for each of the plurality of processes,
In the step (D), the predetermined process is performed so that all of the plurality of processes perform disk access at least once within the predetermined time period, and the weight is reflected in the throughput relating to each of the plurality of processes. The number of disk access requests to be fetched from each of the plurality of waiting queues within a predetermined time is determined. I / O scheduler.
複数のプロセスがディスクにアクセスする際に、前記複数のプロセスのそれぞれから発行されるディスクアクセス要求のスケジューリング処理を行うI/Oスケジューリング方法であって、
(A)前記複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及び前記ディスクに記録されているファイルの位置を示すファイル位置情報を、記憶装置から読み出すステップと、
(B)前記複数のプロセスからのディスクアクセス要求を、複数の待ちキューのそれぞれに格納するステップと、
(C)前記プロセス特性情報及び前記ファイル位置情報を参照し、前記アクセス対象ファイルが前記ディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される前記複数の待ちキューの順番を決定するステップと、
(D)所定の時間内に前記複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、前記所定の時間内に前記複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定するステップと、
(E)前記決定された順番及び数に従って、前記複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求を前記ディスクに送るステップと
を含む
I/Oスケジューリング方法。
An I / O scheduling method for performing a scheduling process of a disk access request issued from each of the plurality of processes when a plurality of processes access the disk,
(A) reading process characteristic information indicating an access target file accessed by each of the plurality of processes and file position information indicating a position of a file recorded on the disk from a storage device;
(B) storing disk access requests from the plurality of processes in each of a plurality of waiting queues;
(C) Referring to the process characteristic information and the file position information, the order of the plurality of wait queues from which disk access requests are taken out so that the access target file is sequentially accessed in the arrangement order on the disk. A step to determine;
(D) determining the number of disk access requests to be retrieved from each of the plurality of wait queues within the predetermined time period so that all of the plurality of processes perform disk access at least once within a predetermined time period; When,
(E) acquiring disk access requests from the plurality of waiting queues according to the determined order and number, and sending the acquired disk access requests to the disk. An I / O scheduling method.
ディスクと、
前記ディスクにアクセスする複数のプロセスを実行する処理装置と、
前記処理装置により実行され、前記複数のプロセスのそれぞれから発行されるディスクアクセス要求のスケジューリング処理を行うI/Oスケジューラと、
前記複数のプロセスのそれぞれがアクセスするアクセス対象ファイルを示すプロセス特性情報、及び前記ディスクに記録されているファイルの位置を示すファイル位置情報が格納される記憶装置と
を備え、
前記I/Oスケジューラは、
前記複数のプロセスからのディスクアクセス要求を、複数の待ちキューのそれぞれに格納し、
前記プロセス特性情報及び前記ファイル位置情報を参照し、前記アクセス対象ファイルが前記ディスク上の並び順で順番にアクセスされるように、ディスクアクセス要求が取り出される前記複数の待ちキューの順番を決定し、
所定の時間内に前記複数のプロセスの全てが少なくとも1回ディスクアクセスを行うように、前記所定の時間内に前記複数の待ちキューのそれぞれから取り出されるディスクアクセス要求の数を決定し、
前記決定された順番及び数に従って、前記複数の待ちキューからディスクアクセス要求を取得し、取得したディスクアクセス要求を前記ディスクに送る
計算機システム。
A disc,
A processing device for executing a plurality of processes for accessing the disk;
An I / O scheduler that is executed by the processing device and performs scheduling processing of a disk access request issued from each of the plurality of processes;
A storage device for storing process characteristic information indicating an access target file to be accessed by each of the plurality of processes, and file position information indicating a position of a file recorded on the disk, and
The I / O scheduler is
Store disk access requests from the plurality of processes in a plurality of wait queues,
Referring to the process characteristic information and the file position information, determine the order of the plurality of wait queues from which disk access requests are taken out so that the access target file is accessed in order in the arrangement order on the disk;
Determining the number of disk access requests to be retrieved from each of the plurality of wait queues within the predetermined time period so that all of the plurality of processes perform disk access at least once within a predetermined time period;
A computer system that acquires a disk access request from the plurality of waiting queues according to the determined order and number, and sends the acquired disk access request to the disk.
JP2008040633A 2008-02-21 2008-02-21 Computer system, i/o scheduler and i/o scheduling method Withdrawn JP2009199367A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008040633A JP2009199367A (en) 2008-02-21 2008-02-21 Computer system, i/o scheduler and i/o scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008040633A JP2009199367A (en) 2008-02-21 2008-02-21 Computer system, i/o scheduler and i/o scheduling method

Publications (1)

Publication Number Publication Date
JP2009199367A true JP2009199367A (en) 2009-09-03

Family

ID=41142790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008040633A Withdrawn JP2009199367A (en) 2008-02-21 2008-02-21 Computer system, i/o scheduler and i/o scheduling method

Country Status (1)

Country Link
JP (1) JP2009199367A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505490A (en) * 2009-10-26 2012-03-01 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー File I / O scheduling using instant chunking of data
JP2012216004A (en) * 2011-03-31 2012-11-08 Panasonic Healthcare Co Ltd Input-output control equipment
JP2015130095A (en) * 2014-01-08 2015-07-16 キヤノン株式会社 Information processing apparatus, information processing method, and computer program
WO2017168814A1 (en) * 2016-03-28 2017-10-05 株式会社日立産機システム Controller apparatus and task execution management method for controller apparatus

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012505490A (en) * 2009-10-26 2012-03-01 ソニー コンピュータ エンタテインメント アメリカ リミテッド ライアビリテイ カンパニー File I / O scheduling using instant chunking of data
JP2012216004A (en) * 2011-03-31 2012-11-08 Panasonic Healthcare Co Ltd Input-output control equipment
JP2015130095A (en) * 2014-01-08 2015-07-16 キヤノン株式会社 Information processing apparatus, information processing method, and computer program
WO2017168814A1 (en) * 2016-03-28 2017-10-05 株式会社日立産機システム Controller apparatus and task execution management method for controller apparatus
JP2017182105A (en) * 2016-03-28 2017-10-05 株式会社日立産機システム Controller device and method for managing tasks of controller device
TWI646412B (en) * 2016-03-28 2019-01-01 日立產機系統股份有限公司 Controller device and task execution management method of controller device

Similar Documents

Publication Publication Date Title
US10831547B2 (en) Accelerator control apparatus for analyzing big data, accelerator control method, and program
US8549526B2 (en) Access control apparatus and access control method
US9477601B2 (en) Apparatus and method for determining a sector division ratio of a shared cache memory
JP4621786B2 (en) Information processing apparatus, parallel processing optimization method, and program
JP2020135499A (en) Data processing device, storage device and prefetch method
JP6106028B2 (en) Server and cache control method
US8589644B2 (en) Non-transitory medium, access control method, and information processing apparatus
US8032888B2 (en) Method and system for scheduling a thread in a multiprocessor system
JP2010152571A (en) Raid driver, electronic equipment including the same, and access request arbitration method for raid
JP6885193B2 (en) Parallel processing device, job management method, and job management program
CN114615338A (en) Micro-service deployment method and device based on layer sharing in edge environment
JP2009199367A (en) Computer system, i/o scheduler and i/o scheduling method
US8775767B2 (en) Method and system for allocating memory to a pipeline
US9465745B2 (en) Managing access commands by multiple level caching
US20170024147A1 (en) Storage control device and hierarchized storage control method
CN105574008B (en) Task scheduling method and device applied to distributed file system
JP5158576B2 (en) I / O control system, I / O control method, and I / O control program
JP6194875B2 (en) Cache device, cache system, cache method, and cache program
JP6848278B2 (en) Storage management device, performance adjustment method and performance adjustment program
JP6816824B2 (en) Distributed systems, data management devices, data management methods, and programs
JP6488962B2 (en) Cache control device, cache control method, and cache control program
JP6901685B2 (en) Generation program, generation method, and information processing device
JP6200100B2 (en) Computer system
JP5791478B2 (en) Information processing device
Herodotou et al. Cost-based Data Prefetching and Scheduling in Big Data Platforms over Tiered Storage Systems

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20110510