Operating Systems
D.4 非同期入出力
D.4.2 非同期入出力の実装
HP-UXで非同期入出力を使用するには、データベース・ファイルの記憶域オプションとし
てRAWパーティションを使用する自動ストレージ管理ディスク・グループを使用する必要があり ます。
関連項目:
HP-UXシステムでの自動ストレージ管理とRAW論理ボリュームの構成の詳細は、『Oracle Databaseインストレーション・ガイド』を参照してください
いずれかの記憶域オプションで非同期入出力を実装する前に、System Administrator Managementユ ーティリティを使用して、HP-UXカーネルに非同期ディスク・ドライバを構成する必要がありま す。
注意: Oracle Database 11gリリース1では、ファイル・システムに対し
てDISK_ASYNCH_IOパラメータをFALSEに設定する必要がありませんでした。しか し、Oracle Database 11gリリース2からは、データベース・ファイルの格納にファイル・
システムを使用する場合、初期化パラメータDISK_ASYNCH_IOをFALSEに設定する必要 があります。デフォルトでは、DISK_ASYNCH_IOの値はTRUEです。
DISK_ASYNCH_IOパラメータをTRUEに設定する必要があるのは、データベース・ファ イルの格納にRAWパーティションを使用する場合のみです。
System Administrator Managementユーティリティを使用して非同期ディスク・ドライバを追加し、
カーネルを構成するには、次の手順を実行します。
1. rootユーザーで次のコマンドを実行します。
# sam
2. 「Kernel Configuration」領域を選択します。
3. 「Drivers」領域を選択します。
4. 非同期ディスク・ドライバ(asyncdsk)を選択します。
5. 「Actions」→「Add Driver to Kernel」の順に選択します。
6. 「List」→「Configurable Parameters」の順に選択します。
7. MAX_ASYNC_PORTSパラメータを選択します。
8. 「Action」→「Modify Configurable Parameter」の順に選択します。
9. 次のガイドラインに従ってパラメータに新しい値を指定し、「OK」をクリックします。
MAX_ASYNC_PORTSパラメータは、構成可能なHP-UXカーネル・パラメータ
で、/dev/asyncファイルを同時に開くことができる最大プロセス数を制御します。
最大数のプロセスが/dev/asyncファイルを開いた後で別のプロセスがそのファイルを開こ うとすると、エラー・メッセージが表示されます。多数のシャドウ・プロセスやパラレル問 合せスレーブが非同期入出力を実行しているシステムでは、このエラーが発生するとパフォ ーマンスが低下することがあります。このエラーは記録されません。このエラーを回避する には、/dev/asyncファイルにアクセスする可能性がある最大プロセス数を予測
し、MAX_ASYNC_PORTSパラメータにその値を設定します。
10. 「Actions」→「Process a New Kernel」の順に選択します。
11. 次のいずれかのオプションを選択し、「OK」をクリックします。
Move Kernel Into Place and Shutdown System/Reboot Now Do Not Move Kernel Into Place: Do Not Shutdown/Reboot Now
2番目のオプションを選択すると、新しいカーネルvmunix_testとその作成に使用され
るsystem.SAM構成ファイルの両方が、/stand/buildディレクトリに作成されます。
HP-UX非同期デバイス・ドライバを使用して非同期入出力操作をできるようにするには、次の手
順を実行します。
1. rootユーザーでログインします。
2. /dev/asyncが存在しない場合は、次のコマンドを使用して作成します。
# /sbin/mknod /dev/async c 101 0x0
デフォルトでは、マイナー番号は0(ゼロ)に設定されます次の表に、デバイス・ファイルの作 成に使用できる様々な8ビットのマイナー番号を示します。
マイナー番号 説明
0x0 これは、/dev/asyncのHP-UXのデフォルト値です。
0x4 永久的に再試行するかわりに、ディスク・デバイス・タイムアウトが完了して エラー・コードが表示されるようになります。アプリケーション・レベルのデ ィスク・ミラー化には、障害が発生したディスク・デバイスの修復をアプリケ ーションが永久的に待機する状況を回避するために、この設定が必要で
す。Oracle RDBMSユーザーは、自動ストレージ管理のミラーリング/レプリケー
ション(内部冗長性)を使用する場合、この機能を有効にする必要がありま す。SGAはメモリー内でロックされます。
タイムアウト値はasyncdsk_io_timeoutを使用してチューニングできます。
これは、HP-UX 11i v3で使用可能な、プライベートかつ動的なチューナブルで
す。asyncdsk_io_timeoutのデフォルト値は30秒です。このチューナブルの 有効値の範囲は10から300までです。kctune(1M)を起動する
とasyncdsk_io_timeoutチューナブル値を変更できます。
HP-UX論理ボリューム・マネージャ(LVM)で構成されているボリュームの場
合、タイムアウトはHP-UX LVMによって制御されるため、このフラグは必要あ りません。
0x100 asyncdsk_open(2)のコール時の、非同期ドライバによるメモリー・ページのオン
デマンド・ロックが可能になります。オーバーヘッドの低いルーチンが、I/O操 作の際にページをメモリー内にロックするために使用されます。
オンデマンド・ロックは、Oracleの自動メモリー管理機能(メモリー使用量の制 御にinit.oraファイルのMEMORY_TARGETを使用)を使用する場合、非常に重
要です。動的nParまたは動的vPar機能を利用するRDBMSデプロイメントでは、
オンデマンド・ロックも構成する必要があります。
従来のRDBMSデプロイメントでは、オンデマンド・ロックの明らかな効果を踏
まえてその使用を検討できます。一般に、SGA全体がメモリー内に即時にロッ クされないため、RDBMSの起動が速くなります。ただし、メモリー・ページ がI/Oリクエストごとに動的にロック/ロック解除されるため、オンデマンド・ロ ックによってランタイム・パフォーマンスがわずかに低下するインスタンスも あります。
0x104 これは、0x100および0x4の組合せです。どちらの機能も有効になります。
3. 次のコマンドを入力し、メジャー番号が101の/dev/asyncデバイス・ファイルが存在する ことを確認します。
# ls -l /dev/async
このコマンドの出力は、次のようになります。
crw--- 1 oracle dba 101 0x000000 Oct 28 10:32 /dev/async
4. 必要に応じて、このデバイス・ファイルに対し、Oracleソフトウェア所有者およびOSDBAグ ループとの整合性のあるオペレーティング・システム所有者とアクセス権を指定します。
Oracleソフトウェア所有者がoracleで、OSDBAグループがdbaの場合は、次のコマンドを 実行します。
# /usr/bin/chown oracle:dba /dev/async
# /usr/bin/chmod 660 /dev/async