Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

Linux OSリソースのパフォーマンス分析(1) ~ OSリソースを取得してみよう

性能改善ノウハウを現場から直送! NTTデータのよりぬき『週刊まかせいのう』 第5回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

 今回から数回にわたり、サーバの「OSリソースのパフォーマンス分析方法」を取り上げます。対象OSは、Webサービスでよく利用されているLinuxとします。 OSリソースを分析する機会には、性能問題発生時をはじめ、今後の設備増強を検討するとき(サービス運用中の平常負荷に対してどの程度使用されているかを確認する)、システムのリプレース時(サイジングの基礎情報に使う)といったケースが考えられます。しかし、リソースの種類やメトリクスは多岐にわたるため、どの情報をどのように分析するのか迷うこともしばしばです。本稿では、我々「まかせいのう」チームが性能問題解析において取得している情報と、その情報を使った診断方法を紹介します。

目次

「まかせいのう」は、システム開発・運用の改善や設計を専門に行う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]: 詳細は次回お話ししますが、この「コア別」の情報というところが重要な意味を持ちます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 若山 勝吾(株式会社NTTデータ 「まかせいのう」チーム)(ワカヤマ ショウゴ)

    NTTデータの性能プロフェッショナルチーム「まかせいのう」の古参メンバ。12年前、大規模プロジェクトの性能課題に直面し、満身創痍になる日々を経験する。からくも性能改善できたときの喜びをきっかけに、現場の教訓とともに性能の道を歩むことを決意する。今では、50を超えるプロジェクトにて、お客様とともに性能...

バックナンバー

連載:性能改善ノウハウを現場から直送! NTTデータのよりぬき『週刊まかせいのう』

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5