Solaris のシステム管理 (第 2 巻)

第 34 章 システム性能の概要

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

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

システム性能の管理に関する新機能

この節では、Solaris 8 リリースのシステム性能を管理するための新しい機能について説明します。

SPARC: busstat

新しいシステム監視ツール busstat では、システムのバスに関連したハードウェア性能カウンタにコマンド行からアクセスできます。このツールを使用するとシステム全体のバス性能統計をシステムハードウェアから直接収集できます。現在サポートされているハードウェアは Sbus デバイス、AC デバイス、PCI デバイスです。これらはすべて SPARC システムデバイスです。現在のところ IA デバイスはサポートされていません。

busstat コマンドでは、メモリーバンクの読み取りおよび書き込み数、クロックサイクル数、割り込み数、ストリーム DVMA 読み取りおよび書き込み転送数など、システム全体の統計を測定できます。

スーパーユーザーは、busstat を使用してこれらのカウンタを設定できます。しかし、他のユーザーは、スーパーユーザーが指定したカウンタしか読むことができません。

busstat コマンドでは、これらのハードウェア性能カウンタをサポートするシステムのデバイスだけが表示されます。サポートされるデバイスがシステムにないと、次のメッセージが表示されます。


busstat: No devices available in system. 

この監視ツールの使用方法の詳細は、busstat(1M) のマニュアルページを参照してください。

cpustat コマンドと cputrack コマンド

新しい cpustat コマンドと cputrack コマンドを使用して、システムやプロセスの性能を監視できます。

cpustat コマンドはシステム全体の CPU 情報を収集します。このコマンドはスーパーユーザーしか実行できません。cputrack コマンドは、アプリケーションやプロセスの情報を表示する truss コマンドに似ています。このコマンドは通常のユーザーでも実行できます。

開発者は、cpustat コマンドの作成に使用されているのと同じライブラリ API を使用すればこのような監視ツールを独自に作成できます。

詳細は、cpustat(1M) と cputrack(1) のマニュアルページを参照してください。

prstat

prstat コマンドは、システムの動作中のプロセス情報を表示します。コマンドでは、どのプロセス、UID、CPU ID、またはプロセッサセットの情報を表示するのかを指定できます。デフォルトで prstat は、すべてのプロセスの情報を CPU 使用率順にソートして表示します。

prstat -m を指定すると、プロセスの詳しいアカウント情報が表示されます。この情報には、プロセスがシステムトラップ、テキストページフォルト、データページフォルトに消費した時間、および CPU を待っていた時間 (CPU 応答時間ともいう) がパーセントで示されます。

詳細は、prstat(1M) のマニュアルページを参照してください。

廃止された Interprocess Communications パラメータ

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 では、性能調整コースやオンライン性能調整情報を提供しています。さらに、性能の改善とシステムやネットワークの調整についてさまざまな側面を網羅したいくつかの書籍が出版されています。

目的 

参照サイト 

性能調整に関するクラス 

http://suned.sun.com

オンランの性能調整情報 

http://www.sun.com/sun-on-net/performance

『Resource Management』など、Sun Microsystems Press が出版する性能調整に関する書籍の注文

http://www.sun.com/books/blueprints.series.html

システムやネットワークの性能調整については、次の書籍を参照してください。

プロセスとシステムの性能

表 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-1 プロセス構造体

Graphic

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

プロセス管理コマンド

表 34-3 に、プロセスを管理するためのコマンドとその説明を示します。

表 34-3 プロセスを管理するためのコマンド

使用するコマンド 

目的 

ps(1)、 pgrep(1)、 prstat(1M)

システム上のアクティブなプロセスの状態をチェックする。また、プロセスについての詳細な情報を表示する 

dispadmin(1M)

デフォルトのスケジューリングポリシーをリストする 

priocntl(1)

プロセスに優先順位クラスを割り当てて、プロセスの優先度を管理する 

nice(1)

タイムシェアリングプロセスの優先度を変更する 

別の機能を使うと、プロセッサセットに関してプロセスグループを制御できます。プロセッサセットを使用するということは、プロセスグループを 1 つのプロセサだけではなく、プロセッサグループにバインドできるということです。システム管理者は、/usr/sbin/psrset コマンドを使用することにより、プロセッサセットの作成と管理を制御できます。詳細は、psrset(1M) のマニュアルページを参照してください。

プロセスを管理するためのコマンドの詳細は、第 35 章「プロセスの管理手順」を参照してください。

性能の監視

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

監視ツール

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

表 34-4 性能監視ツール

ツール 

目的 

参照先 

sar ユーティリティと sadc ユーティリティ

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

第 36 章「性能の監視手順」

ps コマンドと prstat コマンド

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

第 35 章「プロセスの管理手順」

パフォーマンスメーター 

ネットワーク上のシステムの状態をグラフィカルに表示する 

第 36 章「性能の監視手順」

vmstat コマンドと iostat コマンド

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

第 36 章「性能の監視手順」

swap コマンド

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

『Solaris のシステム管理 (第 1 巻)』の「追加スワップ空間の構成 (手順)」

netstat コマンドと nfsstat コマンド

ネットワーク性能についての情報を表示する 

 

Sun Enterprise SyMON 

Sun EnterpriseTM レベルのシステム上で、システム動作データを収集する

『Sun Enterprise SyMON 2.0.1 Software User's Guide』