「まかせいのう」は、システム開発・運用の改善や設計を専門に行うNTTデータのコンサルタントチームです。
OSリソースとは
最初に、サーバのOSリソースにはどのような種類があるのかを整理しておきましょう。OSリソースは大きく以下の4つに分類できます。
- CPU
- メモリ
- ストレージ
- ネットワーク
「CPU」と「メモリ」はイメージしやすいと思います。これらはサーバマシンが持っているリソースです。個人用PCを買う際にも、性能(パフォーマンス)を判断するスペックとして使いますね。
「ストレージ」は、サーバ内蔵の場合もあれば、専用のストレージ製品を外付けにして使う場合もあります[1]。多くの場合、ハードディスクが使われますが、最近はより高性能なSSDなどフラッシュストレージの利用も増えてきました。「ネットワーク」は、LANケーブルのようにサーバやストレージなど機器を接続しているもので、帯域の太さが重要になります。
これらはいずれも物理的な実体を持つハードウェア(HW)なので、OSリソースのことを「物理リソース」や「HWリソース」と呼ばれることもあります。この分類はWindowsやLinux以外のUNIX系OSであっても変わりません。また、リソース使用状況を取得するのにHWを操作する必要がない(OSコマンドで取得できる)点も共通です[2]。
注
[1]: DBサーバなど大容量で高性能なストレージがほしい場合に多い。
[2]: 取得するためのコマンドはOSによって異なりますが。
OSリソースを取得してみよう
それでは次に、リソースを取得するコマンドとその出力結果を見てみましょう。なお、以下では「sysstat」というパッケージのコマンドを使用します。実際に試したり使ったりするには、sysstatパッケージをインストールしてください。 また、本稿の動作確認環境は、Red Hat系OSにおけるsysstat9.0.4です。パッケージのバージョンなどが異なると、出力結果が異なったりコマンドの変更が必要になったりする場合があります。
mpstat - CPU使用率を出力
実行コマンド
mpstat -P ALL 10 | awk '{print(strftime("%Y/%m/%d %H:%M:%S"),$0);fflush();}'
実行結果テキスト表示
2015/10/26 13:13:23 Linux 2.6.32-358.el6.x86_64 (localhost.localdomain) 2015年10月26日 _x86_64_ (2 CPU) 2015/10/26 13:13:33 2015/10/26 13:13:33 13時13分23秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 2015/10/26 13:13:33 13時13分33秒 all 0.10 0.00 0.15 0.25 0.00 0.00 0.00 0.00 99.50 2015/10/26 13:13:33 13時13分33秒 0 0.00 0.00 0.10 0.40 0.00 0.00 0.00 0.00 99.50 2015/10/26 13:13:33 13時13分33秒 1 0.10 0.00 0.20 0.10 0.00 0.00 0.00 0.00 99.60 2015/10/26 13:13:43 2015/10/26 13:13:43 13時13分33秒 CPU %usr %nice %sys %iowait %irq %soft %steal %guest %idle 2015/10/26 13:13:43 13時13分43秒 all 0.05 0.00 0.10 0.10 0.05 0.00 0.00 0.00 99.70 2015/10/26 13:13:43 13時13分43秒 0 0.10 0.00 0.10 0.20 0.00 0.00 0.00 0.00 99.60 2015/10/26 13:13:43 13時13分43秒 1 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.00 99.80
mpstat
はCPU使用率の情報を出力します。一般的に一回の実行で複数行が出力されますが、これはコア別の情報が出力されるためです。「all」は全コアの平均で、0から始まる連番がCPUコアの識別子です[3]。
注
[3]: 詳細は次回お話ししますが、この「コア別」の情報というところが重要な意味を持ちます。