メニューボタン

ソフトウェアから考えるストレージ・アクセス

前章では主にハードウェア・スペックの観点からパフォーマンスを概観してまいりましたが、ソフトウェア面においてもいくつか考慮するべき点があります。最初に考えたいのは科学技術計算よりもむしろ、ビジネス用システム特有の挙動に関わることです。

IBM i のような統合型システムですと、同時に複数のプログラムが稼動し、複数のユーザーがアクセスします。「同時」とは言っても、システムに比べて処理スピードが圧倒的に遅い人間から見た場合の話であって、システムの方は一時点に一つの仕事をこなすのが基本です。時間を非常に細かく切り刻んで、複数の仕事の間で高速な切換え処理を行いますので、人間からは同時に見えているわけです。

このことは、銀行などで一人の係員の方が窓口間を高速移動しながら、複数の来店客に応対するようなものだと考えることができます。どのみち来店客は悩み考えながら手続きを行うので、係員が一つの窓口に留まり続けるとしたら、その多くは待ち時間になってしまいます。高速で窓口を移動したら、係員にとってはより多くの業務処理を行えるので仕事の効率が上がる一方で、個々の来店客から見た窓口滞在時間はあまり伸びずに済ませられ、サービスの低下にはなりません。白土三平の漫画に出てくる「分身の術」のようなものだと考えると良いかもしれません。と言ったところで、わかるのは私と同世代の方くらいかと思いますが。

ここでシステム内部では何が起きているのかを見てみましょう。新たな仕事(タスク)を開始する必要が生じると、システムはそのための作業領域をメモリ内に確保します。仕事の進捗と共に何らかのデータがそこ書き込まれるわけですが、いずれ作業中の仕事を中断して、別の仕事に切り替える(タスク・スイッチング)必要が生じます。そうなるとそれまでの作業領域をどこかに退避させて、新たな仕事用に別の作業領域を用意する必要があります。もしかしたら既に退避・保管されていた領域を、再度メモリに展開し直すことになるのかもしれません。すなわち仕事を切り替えるということは、作業領域の退避と再展開という作業を伴うことです。

ここで十分に大きなメモリ空間を用意して、複数の仕事用に複数の作業領域を同時に常駐させるようにすれば、退避や保管といった作業は不要になり、パフォーマンス向上に役立ちそうです。仕事の切り替え時は、メモリ上に複数存在している作業領域の、どれか一つを指定すれば済みます。IBM i の開発部門が作業領域常駐型と退避・再展開型とを比較したところ、前者のシステム・プログラムのステップ数、すなわちプロセッサの作業時間は約半分、言い換えるとパフォーマンスは二倍になることを見極めました。選択すべきは作業領域常駐型というわけです。

さて、別な観点からもう一点検討してみたいと思います。それはファイルをオープンする際のディスク・アクセスに関わることで、システムが科学技術計算用途かビジネス用途であるのかを問いません。

例えばWindows PCのWORDドキュメント・ファイルは、ディスクの中、ツリー構造化されたフォルダー(ディレクトリ)、サブ・フォルダーの下に格納されています。少なくともソフトウェア上はそのように見えています。ところがWindowsは円盤形状のディスクのどこにそのファイルが配置されているのかを知りません。実際のファイル配置はディスク上に格納されている「道順情報」のようなもので管理されており、Windowsは直接的には関知していないということです。

文書の編集を行おうと、PCのエクスプローラにて当該WORDファイルのアイコンを選択し、マウスをダブル・クリックすると、ファイル・オープン作業が始まります。Windowsはフォルダー情報を頼りに各ディスク固有の「道順情報」を照会し、ディスク上の位置を取得してから、実際にファイルが格納されている場所にたどり着きます。住所を知った上で駅前の交番に行き、目指す場所への道順を聞くようなものです。初めて目指す場所にたどり着くためには、このように住所を道順に変換するプロセスが必要ですが、二度目以降は道順を忘れないようにしておけば効率良く移動できます。そしてファイルの道順情報はもうアクセスしないと決するまで、すなわちファイル・クローズするまでは、今後のためにすぐに取り出せる場所に確保しておきます。一時にオープンされるファイルは複数あるのが通常ですので、道順情報もそれぞれを識別できるようにして、複数持っておきます。参考までにC言語などのプログラムにおいては、ファイル・オープンに伴って生成された各ファイルへの道順情報を、ファイル・ハンドルと呼んでいます。

さてWORDファイルをオープンしたら、直ちに参照ないし編集作業に取り掛かれる状態にするために、ファイルをメモリにコピーする必要があります。ところがマシンの搭載メモリ容量が、同時にオープンされる全てのファイルを収容できるほどの十分な大きさを持つことはまずありません。また、後から優先度の高い作業に取り掛かるための備えとして、余裕を確保しておく必要もあります。そこで、現代のほとんどのマシンにおいては、大容量の空間が確保されているディスクの一部を間借りして、メモリであるかのように振舞う領域、すなわち仮想メモリを搭載しています。これにより実際の搭載容量よりも大きな、見た目上のメモリ空間を確保しています。そしてファイルをオープンするということは、内部的にはディスク上でファイルがコピーされることを意味しています。

ただファイルが仮想メモリという名のディスク上にあるままでは、編集に多大な時間を要してしまいます。実際に画面上に見えている部分など、直ちに作業対象になる箇所については、実際のメモリ上にWORDファイルを展開しておく必要があります。この時点で二つ目のコピーが作成されることになります。

このようにファイルをオープンするという作業は、ディスクへのアクセスを何度か行う必要のある、面倒で時間のかかるプロセスです。前章ではディスク・アクセスには膨大な時間を要することを説明したのを憶えていますでしょうか。SSDやNVMeによって状況は改善されますが、プロセッサやメモリに比べて圧倒的に遅いデバイスであることに変わりはありません。特に一台のサーバー上で、複数のユーザー、複数のアプリケーションを同時にサポートするIBM i にとっては、数多くのファイルを同時にオープンする必要があるので何とか工夫したいところです。情報を蓄え必要に応じて参照できるようにする記憶域、という同じ目的を持っているにも関わらず、二種類のデバイスとそれに応じた管理方式、すなわちフォルダー管理とディスク上の「道順情報」管理が存在することが、事を複雑にしています。

ファイルへのアクセスを高速化するため、そして先に述べた、仕事用の作業領域を常駐させるために、ディスクを廃して大容量メモリのみを搭載するシステムにしてしまうと、コストが高くなり過ぎるだけでなく、電源消失時に全てのデータを失ってしまうリスクが生じます。物理的に複数のテクノロジーを搭載するのは止むを得ないとしても、ディスクを仮想化して本来はメモリ向けの管理方式に一本化し、記憶域全体を覆い尽くしてしまえば、ファイル・オープンのプロセスを著しく単純化でき、パフォーマンス向上が期待できます。これが単一レベル記憶の考え方です。

単一レベル記憶

単一レベル記憶がカバーできる記憶域は、メモリとディスクの全領域を含むものでなくてはなりませんので、IBM i のアドレス能力は他のマシンよりも大きくなる傾向があります。1988年にAS/400が発表された当初は48ビットのアドレス能力を持っていましたが、1995年のPowerPC ASと呼ばれるRISCプロセッサの採用に伴って、64ビットに拡張されています。これは記憶域の大きさが65,536倍になったことを意味します。参考までにIBM汎用機のオペレーティング・システムであるz/OSの歴史(https://ibm.biz/BdsSBv)を紐解くと、旧来の24ビット・アーキテクチャに代わり、31ビットのSystem/370-XAアーキテクチャが登場したのが1983年、その後64ビットに拡張されたのが2000年とあります。IBM i はその登場時から汎用機に比べて17ビット分大きく、64ビット化も5年早かったというわけです。そしてさらに将来を見据えて、IBM i の単一レベル記憶は128ビットまで拡張できる余力を備えています。

128ビットのアドレス能力はどの程度のものなのか、スケールが大き過ぎて実感を伴わないので、少々計算してみました。調査会社のIDCが公開したレポート「Data Age 2025」によれば、1年間に世界で生成されたデジタルデータの総量は、2018年に33ZB(ゼタバイト)だったものが、2025年には175ZBにまで膨れ上がるとあります。これは年率平均26.9%の伸びを意味します。ちなみにゼタ(Zetta)とは10の21乗を表すSI接頭語(SI:国際単位系)で、テラの上のペタのさらに100万倍の大きさを持ち、おおよそ2の70乗に相当します。175ZBは78ビットのアドレス能力があれば十分に収容できることになりますので、IBM i 一台でこれの1000兆倍以上の余力がある計算になります。

ディスク容量が年々増え続けることを心配したあるIBM i ユーザーの方が、128ビットでも足りなくなったら、IBM i はどうなるのかを開発者に質問したことがあります。開発者は即座に回答しました。「ここにいる皆が存命中にそうなることはあり得ないので心配無用」今世紀中も大丈夫そうですね。



前章「そもそもの狙いはパフォーマンス改善」へ 「IBM i とは」TOP 次章「効果とメカニズムを探る」へ
PAGE TOP