|
Auxiliary Storage(補助記憶装置)が不足したらどうなるか知っていますか?じつは、私も最近まで知りませんでした。“100%になったらシステムが止まるのかな?”程度に思っていたのですが、大きな間違いでした。 |
|
Auxiliary Storage Shortageとなった時、何が起こるのか? |
|
私は、テストプログラムを作成して、Auxiliary Storage(LocalPageデータセット)を溢れさせてみました。その時の状況をSYSLOGに表示されたメッセージを元に解説します。 >> IRA200E, IRA204E Message : *IRA200E AUXILIARY STORAGE SHORTAGE IRA204E 07% AUXILIARY STORAGE ALLOCATED TO FASTR$T IRA204E 05% AUXILIARY STORAGE ALLOCATED TO MVSPAS IRA204E 04% AUXILIARY STORAGE ALLOCATED TO TCPS IRA204E 24% AUXILIARY STORAGE ALLOCATED TO BBMCAS IRA204E 07% AUXILIARY STORAGE ALLOCATED TO IXGLOGR
(IRA204Eは多くのAuxiliary Storageを使用している上位5タスクです。OS/390 1.2のマニュアルには、「IRA204Eに表示されたタスクは強制的にSwapoutされる」とありますが、OS/390 1.3では「・・・Swap可能なタスク・・」と変更されています。これはMVSの仕様が変わった訳では無く、マニュアルが訂正された様です。OS/390 1.2であってもNo-SwapのタスクはSwapoutされませんでした。) LOGON IEA602I ADDRESS SPACE CREATE FAILED. A STORAGE SHORTAGE EXISTS IEE328I LOGON COMMAND ABORTED
(このメッセージはConsoleに出力されます。TSO画面にはIEA602Iのみ表示されます。) S ASTRTST IEA602I ADDRESS SPACE CREATE FAILED. A STORAGE SHORTAGE EXISTS IEE328I S COMMAND ABORTED
この様にAuxiliary Storageの使用率が70%を超えた段階で正常に稼動できるタスクは、70%となる以前に起動していたNOSWAP属性のタスク、又は新たにGetmainせず、少量の仮想記憶で動いているタスクだけとなっています。 *IRA201E CRITICAL AUXILIARY STORAGE SHORTAGE
IRA201Eが表示された後、以下の様な事が発生しました。
IEF196I IOS079I 0563,**,XCFAS, I/O TIMEOUT INTERVAL HAS BEEN EXCEEDED
IEF196I FOR A QUEUED REQUEST. THE QUEUED REQUEST HAS BEEN
IEF196I TERMINATED.
IOS079I 0563,**,XCFAS, I/O TIMEOUT INTERVAL HAS BEEN EXCEEDED 025
FOR A QUEUED REQUEST. THE QUEUED REQUEST HAS BEEN TERMINATED.
ストレージ不足の為、I/O処理が停止したと思われます。
*IXC246E SYSPLEX COUPLE DATA SET 045 SYS1.XCF.CDS01 ON VOLSER SYS9P3, DEVN 0563, HAS BEEN EXPERIENCING I/O DELAYS FOR 60 SECONDS.
このメッセージは更に深刻です。Sysplex Couple Datasetにアクセス出来なくなった様です。このまま放置しておくと、MVSはAlternate Sysplex Couple Datasetにアクセスを試みますが、当然そちらも失敗するでしょう。2つのSysplex Couple DatasetにアクセスできなくなるとMVSはシステムを強制終了します。 |
|
Auxiliary Storageの使用状況 |
|
以下のコマンドにより現在の使用状況を確認する事ができます。 > D ASM IEE200I hh:mm:ss DISPLAY ASM nnn TYPE FULL STAT DEV DATASET NAME PLPA 63% OK 0563 SYS1.PAGELPA COMMON 7% OK 0563 SYS1.PAGECSA LOCAL 70% OK 0563 SYS1.PAGEL1 LOCAL 70% OK 0563 SYS1.PAGEL2 SWAP 2% OK 0563 SYS1.SWAP “LOCAL”がAuxiliary Storageであり、複数ある場合は、その合計が使用率となります。(Page Datasetはレスポンスの速いDASDを優先的に使用する様な設計となっています。その為装置タイプの違う2つ以上のDASDを使用すると使用率に偏りができる可能性があります。) |
|
Auxiliary Storage Shortageの回復 |
|
通常の回復手順としては、多量のストレージを消費しているタスクを停止するか、もしくはLocalPageデータセットを新たに追加します。 |
|
多量のストレージを消費しているタスクを停止する |
|
素早く回復するには「多量のストレージを消費しているタスクを停止する」事が良いのですが、多量のストレージを消費しているタスクを調べるコマンドは無い様です。IRA204Eで上位5タスクを調べる事が出来ますが、おそらくこれらのタスクは簡単に停止する事が出来ないものだと思われます。(システムアドレス空間やDBなどが表示される可能性が高い) |
|
LocalPageデータセットを追加する |
|
LocalPageデータセットを追加する方法は最も確実な方法ですが、作成には数分〜十数分の時間が必要となります。 |
| 1 |
LocalPageデータセットの作成 |
|
LocalPageデータセットは'SYS1.PARMLIB(IEASYSxx)'のPAGTOTLパラメータに指定した数だけ追加できます。この値はある程度余裕のある数字を指定した方が良いでしょう。
|
| 2 |
LocalPageデータセットの接続 |
|
以下のコマンドにより作成したLocalPageデータセットを追加します。
> PA PAGE=locapage.dsname
(作成したPageデータセット名)
IEE783I PAGEADD COMMAND- nnn
locapage.dsname PAGE DATA SET
NOW AVAILABLE FOR SYSTEM USE
以下のコマンドにより接続状況を確認する事ができます。 > D ASM IEE200I hh:mm:ss DISPLAY ASM nnn TYPE FULL STAT DEV DATASET NAME PLPA 63% OK 0563 SYS1.PAGELPA COMMON 7% OK 0563 SYS1.PAGECSA LOCAL 69% OK 0563 SYS1.PAGEL1 LOCAL 69% OK 0563 SYS1.PAGEL2 LOCAL 2% OK 0501 locapage.dsname SWAP 2% OK 0563 SYS1.SWAP |
|
Auxiliary Storage Shortageを事前に防ぐ方法 |
|
今のところ、Auxiliary Storage Shortageを完全に防ぐ方法は無いと思います。しかし考えられる案としては |
| 1 |
VIOを止める |
|
VIO は古い機能で“ファイルを仮想記憶上に書く”という斬新なアイデアでしたが、今となってはそれほど素晴らしい機能とは思いません。どちらかというとシステム全体にインパクトを与えやすく、「VIO を使用した JOB は速くなるが、システム全体が記憶域不足で遅延する」という悪循環を招くと思われます。さらに最近の DASD は巨大なキャッシュを搭載しているので、普通に DASD 上にファイルを書き込んでも VIO と同程度の性能を出してしまうかもしれません。 |
| 2 |
ある程度使用率が高くなったら警告をあげる |
|
これは保守的な方法ですが、比較的簡単に実施でき、さらに他の JOB に与えるインパクトもほとんど無いでしょう。Netviewなどを使用してもいいし、@cmdを使った簡単なREXXプログラムと起動用のプロシジャーを作成し、JES2の自動コマンドで |
| 3 |
1つのJOBで使用できるREGION SIZEを制限する |
|
1つの JOB で使用できる Region Size を制限すれば、プログラムのバグ・ループなどで無限に繰り返される Getmain 要求から、システムを守る事ができます。 |
|
1998.09.20 - 1998.09.23:OS/390-1.2 - Kimu - |