コンピュータやネットワークのパフォーマンスを十分に引き出すことは、システム管理における重要な作業です。この章では、コンピュータシステムのパフォーマンスの管理に影響する要素について簡単に説明します。
この章の内容は以下のとおりです。
この節では、Oracle Solaris でシステムパフォーマンスを管理する際の新機能、または機能の変更について説明します。Oracle Solaris リリースの新機能と説明の完全な一覧については、『Oracle Solaris 10 9/10 の新機能』を参照してください。
Oracle Solaris 10: /proc ファイルシステムは、/proc/pic/path ディレクトリのファイル名情報を格納できるよう強化されました。この情報は、pfiles がプロセス中の各ファイル名を表示するために使います。この変更によって、プロセスの動作の新しい洞察が可能になります。詳細は、「プロセスに関する情報を表示する方法」と、proc(1) のマニュアルページを参照してください。
Oracle Solaris 10: Oracle Solaris OS を実行する SPARC および x86 プラットフォームのパフォーマンス分析機能を使いやすくするため、CPU パフォーマンスカウンタ (CPC) システムが強化されました。
CPC コマンド cpustat および cputrack で、CPU 情報を指定するためのコマンド行構文が強化されました。たとえば、旧バージョンの Oracle Solaris OS では、2 つのカウンタを指定しなければなりませんでした。以下の例に示すように、今回のバージョンで指定しなければならないカウンタ数は、どちらのコマンドの構成でも 1 つだけです。
| # cputrack -c pic0=Cycle_cnt ls -d . time lwp event pic0 pic1 . 0.034 1 exit 841167 | 
測定を簡素化するため、以下の例に示すように、カウンタ構成を省略することもできます。
| # cputrack -c Cycle_cnt ls -d . time lwp event pic0 pic1 . 0.016 1 exit 850736 | 
cpustat コマンドの使用については、cpustat(1M) のマニュアルページを参照してください。cputrack コマンドの使用については、cputrack(1) のマニュアルページを参照してください。
| 作業 | 詳細 | 
|---|---|
| プロセスの管理 | |
| システムのパフォーマンスの監視 | |
| 調整可能パラメータの変更 | |
| システムパフォーマンス作業の管理 | 『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 2 章「プロジェクトとタスク (概要)」 | 
| FX および FS スケジューラを使用したプロセス管理 | 『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 8 章「公平配分スケジューラ (概要)」 | 
コンピュータシステムのパフォーマンスは、システムが資源をどのように使用し、割り当てるかによって変わります。したがって、通常の条件下でどのように動作するかを知るために、システムパフォーマンスを定期的に監視する必要があります。期待できるパフォーマンスについてよく把握し、問題が発生したときに分析できなければなりません。
パフォーマンスに影響を及ぼすシステム資源は次のとおりです。
| システム資源 | 説明 | 
|---|---|
| 中央処理装置 (CPU) | CPU は、命令をメモリーからフェッチして実行します。 | 
| 入出力 (I/O) デバイス | I/O デバイスは、コンピュータとの間で情報をやりとりします。この種のデバイスには、端末とキーボード、ディスクドライブ、プリンタなどがあります。 | 
| メモリー | 物理 (またはメイン) メモリーは、システム上のランダムアクセスメモリー (RAM) の容量を示します。 | 
第 13 章システムパフォーマンスの監視 (手順) は、システムの動作とパフォーマンスに関する統計を表示するツールについて説明します。
| 用語 | 説明 | 
|---|---|
| プロセス | システムの動作またはジョブ。システムをブートしてコマンドを実行するか、アプリケーションを起動するたびに、システムは 1 つ以上のプロセスをアクティブにする | 
| 軽量プロセス (LWP) | 仮想 CPU または実行資源。LWP は、利用できる CPU 資源をスケジュールクラスと優先順位に基づいて使用するように、カーネルによってスケジュールされる。LWP には、カーネルスレッドと LWP が含まれる。カーネルスレッドには、メモリーに常駐する情報 が入っている。また、LWP には、スワップ可能な情報が入っている | 
| アプリケーションスレッド | ユーザーのアドレス空間内で独立して実行できる別個のスタックを持った一連の命令。アプリケーションスレッドは LWP の最上部で多重化できる | 
1 つのプロセスは、複数の LWP と複数のアプリケーションスレッドで構成できます。カーネルはカーネルスレッド構造をスケジュールします。この構造は、SunOS 環境内をスケジュールする実体です。次の表に各種プロセス構造体を示します。
表 11–2 プロセス構造体| 構造体 | 説明 | 
|---|---|
| proc | プロセス全体に関連し、メインメモリーに常駐しなければならない情報が入っている | 
| kthread | 1 つの LWP に関連し、メインメモリーに常駐しなければならない情報が入っている | 
| user | スワップ可能な、プロセス単位の情報が入っている | 
| klwp | スワップ可能な、LWP プロセス単位の情報が入っている | 
次の図に、これらのプロセス構造体の関係を示します。

プロセス内のすべてのスレッドは、ほとんどのプロセス資源にアクセスできます。ほとんどすべてのプロセスの仮想メモリーが共有されます。あるスレッドが共有データを変更すると、その変更結果をプロセス内の他のスレッドが利用できます。
コンピュータの稼働中は、各種のシステム動作を追跡するためにオペレーティングシステムのカウンタが増分されます。
追跡されるシステム動作は次のとおりです。
中央処理装置 (CPU) の使用状況
バッファーの使用状況
ディスクとテープの入出力 (I/O) 動作
端末デバイスの動作
システムコールの動作
コンテキスト切替え
ファイルアクセス
待ち行列の動作
カーネルテーブル
プロセス間通信
ページング
空きメモリーとスワップ空間
カーネルメモリー割リ当て (KMA)
Oracle Solaris ソフトウェアには、システムパフォーマンスを追跡できるように複数のツールが提供されています。次のような監視ツールがあります。
表 11–3 パフォーマンス監視ツール| コマンド | 説明 | 詳細 | 
|---|---|---|
| cpustat と cputrack コマンド | CPU パフォーマンスカウンタを使用し、システムのパフォーマンスまたはプロセスを監視する | |
| netstat コマンドと nfsstat コマンド | ネットワークパフォーマンスについての情報を表示する | |
| ps コマンドと prstat コマンド | 活動中のコマンドについての情報を表示する | |
| sar コマンドと sadc コマンド | システム動作データを収集および報告する | |
| Sun Enterprise SyMON | Sun のエンタープライズレベルのシステム上で、システム動作データを収集する | 『Sun Enterprise SyMON 2.0.1 Software User's Guide』 | 
| swap コマンド | ユーザーのシステムで利用可能なスワップ領域についての情報を表示する | |
| vmstat コマンドと iostat コマンド | システム動作データの要約。仮想メモリーの統計、ディスクの使用率、CPU の動作など | |
| cputrack コマンドと cpustat コマンド | マイクロプロセッサが提供するハードウェアパフォーマンスカウンタ機能へのアクセスを支援する | cputrack(1) および cpustat(1M) のマニュアルページ | 
| kstat コマンドと mpstat コマンド | システムで使用可能なカーネル統計 (kstats) を検査し、コマンド行で指定された基準に一致する統計を報告する。mpstat コマンドは、プロセッサ統計を表形式で報告する | kstat(1M) および mpstat(1M) のマニュアルページ |