Solaris のシステム管理 (上級編)

第 11 章 システムパフォーマンスの管理 (概要)

コンピュータやネットワークのパフォーマンスを十分に引き出すことは、システム管理における重要な作業です。この章では、コンピュータシステムのパフォーマンスの管理に影響する要素について簡単に説明します。

この章の内容は以下のとおりです。

システムパフォーマンスの管理に関する新機能

この節では、Oracle Solaris でシステムパフォーマンスを管理する際の新機能、または機能の変更について説明します。Oracle Solaris リリースの新機能と説明の完全な一覧については、『Oracle Solaris 10 9/10 の新機能』を参照してください。

強化された pfiles ツール

Oracle Solaris 10: /proc ファイルシステムは、/proc/pic/path ディレクトリのファイル名情報を格納できるよう強化されました。この情報は、pfiles がプロセス中の各ファイル名を表示するために使います。この変更によって、プロセスの動作の新しい洞察が可能になります。詳細は、「プロセスに関する情報を表示する方法」と、proc(1) のマニュアルページを参照してください。

CPU パフォーマンスカウンタ

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) のマニュアルページを参照してください。

システムパフォーマンスに関する情報の参照箇所

作業 

詳細 

プロセスの管理 

第 12 章システムプロセスの管理 (手順)

システムのパフォーマンスの監視 

第 13 章システムパフォーマンスの監視 (手順)

調整可能パラメータの変更 

『Oracle Solaris カーネルのチューンアップ・リファレンスマニュアル』

システムパフォーマンス作業の管理 

『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 2 章「プロジェクトとタスク (概要)」

FX および FS スケジューラを使用したプロセス管理 

『Oracle Solaris のシステム管理 (Oracle Solaris コンテナ : 資源管理と Oracle Solaris ゾーン)』の第 8 章「公平配分スケジューラ (概要)」

システムパフォーマンスおよびシステム資源

コンピュータシステムのパフォーマンスは、システムが資源をどのように使用し、割り当てるかによって変わります。したがって、通常の条件下でどのように動作するかを知るために、システムパフォーマンスを定期的に監視する必要があります。期待できるパフォーマンスについてよく把握し、問題が発生したときに分析できなければなりません。

パフォーマンスに影響を及ぼすシステム資源は次のとおりです。

システム資源 

説明 

中央処理装置 (CPU) 

CPU は、命令をメモリーからフェッチして実行します。  

入出力 (I/O) デバイス 

I/O デバイスは、コンピュータとの間で情報をやりとりします。この種のデバイスには、端末とキーボード、ディスクドライブ、プリンタなどがあります。  

メモリー 

物理 (またはメイン) メモリーは、システム上のランダムアクセスメモリー (RAM) の容量を示します。  

第 13 章システムパフォーマンスの監視 (手順) は、システムの動作とパフォーマンスに関する統計を表示するツールについて説明します。

プロセスとシステムのパフォーマンス

次の表に、プロセスに関連する用語を示します。

表 11–1 プロセスに関連する用語

用語 

説明 

プロセス  

システムの動作またはジョブ。システムをブートしてコマンドを実行するか、アプリケーションを起動するたびに、システムは 1 つ以上のプロセスをアクティブにする 

軽量プロセス (LWP)  

仮想 CPU または実行資源。LWP は、利用できる CPU 資源をスケジュールクラスと優先順位に基づいて使用するように、カーネルによってスケジュールされる。LWP には、カーネルスレッドと LWP が含まれる。カーネルスレッドには、メモリーに常駐する情報 が入っている。また、LWP には、スワップ可能な情報が入っている 

アプリケーションスレッド  

ユーザーのアドレス空間内で独立して実行できる別個のスタックを持った一連の命令。アプリケーションスレッドは LWP の最上部で多重化できる 

1 つのプロセスは、複数の LWP と複数のアプリケーションスレッドで構成できます。カーネルはカーネルスレッド構造をスケジュールします。この構造は、SunOS 環境内をスケジュールする実体です。次の表に各種プロセス構造体を示します。

表 11–2 プロセス構造体

構造体 

説明 

proc

プロセス全体に関連し、メインメモリーに常駐しなければならない情報が入っている 

kthread

1 つの LWP に関連し、メインメモリーに常駐しなければならない情報が入っている 

user

スワップ可能な、プロセス単位の情報が入っている 

klwp

スワップ可能な、LWP プロセス単位の情報が入っている 

次の図に、これらのプロセス構造体の関係を示します。

図 11–1 プロセス構造体の関係

この図については前の表で説明しています。

プロセス内のすべてのスレッドは、ほとんどのプロセス資源にアクセスできます。ほとんどすべてのプロセスの仮想メモリーが共有されます。あるスレッドが共有データを変更すると、その変更結果をプロセス内の他のスレッドが利用できます。

システムパフォーマンスの監視

コンピュータの稼働中は、各種のシステム動作を追跡するためにオペレーティングシステムのカウンタが増分されます。

追跡されるシステム動作は次のとおりです。

監視ツール

Oracle Solaris ソフトウェアには、システムパフォーマンスを追跡できるように複数のツールが提供されています。次のような監視ツールがあります。

表 11–3 パフォーマンス監視ツール

コマンド 

説明 

詳細 

cpustatcputrack コマンド

CPU パフォーマンスカウンタを使用し、システムのパフォーマンスまたはプロセスを監視する 

cpustat(1M) および cputrack(1)

netstat コマンドと nfsstat コマンド

ネットワークパフォーマンスについての情報を表示する 

netstat(1M) および nfsstat(1M)

ps コマンドと prstat コマンド

活動中のコマンドについての情報を表示する 

第 12 章システムプロセスの管理 (手順)

sar コマンドと sadc コマンド

システム動作データを収集および報告する 

第 13 章システムパフォーマンスの監視 (手順)

Sun Enterprise SyMON 

Sun のエンタープライズレベルのシステム上で、システム動作データを収集する 

Sun Enterprise SyMON 2.0.1 Software User's Guide

swap コマンド

ユーザーのシステムで利用可能なスワップ領域についての情報を表示する 

『Solaris のシステム管理 (デバイスとファイルシステム)』の第 20 章「追加スワップ空間の構成 (手順)」

vmstat コマンドと iostat コマンド

システム動作データの要約。仮想メモリーの統計、ディスクの使用率、CPU の動作など 

第 13 章システムパフォーマンスの監視 (手順)

cputrack コマンドと cpustat コマンド

マイクロプロセッサが提供するハードウェアパフォーマンスカウンタ機能へのアクセスを支援する 

cputrack(1) および cpustat(1M) のマニュアルページ

kstat コマンドと mpstat コマンド

システムで使用可能なカーネル統計 (kstats) を検査し、コマンド行で指定された基準に一致する統計を報告する。mpstat コマンドは、プロセッサ統計を表形式で報告する

kstat(1M) および mpstat(1M) のマニュアルページ