08.システム管理

SMF(System Management Facilities)

MVSの運用において、システムとジョブに関連するさまざまな情報を収集する機能です(VOS3ではSMSと呼ばれます)。システムの運用担当部門は、直接のオペレーション業務だけでなく、システムの状況を正しく把握・分析して、より最適なシステムになるよう改良し、ジョブの特性に合わせた運用を行う必要があります。また、システムの利用者に、使用した資源に応じた課金を行うこともあります。これらの仕事をシステム側から支援するのがSMFです。

SMFは、主にジョブ及びジョブ・ステップ単位のスケジューリングに関する情報、課金情報、システム資源の利用状況、どのようなデータセットが利用されたかなどの情報も収集します。

SMFが収集したデータは、SMFデータセットに書き込まれます。データセットに書き込まれるデータを、SMFレコードと呼びます。通常、SMFデータセットは複数個用意され、1つのデータセットが一杯になると残りの予備データセットに切り替わります。

RMF(Resource Measurement Facility)

SMFはジョブ運用の観点からの情報が中心ですが、システムのチューニングに直結する情報はRMFによって収集されます。MSPではPDL/PDA、VOS3ではSAR/D/ESが相当する機能です。RMFは必要に応じて起動され、システム全体またはジョブ空間毎の、CPU使用量、メモリー使用量、ページング状況、チャネルやデバイスの使用率(BUSY度)やパフォーマンス、資源の競合など、さまざまなシステム資源の活動状況を記録しレポートとして出力します。

RMFレポートを分析することによって、パフォーマンスの阻害要因や資源を独占しているジョブを見つけ出すことができます。しかしながら、分析作業を正確に行うには、MVSも含めメインフレーム・システム全般に関する十分な知識と経験が必要で、運用部門の業務の中でも難易度の高い部類に入ります。

具体的には「MVSパフォーマンス・チューニング入門」に解説があります。

SRM(System Resources Manager)

SRMは、MVSシステムのパフォーマンス制御を行う機能です。主としてCPU、メモリー(実記憶)、I/Oの3つの資源を、システム内の各ジョブに適切に配分して、各プログラムの応答性を保ちつつ、資源の使用効率を高め全体のスループットを向上させる役割を持ちます。MSPではSDM(System Decision Manager)、VOS3ではRCM(Resource Centralized Manager)と呼ばれ、細かな制御方法に違いはありますが、いずれもSRM同等の機能です。

SRMの目標は大きく2つです。

  • ジョブのプログラムの応答時間を早めること。(資源を優先的に配分する)
  • 全体のスループットを向上する。(資源の使用効率を高める)

しかし、この2つは相反する関係にあります。 1つのジョブを優先すれば他は動けず資源に遊びが生まれ、すべてを平等に扱えば資源を取り合い競合するのでみんなで遅くなります。そこで、SRMはお互いに大きな支障にならない程度にバランス良く対処する「妥協点」を見いだします。元々はオペレーターの作業分野ですが、この種の作業は「勘と経験」を頼りにした高度な技能を必要とします。SRMはこれをOS自身で肩代わりするものです。

SRMでは管理の対象を以下のように分けます。

  • サービス ……… CPU、メモリー、I/Oなど使われる資源です。
  • ワークロード … バッチやSTCタスク、TSOユーザーです。

MVSではユーザーの仕事の単位はジョブですが、SRMではこれを「トランザクション」と呼びます。バッチやSTCタスクではジョブ、TSOでは1回のコマンド入力がトランザクションに対応します。IMSやCICSなどオンライン・リアルタイム処理を行うシステムでは、ジョブ全体のサービス制御に加えて、DCシステムのトランザクションをSRMのトランザクションに対応させることもできます。

    WLM(Workload Manager)

    ワークロード・マネージャーは、一定の周期で個々のトランザクションが受けているサービス量の配分状況を調べて、サービス率を監視します。CPUのサービス量は、単純な使用時間の積み上げではありません。CPUは機種によって能力が変るので、例えば、プログラムが命令を百万回連続して実行しても、CPUモデルAとCPUモデルBでは実行に要する実時間は変ってきます。プログラムが要求するのは百万個の命令を処理できるCPUのサービスであって、○○秒間CPUを使うことではありません。そこで、WLMはCPUの使用時間を機種毎の定数で性能差を補正(時間÷モデル別定数)したものをサービス量としています。こうすることで機種が変っても同じサービス配分になるように調整されるのです。

    SRMは、WLMの勧告に基づき具体的な資源の配分調整を行います。

    • スワッピング
    • スワッピングは、空間(ジョブ)の多重度を調整するために行われます。サービス率が上昇したジョブのスワップ・イン優先度を下げ、低下したジョブの優先度を上げます。ジョブはサービス率が上昇したまま資源を使い続けると、スワップ・アウトされやすくなります。スワップ・アウトは、ジョブが使用している実記憶上のメモリーページを、まとめて補助記憶へ書き出す処理です。スワップ・アウトされたジョブは、実行が中断されてスワップイン待ちの状態になります。また、長時間の待ち状態が発生したジョブもスワップ・アウトされます。例えば、コンソールにメッセージを出してオペレーターの応答を待っているプログラムです。TSOユーザー空間も、端末からの入力待ち状態ではスワップアウトされています。人間が応答するまでしばらく実行されないのに、実メモリーを占有していては資源の無駄だからです。

      オンライン・システムのサーバー・プログラムなど、レスポンスに直結するジョブには、スワップ禁止と言う特別なモードが与えられたりします。

    • 競合待ちの最小化
    • リザーブされたDASDや排他使用中のデータセットの使用待ちジョブがある時、SRMは排他使用中の資源を持っている方のジョブを優先的にスワップ・インします。排他使用中の資源を持ったままスワップアウトしてしまったら、その資源を待っている他のジョブも引きずられてしまいます。

    • ディスパッチング
    • 他の実行可能な空間があれば、優先順位に従いCPUディスパッチを切り替えます。CPUディスパッチャーはタスク管理の機能ですが、優先度の判断や調整はSRMが行います。

    • ストレージ不足の防止
    • 補助記憶装置の空き容量が一定の割合を下回ると、新しいアドレス空間の生成を停止します(TSOへのログオン、STCタスクの起動が抑止される)。

      このような状態が「AUXILIARY STORAGE SHORTAGE」です。すでに起動済みのジョブは継続して動きますが、ページ・イン、スワップ・インできないジョブが増えるため、システム全体の反応は鈍くなります。SRMは、補助記憶不足によるシステム・ダウンを防止するための制御は行いますが、自然回復しなければオペレーターが必要な処置を取ることになります。例えば、メモリーを大量に使っているジョブを終了させる、ページ・データセットを追加するなどです。

    • DASDの割り振り
    • 一時的データセットなどを割り振るときに、特定のボリュームに偏らないよう、利用可能ボリュームを平等に使うことを試みます。

SRMの活動状況をレポートするのが、RMFです。オペレーターやシステム管理者は、RMFのレポートに基づきSRMのパラメーターやWLMのポリシーを調整します。これがMVSのシステム・チューニング作業です。