JP2023173240A - 計算機、メモリ制御方法およびメモリ制御プログラム - Google Patents
計算機、メモリ制御方法およびメモリ制御プログラム Download PDFInfo
- Publication number
- JP2023173240A JP2023173240A JP2022085362A JP2022085362A JP2023173240A JP 2023173240 A JP2023173240 A JP 2023173240A JP 2022085362 A JP2022085362 A JP 2022085362A JP 2022085362 A JP2022085362 A JP 2022085362A JP 2023173240 A JP2023173240 A JP 2023173240A
- Authority
- JP
- Japan
- Prior art keywords
- auxiliary storage
- swap
- hard disk
- disk drive
- storage devices
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0629—Configuration or reconfiguration of storage systems
- G06F3/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/50—Control mechanisms for virtual memory, cache or TLB
- G06F2212/502—Control mechanisms for virtual memory, cache or TLB using adaptive policy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/60—Details of cache memory
- G06F2212/601—Reconfiguration of cache memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【課題】複数の補助記憶装置を用いる場合に、複数の補助記憶装置のスワップ領域の優先度を自動で設定する計算機を提供することである。
【解決手段】実施形態の計算機は、スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機である。計算機は、プロセッサと、主記憶装置を有する。プロセッサは、計算機に接続されている補助記憶装置を検索する。検索の結果、見つかった補助記憶装置が複数である場合には、プロセッサは、各補助記憶装置の書き込み速度を計測する。続いて、プロセッサは、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定する。プロセッサは、優先度に従ってスワップ領域を有効にする。
【選択図】 図1
【解決手段】実施形態の計算機は、スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機である。計算機は、プロセッサと、主記憶装置を有する。プロセッサは、計算機に接続されている補助記憶装置を検索する。検索の結果、見つかった補助記憶装置が複数である場合には、プロセッサは、各補助記憶装置の書き込み速度を計測する。続いて、プロセッサは、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定する。プロセッサは、優先度に従ってスワップ領域を有効にする。
【選択図】 図1
Description
本発明の実施形態は、計算機、メモリ制御方法およびメモリ制御プログラムに関する。
一般に、CPUと主記憶装置(メインメモリ)を有する計算機は、OSとプログラムを記憶している補助記憶装置を用いる。複数のプログラムを同時に使用する場合に、主記憶装置の容量が不足することがある。その対処方として、補助記憶装置にスワップ領域を確保し、現在使用していない主記憶装置の内容を一時的に補助記憶装置のスワップ領域に待避させる手法がある。
本発明が解決しようとする課題は、複数の補助記憶装置を用いる場合に、複数の補助記憶装置のスワップ領域の優先度を自動で設定する計算機、メモリ制御方法およびメモリ制御プログラムを提供することである。
実施形態の計算機は、スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機である。計算機は、プロセッサと、主記憶装置を有する。プロセッサは、計算機に接続されている補助記憶装置を検索する。検索の結果、見つかった補助記憶装置が複数である場合には、プロセッサは、各補助記憶装置の書き込み速度を計測する。続いて、プロセッサは、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定する。プロセッサは、優先度に従ってスワップ領域を有効にする。
実施形態のメモリ制御方法は、スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機のメモリ制御方法である。メモリ制御方法は、まず、計算機に接続されている補助記憶装置を検索する。検索の結果、見つかった補助記憶装置が複数である場合には、メモリ制御方法は、各補助記憶装置の書き込み速度を計測する。続いて、メモリ制御方法は、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定する。メモリ制御方法は、優先度に従ってスワップ領域を有効にする。
実施形態のメモリ制御プログラムは、スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機のプロセッサに、計算機に接続されている補助記憶装置を検索させる。検索の結果、見つかった補助記憶装置が複数である場合には、メモリ制御プログラムは、プロセッサに、各補助記憶装置の書き込み速度を計測させる。メモリ制御プログラムは、プロセッサに、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定させる。メモリ制御プログラムは、プロセッサに、優先度に従ってスワップ領域を有効にさせる。
[構成]
(ハードウェア構成)
まず、図1を参照して、実施形態に係る計算機100のハードウェア構成に説明する。図1は、実施形態に係る計算機100のハードウェア構成を示す図である。計算機100は、たとえば、コンピュータである。コンピュータは、パーソナルコンピュータやサーバコンピュータ等である。
(ハードウェア構成)
まず、図1を参照して、実施形態に係る計算機100のハードウェア構成に説明する。図1は、実施形態に係る計算機100のハードウェア構成を示す図である。計算機100は、たとえば、コンピュータである。コンピュータは、パーソナルコンピュータやサーバコンピュータ等である。
ここでは、計算機100は、複数の補助記憶装置が接続された状態にあるものとして説明する。言い換えれば、計算機100は、複数の補助記憶装置を含むものとして説明する。
図1に示されるように、計算機100は、CPU101と、システムバス102と、RAM103と、SATAハードディスクドライブ(HDD)104と、SATAハードディスクドライブ(HDD)105と、USBハードディスクドライブ(HDD)106と、NVMeソリッドステートドライブ(HDD)107と、Ethernet(登録商標)インタフェース(I/F)108と、ディスプレイ109と、キーボード110を有する。計算機100は、これらに加えて、他の周辺装置を有していてもよい。
CPU101とRAM103とSATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107とEthernetインタフェース108とディスプレイ109とキーボード110は、システムバス102を介して互いに電気的に接続されており、システムバス102を介してデータや命令のやりとりを行う。
CPU101は、プロセッサであり、プログラムの実行、データの処理を行うハードウェアである。CPU101は、RAM103に記憶されている一連の命令(プログラム)を逐次実行する。これにより、CPU101は、たとえば、RAM103からデータを読み出して処理し、処理後のデータをRAM103に書き込む。
RAM103は、プログラムとデータを一時的に記憶する主記憶装置(メインメモリ)である。RAM103は、CPU101が現在実行する処理に必要なプログラムとデータを一時的に記憶する。
CPU101は、プログラムを実行することにより、RAM103とSATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107とEthernetインタフェース108とディスプレイ109とキーボード110を制御する。
ディスプレイ109は、データを出力する出力装置である。ディスプレイ109は、種々の情報をユーザに提示する。
キーボード110は、命令やデータを受け取る入力装置である。キーボード110は、ユーザの操作によって、命令やデータを受け取る。
Ethernetインタフェース108は、ネットワークや他の計算機と接続するためのインタフェースである。たとえば、計算機100は、Ethernetインタフェース108を介して、ネットワークや他の計算機と接続可能である。
SATAハードディスクドライブ104,105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107はいずれも、データを永続的に記憶する補助記憶装置である。SATAハードディスクドライブ104,105は、SATAの接続規格に従うハードディスクドライブである。USBハードディスクドライブ106は、USBの接続規格に従うハードディスクドライブである。NVMeソリッドステートドライブ107は、NVMeの接続規格に従うソリッドステートドライブである。SATAハードディスクドライブ104,105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107はいずれも、ブロックデバイスである。
SATAハードディスクドライブ104,105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107はいずれも、スワップ領域を持ち得る補助記憶装置である。すなわち、SATAハードディスクドライブ104,105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107はいずれも、RAM103の容量不足時に、RAM103に現在記憶されているデータの一部を記憶する仮想メモリ領域を提供可能である。
実施形態の計算機100は、Linux(登録商標)のOSで動作する。SATAハードディスクドライブ104は、プライマリドライブであり、LinuxのOSを記憶している。計算機100は、電源投入時に、CPU101が、SATAハードディスクドライブ104からLinuxのOSをRAM103に読み込み実行することにより動作する。
また、SATAハードディスクドライブ104は、計算機100のためのメモリ制御プログラムを記憶している。LinuxのOSの起動後、CPU101は、SATAハードディスクドライブ104からメモリ制御プログラムをRAM103に読み込み実行する。メモリ制御プログラムは、SATAハードディスクドライブ104,105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107のスワップ領域を最適化する。
(ソフトウェア構成)
次に、図2を参照して、SATAハードディスクドライブ104が記憶しているメモリ制御プログラムのソフトウェア構成について説明する。図2は、SATAハードディスクドライブ104が記憶しているメモリ制御プログラムのソフトウェア構成を模式的に示す図である。
次に、図2を参照して、SATAハードディスクドライブ104が記憶しているメモリ制御プログラムのソフトウェア構成について説明する。図2は、SATAハードディスクドライブ104が記憶しているメモリ制御プログラムのソフトウェア構成を模式的に示す図である。
SATAハードディスクドライブ104が記憶しているメモリ制御プログラムは、コマンドと、データファイルを有する。
コマンドは、fdiskコマンド201と、mountコマンド202、dfコマンド203、ddコマンド204、swaponコマンド205を有する。
データファイルは、各種設定ファイル206と、/etc/fstabファイル207と、スワップ統合判断基準テーブル208と、ベンチマーク結果ファイル209を有する。
[動作]
次に、図3~図7を参照して、計算機100におけるメモリ制御について説明する。図3は、計算機100におけるメモリ制御を示すフローチャートである。メモリ制御は、CPU101が、RAM103に格納されたメモリ制御プログラムを実行することによって行われる。
次に、図3~図7を参照して、計算機100におけるメモリ制御について説明する。図3は、計算機100におけるメモリ制御を示すフローチャートである。メモリ制御は、CPU101が、RAM103に格納されたメモリ制御プログラムを実行することによって行われる。
図4は、各種設定ファイル206の一例の内容を示す図である。図5は、スワップ統合判断基準テーブル208の一例の内容を示す図である。図6は、ベンチマーク結果ファイル209の一例の内容を示す図である。図7は、/etc/fstabファイル207の一例のスワップ領域に関する内容を示す図である。
ステップS101において、CPU101は、fdiskコマンドで、システムバス102から補助記憶装置を検索する。言い換えれば、CPU101は、システムバス102に接続されている周辺装置のうち、補助記憶装置を検索する。
実施形態では、ステップS101の検索によって、具体的には、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107が見つかる。
ステップS102において、CPU101は、mountコマンドで、見つかった各補助記憶装置をマウントする。次に、CPU101は、dfコマンドで、各補助記憶装置の容量と空き容量を確認する。続いて、CPU101は、各補助記憶装置の容量と空き容量をベンチマーク結果ファイル209に記録する。
実施形態では、具体的には、CPU101は、ステップS101で見つかったSATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107をマウントする。
次に、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の各々の容量と空き容量を確認し、ベンチマーク結果ファイル209に記録する。
図6は、ベンチマーク結果ファイル209の一例の内容を表している。ベンチマーク結果ファイル209は、スワップ領域、書き込み速度、統合ID、統合速度、優先度、空き領域、最大サイズの項目を有する。書き込み速度と統合速度の値の単位は、MiB/sである。ベンチマーク結果ファイル209は容量の項目も有するが、図6では容量の項目の図示は省略されている。
スワップ領域は、/mnt1/swapfile、/mnt2/swapfile、/mnt3/swapfile、/mnt4/swapfileの項目を有する。/mnt1/swapfile、/mnt2/swapfile、/mnt3/swapfile、/mnt4/swapfileは、それぞれ、SATAハードディスクドライブ104、SATAハードディスクドライブ105、USBハードディスクドライブ106、NVMeソリッドステートドライブ107のスワップ領域を表している。
/mnt1/swapfile、/mnt2/swapfile、/mnt3/swapfile、/mnt4/swapfileは、図2の各種設定ファイル206に基づいて設定される。各種設定ファイル206は、設定名と、設定値を有する。設定名は、スワップサイズ上限割合値、性能見積もり補正値、スワップファイル名、スワップファイルパスを有する。
スワップファイルパスの/mnt*は、/mnt1、/mnt2、/mnt3、/mnt4を表している。/mnt1、/mnt2、/mnt3、/mnt4は、それぞれ、SATAハードディスクドライブ104、SATAハードディスクドライブ105、USBハードディスクドライブ106、NVMeソリッドステートドライブ107のスワップファイルパスを表している。
CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の空き容量を、ベンチマーク結果ファイル209に記録する。
図6のベンチマーク結果ファイル209の例では、SATAハードディスクドライブ104の空き容量は、125GBであり、SATAハードディスクドライブ105の空き容量は、100GBであり、USBハードディスクドライブ106の空き容量は、30GBであり、NVMeソリッドステートドライブ107の空き容量は、120GBである。
CPU101はさらに、空き容量に、各種設定ファイル206のスワップサイズ上限割合値を乗算して最大サイズを算出し、ベンチマーク結果ファイル209に記録する。
図6のベンチマーク結果ファイル209は、メモリ制御の処理において最終的に得られる内容を表している。ステップS102の処理後の時点では、各スワップ領域に対する項目の値は、空き領域と最大サイズの項目を除いて、すなわち、書き込み速度、統合ID、優先度の項目の値はすべて、ヌル値(たとえば0)である。
図6のベンチマーク結果ファイル209では、SATAハードディスクドライブ104とSATAハードディスクドライブ105のスワップ領域(/mnt1/swapfileと/mnt2/swapfile)の最大サイズは共に、90GBであり、USBハードディスクドライブ106のスワップ領域(/mnt3/swapfile)の最大サイズは、27GBであり、NVMeソリッドステートドライブ107のスワップ領域(/mnt4/swapfile)の最大サイズは、108GBである。
SATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の値は、各空き容量にスワップサイズ上限割合値を乗算した値と一致する。これに対して、SATAハードディスクドライブ104の値は、空き容量にスワップサイズ上限割合値を乗算した値とは相違する。これは、後述するように、SATAハードディスクドライブ104のスワップ領域とSATAハードディスクドライブ105のスワップ領域は、統合されるためである。統合に伴い、大きい方のSATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)の最大サイズが、小さい方のSATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)の最大サイズに合わせられるためである。付言すれば、この時点におけるベンチマーク結果ファイル209のSATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)の最大サイズは、112.5GBである。
ステップS103において、CPU101は、図2の各種設定ファイル206のスワップサイズ上限割合値の範囲内において、ddコマンドで、各補助記憶装置について、仮のスワップファイル(swapfile)を作成し、書き込み速度を計測する。
実施形態では、具体的には、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の各々について仮のスワップファイル(swapfile)を作成する。SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の仮のスワップファイル(swapfile)は、それぞれ、図6のベンチマーク結果ファイル209のスワップ領域の/mnt1/swapfile、/mnt2/swapfile、/mnt3/swapfile、/mnt4/swapfileに対応する。
次いで、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の各々の仮のスワップファイル(swapfile)の書き込み速度を計測する。
ステップS104において、CPU101は、ベンチマーク結果ファイル209に、計測した各補助記憶装置についての書き込み速度を記録する。
実施形態では、図6に示されるように、SATAハードディスクドライブ104の書き込み速度は、180(MiB/s)であり、SATAハードディスクドライブ105の書き込み速度は、196(MiB/s)であり、USBハードディスクドライブ106の書き込み速度は、80(MiB/s)であり、NVMeソリッドステートドライブ107の書き込み速度は、1500(MiB/s)である。
ステップS105において、CPU101は、図5のスワップ統合判断基準テーブル208の基準に沿って、スワップ領域を統合して、統合したスワップ領域の最大サイズでスワップファイル(swapfile)を上書きする。
スワップ統合判断基準テーブル208は、デバイス転送速度、許容性能差、統合上限速度の項目を有する。デバイス転送速度の項目はさらに、下限と上限の項目を有する。また、スワップ統合判断基準テーブル208は、デバイス転送速度と許容性能差と統合上限速度の各項目に対して、基準1、基準2、基準3、基準4の項目を有する。基準1と基準2と基準3と基準4の各項目は、デバイス転送速度と許容性能差と統合上限速度の各項目についての値を有する。
基準1ないし基準4の各値はいずれも、速度を示す数値である。基準1ないし基準4の各値の単位はいずれも、MiB/sである。デバイス転送速度の上限は、その値未満であるとする。
スワップ統合判断基準テーブル208の基準1、基準2、基準3、基準4は、それぞれ、SATAハードディスクドライブ104、SATAハードディスクドライブ105、USBハードディスクドライブ106、NVMeソリッドステートドライブ107の基準を表している。
CPU101は、図5のスワップ統合判断基準テーブル208の基準に沿って、スワップ領域を統合する。スワップ領域を統合するとは、スワップ統合判断基準テーブル208の許容性能差の範囲内にある複数の補助記憶装置のスワップ領域を、ラウンド・ロビン方式でページ配分させる一つのスワップ領域として纏めて、一つの統合補助記憶装置として扱うことを意味する。許容性能差は、各補助記憶装置が他の補助記憶装置とスワップ領域の統合を許容する書き込み速度の差を意味する。
実施形態では、前述したように、SATAハードディスクドライブ104の書き込み速度は、180(MiB/s)であり、SATAハードディスクドライブ105の書き込み速度は、196(MiB/s)であり、USBハードディスクドライブ106の書き込み速度は、80(MiB/s)であり、NVMeソリッドステートドライブ107の書き込み速度は、1500(MiB/s)である。
図5のスワップ統合判断基準テーブル208に示されるように、SATAハードディスクドライブ104の許容性能差は、10(MiB/s)であり、SATAハードディスクドライブ105の許容性能差は、20(MiB/s)であり、USBハードディスクドライブ106の許容性能差は、50(MiB/s)であり、NVMeソリッドステートドライブ107の許容性能差は、100(MiB/s)である。
これらの数値から、SATAハードディスクドライブ104のスワップ領域とSATAハードディスクドライブ105のスワップ領域は統合が可能である。一方、USBハードディスクドライブ106のスワップ領域は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とNVMeソリッドステートドライブ107のいずれの補助記憶装置のスワップ領域との統合は不可である。同様に、NVMeソリッドステートドライブ107のスワップ領域も、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106のいずれの補助記憶装置のスワップ領域との統合は不可である。
実施形態では、CPU101は、SATAハードディスクドライブ104のスワップ領域とSATAハードディスクドライブ105のスワップ領域を統合する。すなわち、CPU101は、SATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)とSATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)を、ラウンド・ロビン方式でページ配分させる一つのスワップ領域として纏める。言い換えれば、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105を、一つの統合補助記憶装置として扱う。
統合に伴い、CPU101は、ベンチマーク結果ファイル209の統合IDの項目に、SATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)とSATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)については共に、1を記録し、USBハードディスクドライブ106のスワップ領域(/mnt3/swapfile)については、2を記録し、NVMeソリッドステートドライブ107のスワップ領域(/mnt4/swapfile)については、3を記録する。
統合後においては、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107を、統合IDに基づく個別の補助記憶装置として扱う。すなわち、CPU101は、SATAハードディスクドライブ104とSATAハードディスクドライブ105を一つの補助記憶装置として扱い、USBハードディスクドライブ106を一つの補助記憶装置として扱い、NVMeソリッドステートドライブ107を一つの補助記憶装置として扱う。
また、CPU101は、スワップ領域を統合する複数の補助記憶装置の空き領域を確認し、それら複数の補助記憶装置の空き領域から取得できるスワップ領域の最大サイズを揃える。具体的には、最も小さい補助記憶装置のスワップ領域の最大サイズに、他の補助記憶装置のスワップ領域の最大サイズを合わせる。これは、ラウンド・ロビン方式でページ配分させる一つのスワップ領域として纏められる複数のスワップ領域の間おいて、スワップ領域の大きさを一致させるためである。これは、ラウンド・ロビン方式による良好なページ配分に貢献する。
図6のベンチマーク結果ファイル209の例において、SATAハードディスクドライブ104の空き容量は、125GBであり、SATAハードディスクドライブ105の空き容量は、100GBである。スワップ領域の最大サイズは、空き容量に、図4の各種設定ファイル206のスワップサイズ上限割合値を乗算した値である。したがって、SATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)の最大サイズは、112.5GBであり、SATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)の最大サイズは、90GBである。
前述したように、ステップS102の処理時には、CPU101は、ベンチマーク結果ファイル209において、SATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)の最大サイズに、112.5GBを記録する。
SATAハードディスクドライブ104とSATAハードディスクドライブ105を揃えるため、このステップS105において、CPU101は、大きい方のSATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)の最大サイズの112.5GBを、小さい方のSATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)の最大サイズの90GBで上書きする。
ステップS106において、CPU101は、スワップ領域の統合後の各補助記憶装置について、書き込みの統合速度を算出し、ベンチマーク結果ファイル209に記録する。書き込みの統合速度は、スワップ領域を統合する複数の補助記憶装置については、それら複数の補助記憶装置の書き込み速度を加算し、加算結果に、図4の各種設定ファイル206の性能見積もり補正値を乗算した値である。また、書き込みの統合速度は、スワップ領域を統合しない単独の補助記憶装置については、その補助記憶装置の書き込み速度の値そのものである。
図6のベンチマーク結果ファイル209では、SATAハードディスクドライブ104とSATAハードディスクドライブ105の書き込みの統合速度は共に、300.8(MiB/s)である。この値は、SATAハードディスクドライブ104とSATAハードディスクドライブ105の書き込み速度を加算し、加算結果にスワップサイズ上限割合値である0.9を乗算したものである。
一方、USBハードディスクドライブ106とNVMeソリッドステートドライブ107の書き込みの統合速度は、それぞれ、80(MiB/s)と1500(MiB/s)である。USBハードディスクドライブ106とNVMeソリッドステートドライブ107の書き込みの統合速度は共に、それぞれの書き込み速度に等しい。
ステップS107において、CPU101は、スワップ領域に対して、書き込みの統合速度が速いものから、高い優先度を付与する。すなわち、CPU101は、統合IDに基づいて識別される複数の補助記憶装置の中から、書き込みの統合速度が速い補助記憶装置からスワップ領域が優先的に利用されるよう優先度を高く設定し、ベンチマーク結果ファイル209に記録する。
図6のベンチマーク結果ファイル209の例では、CPU101は、ベンチマーク結果ファイル209の優先度の項目に、スワップ領域を統合するSATAハードディスクドライブ104とSATAハードディスクドライブ105については共に、90を記録し、USBハードディスクドライブ106については、80を記録し、NVMeソリッドステートドライブ107については、100を記録する。ここで、優先度は、その値が大きいものほど高い。
ステップS108において、ステップS107の処理後のベンチマーク結果ファイル209に基づいて、/etc/fstabファイルを更新する。図7は、更新後の/etc/fstabファイル207の一例のスワップ領域に関する内容を示す図である。図7の/etc/fstabファイル207には、<file system>の各々に対して、<option>として、優先度を示すdefaults,priが記されている。
図7から、SATAハードディスクドライブ104のスワップ領域(/mnt1/swapfile)とSATAハードディスクドライブ105のスワップ領域(/mnt2/swapfile)の優先度が共に、90(pri=90)であり、USBハードディスクドライブ106のスワップ領域(/mnt3/swapfile)の優先度が、80(pri=80)であり、NVMeソリッドステートドライブ107のスワップ領域(/mnt4/swapfile)の優先度が、1000(pri=100)であることがわかる。
ステップS109において、CPU101は、Linuxを再起動する。Linuxの再起動においては、CPU101は、swaponコマンド205で、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の各々に対して、ステップS108において更新された/etc/fstabファイル207に基づいて、スワップ領域を確保する。
Linuxの再起動後は、RAM103の容量が不足した場合には、CPU101は、/etc/fstabファイル207の優先度に基づいて、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107のスワップ領域を有効にする。
実施形態では、ステップS105~S107において、SATAハードディスクドライブ104のスワップ領域とSATAハードディスクドライブ105のスワップ領域を統合し、書き込みの統合速度に基づいて優先度を設定しているが、SATAハードディスクドライブ104のスワップ領域とSATAハードディスクドライブ105のスワップ領域の統合処理を省略し、単純に、SATAハードディスクドライブ104とSATAハードディスクドライブ105とUSBハードディスクドライブ106とNVMeソリッドステートドライブ107の書き込みの速度に基づいて優先度を設定してもよい。
[効果]
実施形態の計算機100は、スワップ領域への書き込み速度が異なる複数の補助記憶装置を用いる場合に、複数の補助記憶装置のスワップ領域の優先度を自動で設定する。これにより、スワップ領域の優先度の設定の知識が無い利用者であっても、システムバス102を効率良く活用できる。したがって、RAM103の容量が不足するときにスワップ領域を利用する場合に、スワップにかかる時間を短くし、計算処理を早く終わらせることができる。
実施形態の計算機100は、スワップ領域への書き込み速度が異なる複数の補助記憶装置を用いる場合に、複数の補助記憶装置のスワップ領域の優先度を自動で設定する。これにより、スワップ領域の優先度の設定の知識が無い利用者であっても、システムバス102を効率良く活用できる。したがって、RAM103の容量が不足するときにスワップ領域を利用する場合に、スワップにかかる時間を短くし、計算処理を早く終わらせることができる。
すなわち、実施形態によれば、複数の補助記憶装置を用いる場合に、複数の補助記憶装置のスワップ領域の優先度を自動で設定する計算機、メモリ制御方法およびメモリ制御プログラムが提供される。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100…計算機、101…CPU、102…システムバス、103…RAM、104…SATAハードディスクドライブ、105…SATAハードディスクドライブ、106…USBハードディスクドライブ、107…NVMeソリッドステートドライブ、108…Ethernetインタフェース、109…ディスプレイ、110…キーボード、201…fdiskコマンド、202…mountコマンド、203…dfコマンド、204…ddコマンド、205…swaponコマンド、206…種設定ファイル、207…etc/fstabファイル、208…スワップ統合判断基準テーブル、209…ベンチマーク結果ファイル。
Claims (5)
- スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機であって、
プロセッサと、
主記憶装置を有し、
前記プロセッサは、
計算機に接続されている前記補助記憶装置を検索し、
検索の結果、見つかった前記補助記憶装置が複数である場合には、各補助記憶装置の書き込み速度を計測し、
書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定し、
優先度に従ってスワップ領域を有効にする、
計算機。 - 前記プロセッサは、書き込み速度の差が設定値の範囲内に少なくとも二つの補助記憶装置があり、その他に少なくとも一つの補助記憶装置がある場合には、前記少なくとも二つの補助記憶装置のスワップ領域を、ラウンド・ロビン方式でページ配分させる一つのスワップ領域として纏めて、前記少なくとも二つの補助記憶装置を一つの統合補助記憶装置とし、前記統合補助記憶装置の書き込み速度を計算し、前記統合補助記憶装置を一つの補助記憶装置として含めた複数の補助記憶装置の中から、書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるよう優先度を高く設定する、
請求項1に記載の計算機。 - 前記少なくとも二つの補助記憶装置の空き領域を確認し、前記少なくとも二つの補助記憶装置の空き領域から取得できるスワップ領域のサイズを揃える、
請求項2に記載の計算機。 - スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機のメモリ制御方法であって、
計算機に接続されている前記補助記憶装置を検索し、
検索の結果、見つかった前記補助記憶装置が複数である場合には、各補助記憶装置の書き込み速度を計測し、
書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定し、
優先度に従ってスワップ領域を有効にする、
メモリ制御方法。 - スワップ領域を持ち得る複数の補助記憶装置が接続され得る計算機のプロセッサに、
計算機に接続されている前記補助記憶装置を検索させ、
検索の結果、見つかった前記補助記憶装置が複数である場合には、各補助記憶装置の書き込み速度を計測させ、
書き込み速度が速い補助記憶装置からスワップ領域が優先的に利用されるように優先度を設定させ、
優先度に従ってスワップ領域を有効にさせる、
メモリ制御プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022085362A JP2023173240A (ja) | 2022-05-25 | 2022-05-25 | 計算機、メモリ制御方法およびメモリ制御プログラム |
US18/156,207 US12141456B2 (en) | 2022-05-25 | 2023-01-18 | Calculator and memory control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2022085362A JP2023173240A (ja) | 2022-05-25 | 2022-05-25 | 計算機、メモリ制御方法およびメモリ制御プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023173240A true JP2023173240A (ja) | 2023-12-07 |
Family
ID=88877187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022085362A Pending JP2023173240A (ja) | 2022-05-25 | 2022-05-25 | 計算機、メモリ制御方法およびメモリ制御プログラム |
Country Status (2)
Country | Link |
---|---|
US (1) | US12141456B2 (ja) |
JP (1) | JP2023173240A (ja) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0340150A (ja) | 1989-07-07 | 1991-02-20 | Nec Corp | ジョブのプライオリティに応じたスワップ領域確保制御方式 |
JP2017138853A (ja) * | 2016-02-04 | 2017-08-10 | 株式会社東芝 | 情報処理装置およびプログラム |
US10809942B2 (en) * | 2018-03-21 | 2020-10-20 | Micron Technology, Inc. | Latency-based storage in a hybrid memory system |
-
2022
- 2022-05-25 JP JP2022085362A patent/JP2023173240A/ja active Pending
-
2023
- 2023-01-18 US US18/156,207 patent/US12141456B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US20230384956A1 (en) | 2023-11-30 |
US12141456B2 (en) | 2024-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10169413B2 (en) | Scalable acceleration of database query operations | |
US9858180B2 (en) | Management of point-in-time copy relationship for extent space efficient volumes | |
US9317373B2 (en) | Snapshots in a hybrid storage device comprising a magnetic disk and a solid state disk | |
US20170286008A1 (en) | Smart storage platform apparatus and method for efficient storage and real-time analysis of big data | |
US20190253489A1 (en) | Command process load balancing system | |
JP6046978B2 (ja) | 情報処理装置およびその方法 | |
CN102707966A (zh) | 加速操作系统启动的方法及装置、预取信息生成方法及装置和终端 | |
CN108475201A (zh) | 一种虚拟机启动过程中的数据获取方法和云计算系统 | |
CN113986846B (zh) | 数据处理方法、系统、设备及存储介质 | |
JP5381713B2 (ja) | 仮想マシン向けデータ格納システム、データ格納方法およびデータ格納用プログラム | |
CN107153643A (zh) | 数据表连接方法及装置 | |
JP2012247901A (ja) | データベースの管理方法、データベースの管理装置及びプログラム | |
CN119149218A (zh) | 融合系统的数据处理方法、装置、设备和系统 | |
TW200931313A (en) | Setting methods and motherboard for display parameters | |
JP2023173240A (ja) | 計算機、メモリ制御方法およびメモリ制御プログラム | |
JP2012079245A (ja) | 仮想計算機のボリューム割当て方法およびその方法を用いた計算機システム | |
US10430287B2 (en) | Computer | |
JPWO2015075803A1 (ja) | 情報処理装置、方法、プログラム及び記録媒体 | |
US10210035B2 (en) | Computer system and memory dump method | |
JP6757708B2 (ja) | 情報処理装置及び構成要素の管理方法 | |
JP2007328604A (ja) | 計算機システム、ストレージ管理プログラム及び計算機管理プログラム | |
US20090307479A1 (en) | Computer execution system for starting program quickly and method thereof | |
JP5212216B2 (ja) | ジョブ処理装置 | |
US20160266960A1 (en) | Information processing apparatus and kernel dump method | |
US20250021387A1 (en) | Assignment of data storage application processing to processor cores that are shared with a containerized service in a data storage system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20230104 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20241115 |