コンピュータやネットワークの性能を十分に引き出すことは、システム管理における重要な作業です。この章では、コンピュータシステムの性能の維持と管理に影響する要素について簡単に説明します。
この章の内容は次のとおりです。
この節では、Solaris 8 リリースのシステム性能を管理するための新しい機能について説明します。
新しいシステム監視ツール busstat では、システムのバスに関連したハードウェア性能カウンタにコマンド行からアクセスできます。このツールを使用するとシステム全体のバス性能統計をシステムハードウェアから直接収集できます。現在サポートされているハードウェアは Sbus デバイス、AC デバイス、PCI デバイスです。これらはすべて SPARC システムデバイスです。現在のところ IA デバイスはサポートされていません。
busstat コマンドでは、メモリーバンクの読み取りおよび書き込み数、クロックサイクル数、割り込み数、ストリーム DVMA 読み取りおよび書き込み転送数など、システム全体の統計を測定できます。
スーパーユーザーは、busstat を使用してこれらのカウンタを設定できます。しかし、他のユーザーは、スーパーユーザーが指定したカウンタしか読むことができません。
busstat コマンドでは、これらのハードウェア性能カウンタをサポートするシステムのデバイスだけが表示されます。サポートされるデバイスがシステムにないと、次のメッセージが表示されます。
busstat: No devices available in system. |
この監視ツールの使用方法の詳細は、busstat(1M) のマニュアルページを参照してください。
新しい cpustat コマンドと cputrack コマンドを使用して、システムやプロセスの性能を監視できます。
cpustat コマンドはシステム全体の CPU 情報を収集します。このコマンドはスーパーユーザーしか実行できません。cputrack コマンドは、アプリケーションやプロセスの情報を表示する truss コマンドに似ています。このコマンドは通常のユーザーでも実行できます。
開発者は、cpustat コマンドの作成に使用されているのと同じライブラリ API を使用すればこのような監視ツールを独自に作成できます。
詳細は、cpustat(1M) と cputrack(1) のマニュアルページを参照してください。
prstat コマンドは、システムの動作中のプロセス情報を表示します。コマンドでは、どのプロセス、UID、CPU ID、またはプロセッサセットの情報を表示するのかを指定できます。デフォルトで prstat は、すべてのプロセスの情報を CPU 使用率順にソートして表示します。
prstat -m を指定すると、プロセスの詳しいアカウント情報が表示されます。この情報には、プロセスがシステムトラップ、テキストページフォルト、データページフォルトに消費した時間、および CPU を待っていた時間 (CPU 応答時間ともいう) がパーセントで示されます。
詳細は、prstat(1M) のマニュアルページを参照してください。
Solaris 8 では rmalloc(9F) の代わりに kmem_alloc(9F) を使用してメッセージテキストを割り当てるため、Interprocess Communications (IPC) Message 機能が以前よりも拡張できるようになりました。
そのためこのリリースでは、これまで文書化されていた、rmalloc ベース実装の影響である msginfo_msgssz と msginfo_msgseg 調整可能パラメタは廃止になりました。
システム性能を監視する手順については、次の各章を参照してください。
コンピュータシステムの性能は、システムがその資源をどのように使用して割り当てるかによって左右されます。したがって、通常の条件下でどのように動作するかを知るために、システム性能を定期的に監視することが重要になります。期待できる性能についてよく把握し、問題が発生したときに分析できなければなりません。
性能に影響を及ぼすシステム資源は次のとおりです。
システム資源 |
説明 |
---|---|
中央処理デバイス (CPU) |
CPU は、命令をメモリーからフェッチして実行します。 |
入出力 (I/O) デバイス |
I/O デバイスは、コンピュータとの間で情報をやりとりします。この種のデバイスには、端末とキーボード、ディスクドライブ、プリンタなどがあります。 |
メモリー |
物理 (またはメイン) メモリーは、システム上のメモリー (RAM) の容量を示します。 |
コンピュータシステムの動作と性能に関する統計情報を表示するツールについては、第 36 章「性能の監視手順」を参照してください。
性能の問題は多岐にわたる要素が含まれるため、ここではすべてを詳しく説明できません。Sun では、性能調整コースやオンライン性能調整情報を提供しています。さらに、性能の改善とシステムやネットワークの調整についてさまざまな側面を網羅したいくつかの書籍が出版されています。
目的 |
参照サイト |
---|---|
性能調整に関するクラス | |
オンランの性能調整情報 | |
『Resource Management』など、Sun Microsystems Press が出版する性能調整に関する書籍の注文 |
システムやネットワークの性能調整については、次の書籍を参照してください。
『Resource Management』Adrian Cockcroft、Evert Hoogendoorn、Enrique Vargas、Tom Bialaski 共著、Sun Microsystems Press 発行、ISBN 0-13-025855-5
『Sun Performance and Tuning: SPARC and Solaris』, Adrian Cockcroft 著, SunMicrosystems Press/PRT Prentice Hall 発行, ISBN 0-13-149642-3
『System Performance Tuning』, Mike Loukides 著, O'Reilly & Associates, Inc. 発行
『Managing NFS and NIS』, Hal Stern 著, O'Reilly & Associates, Inc. 発行
表 34-1 に、プロセスに関連する用語を示します。
表 34-1 プロセスに関連する用語
用語 |
説明 |
---|---|
プロセス |
実行中のプログラムの実体 |
軽量プロセス (LWP) |
仮想 CPU または実行資源。LWP は、利用できる CPU 資源をスケジュールクラスと優先順位に基づいて使用するように、カーネルによってスケジュールされる。LWP には、メモリーに常駐する情報が入ったカーネルスレッドと、スワップ可能な情報が入った LWP が含まれる |
アプリケーションスレッド |
ユーザーのアドレス空間内で独立して実行できる別個のスタックを持った一連の命令。LWP の最上部で多重化できる |
1 つのプロセスは、複数の LWP と複数のアプリケーションスレッドで構成できます。カーネルはカーネルスレッド構造をスケジュールします。この構造は、SunOS 環境内をスケジュールする実体です。表 34-2 に各種プロセス構造体を示します。
表 34-2 プロセス構造体
構造体 |
説明 |
---|---|
proc |
プロセス全体に関連し、メインメモリーに常駐しなければならない情報が入っている |
kthread |
1 つの LWP に関連し、メインメモリーに常駐しなければならない情報が入っている |
user |
スワップ可能な、プロセス単位の情報が入っている |
klwp |
スワップ可能な、LWP プロセス単位の情報が入っている |
図 34-1 に、これらの構造体の関係を示します。
プロセス内のすべてのスレッドは、ほとんどのプロセス資源にアクセスできます。ほとんどすべてのプロセスの仮想メモリーが共有されます。あるスレッドが共有データを変更すると、その変更結果をプロセス内の他のスレッドが利用できます。
表 34-3 に、プロセスを管理するためのコマンドとその説明を示します。
表 34-3 プロセスを管理するためのコマンド
使用するコマンド |
目的 |
---|---|
ps(1)、 pgrep(1)、 prstat(1M) |
システム上のアクティブなプロセスの状態をチェックする。また、プロセスについての詳細な情報を表示する |
dispadmin(1M) |
デフォルトのスケジューリングポリシーをリストする |
priocntl(1) |
プロセスに優先順位クラスを割り当てて、プロセスの優先度を管理する |
nice(1) |
タイムシェアリングプロセスの優先度を変更する |
別の機能を使うと、プロセッサセットに関してプロセスグループを制御できます。プロセッサセットを使用するということは、プロセスグループを 1 つのプロセサだけではなく、プロセッサグループにバインドできるということです。システム管理者は、/usr/sbin/psrset コマンドを使用することにより、プロセッサセットの作成と管理を制御できます。詳細は、psrset(1M) のマニュアルページを参照してください。
プロセスを管理するためのコマンドの詳細は、第 35 章「プロセスの管理手順」を参照してください。
コンピュータの稼働中は、各種のシステム動作を追跡するためにオペレーティングシステムのカウンタが増分されます。追跡されるシステム動作は次のとおりです。
中央処理デバイス (CPU) の使用状況
バッファーの使用状況
ディスクとテープの入出力 (I/O) 動作
端末デバイスの動作
システムコールの動作
コンテキスト切替え
ファイルアクセス
待ち行列の動作
カーネルテーブル
プロセス間通信
ページング
空きメモリーとスワップ空間
カーネルメモリー割リ当て (KMA)
Solaris ソフトウェアには、システム性能を追跡できるように複数のツールが提供されています。次のような監視ツールがあります。
表 34-4 性能監視ツール
ツール |
目的 |
参照先 |
---|---|---|
sar ユーティリティと sadc ユーティリティ |
システム動作データを収集および報告する | |
ps コマンドと prstat コマンド |
活動中のコマンドについての情報を表示する | |
パフォーマンスメーター |
ネットワーク上のシステムの状態をグラフィカルに表示する | |
vmstat コマンドと iostat コマンド |
システム動作データの要約。仮想メモリーの統計、ディスクの使用率、CPU の動作など | |
swap コマンド |
ユーザーのシステムで利用可能なスワップ領域についての情報を表示する |
『Solaris のシステム管理 (第 1 巻)』の「追加スワップ空間の構成 (手順)」 |
netstat コマンドと nfsstat コマンド |
ネットワーク性能についての情報を表示する |
|
Sun Enterprise SyMON |
Sun EnterpriseTM レベルのシステム上で、システム動作データを収集する |
『Sun Enterprise SyMON 2.0.1 Software User's Guide』 |