この節では、Solaris 2.6 リリースのシステム性能の新しい機能について説明します。
スケジューラ起動は、特定のスケジューリングが必要なアプリケーション (データベースやマルチスレッド化されたアプリケーションなど) に、カーネルのスケジューリング機能を使用できるようにします。スケジューラ起動のマルチスレッド化サポートの変更は、カーネルと libthread ライブラリ間の専用インタフェースとして実装されています。libthread インタフェースは変更されていません。更に、アプリケーションは、カーネルにスケジューリングヒントを提供することによって、性能を向上させることができます。詳細については、libsched(3X) のマニュアルページを参照してください。
もう 1 つの新しい機能は、1 つまたは複数のアプリケーション専用に、プロセッサのグループを割り当てることができることです。/usr/sbin/psrset コマンドを使用すれば、システム管理者は、プロセッサセットの作成および管理を制御できます。詳細については、psrset(1M) のマニュアルページを参照してください。
直接入出力は、バルク入出力操作を向上させます。バルク入出力操作とは、大量のバッファサイズを使用して、大きなファイル (物理メモリーより大きなファイル) を転送することです。
バルク入出力操作の例は、衛星から転送されるデータのダウンロードです。これは、大量のデータをファイルに書き込みます。直接入出力データは、オペレーティングシステムのページキャッシング機構のオーバーヘッドを使用しないで、メモリーから読み取られたり、書き込まれたりします。
直接入出力の起動は、場合によっては制限があります。入出力が要求されたファイルがすでに他のアプリケーションによってマップされていた場合、そのページは、直接入出力操作が始まる前に、メモリーからフラッシュされなければなりません。
詳細については、directio(3C) のマニュアルページを参照してください。
mount コマンドに forcedirectio オプションを指定することによっても、ファイルシステムについて直接入出力を使用できます。ファイルシステムが大量の順次データを転送する場合のみ、直接入出力の効果が性能に現れます。
このオプションでファイルシステムをマウントすると、データはユーザーのアドレス空間とディスク間を直接転送されます。ファイルシステムに対して直接入出力を強制的に使用できない場合、ユーザーのアドレス空間とディスクとの間で転送されるデータは、まずカーネルアドレス空間に入れられます。
UFS ファイルシステムにおけるデフォルトの動作は、非強制直接入出力です。詳細は、mount_ufs のマニュアルページを参照してください。
スーパーユーザーになります。
forcedirectio マウントオプションを指定してファイルシステムをマウントします。
# mount -F ufs -o forcedirectio /dev/dsk/c0t3d0s7 /datab
マウントされたファイルシステムで強制直接入出力が使用できるかを確認します。
# mount . . . /export/home on /dev/dsk/c0t3d0s7 forcedirectio/setuid/read/write/largefiles on Mon May 12 13:47:55 1997
以前のフラットな /proc ファイルシステムは、状態情報と制御機能のためのサブディレクトリが追加されたディレクトリ階層に再構築されました。
また、/proc ファイルシステムは、ウォッチポイント機能も提供します。この機能は、プロセスのアドレス領域の個々のページの読み取り権または書き込み権を再マップするために使用されます。この機能は制限がなく、MT-安全です。
新しい /proc ファイル構造は、古い /proc インターフェースと完全なバイナリ互換を提供します。ただし、新しいウォッチポイント機能は、古いインターフェースでは使用できません。
デバッグ用ツールは、/proc の新しいウォッチポイント機能を使用するように変更されています。つまり、ウォッチポイントプロセス全体がより高速になったためです。
dbx デバッグ用ツールを使用してウォッチポイントを設定するときの次の制限は取り除かれました。
SPARC レジスタウィンドウのため、スタック上のローカル変数にウォッチポイントを設定する。
マルチスレッド化されたプロセスにウォッチポイントを設定する。
詳細については、proc(4)、core(4)、および adb(4) のマニュアルページを参照してください。