本文へジャンプ

System i 再確認

単一レベル記憶域(SLS)その2

今回は、マクロ的観点から単一レベル記憶の利点を説明いたします。今1台のSystem i があります。このシステムには2つのCPU、512MBの主記憶域と40GBの磁気ディスク機構が搭載されています。磁気ディスクには7,000,000レコードからなるファイルがあり、そのサイズは945MBです。このファイルに対して情報検索をするとき、どういう方法が最も処理が速くなるかを考えます。ある情報検索の業務プログラムを2種類作りました。一つはCPUを1つ使用するプログラムで、もう一つはCPUを同時に2つ使用するプログラムです。これらのプログラムを実行する場所として2つの主記憶域を用意しました。一つは22MBでもう一つは443MBです。

チャート
iQueryの内容
・3つの項目による分類
・1つの項目による選択
・論理ファイル使用

CL プログラム名 プログラムの内容
SMPT01
SMPT02
CHGQRYA DEGREE(*NONE) RUNQRY
CHGQRYA DEGREE(*NBRTASKS 2) RUNQRY

計測結果
実行
順序
プログラム名 実行場所と実行方法 スループット CPU%
1
2
3
4
5
SMPT01
SMPT02
SMPT02
SMPT02
SMPT02
QBATCH SBMJOBコマンド
QBATCH SBMJOBコマンド
QBATCH SBMJOBコマンド
QINTER CALLコマンド
QBATCH SBMJOBコマンド
11分45秒
5分
4分40秒
8分50秒
2分
10%
30%
30%
40%
48%

さて第一番目にCPUを1つ使用して22MBの主記憶域でプログラムを実行しました。11分45秒かかりました。第二番目と三番目はCPUを2つ使用して22MBの主記憶域でプログラムを実行しました。すると半分以下の5分や4分40秒で処理できました。 これはCPUを2つ同時に使用した結果です。四番目にCPUを2つ使用し、443MBの主記憶域でプログラムを実行すると8分50秒かかりました。その後五番目として、同様にCPUを2つ同時に使用し、今度はもとの22MBの主記憶域でプログラムを実行した結果、2分で処理が完了しました。

これを説明するには単一レベル記憶が必要となります。四番目の処理が完了した時点では、443MBの主記憶域の中に945MBの検索対象ファイルのおよそ半分が読み込まれて残っていたことになります。次の五番目の処理ではプログラムがデータを読む回数のうち、およそ半数はディスク装置からデータを読み込むのではなく、主記憶域を参照したに相違ありません。この結果五番目の処理速度が他に比べて圧倒的に速いのです。

一つの方法論ですが、もしこのファイルが日常頻繁にアクセスされ、その処理時間の向上が求められているのであれば、945MB以上の主記憶域を用意し、IPL後すぐにこのファイルを空読みします。すると多くのデータが主記憶域に読み込まれます。本来のエンド・ユーザーが検索をする時には多くのデータが主記憶域にあるために最高の速度で処理されることになるでしょう。