1ランク上のサーバー管理者になるためには?

2009年8月28日(金)
馬場 俊彰

性能問題の解決手順

 次に、システムの応答性能が悪化した場合の解決手順について考えてみます。

 まずは状況把握です。普段から、ユーザー視点でシステムを監視していれば、応答性能の悪化がいつ起きているのかを的確にキャッチすることができます。

 応答性能の悪化は突発的なものなのか、特定のタイミングで起きているのか、周期性があるのか、アプリケーションと同時に発生しているものがあるかも、確認することができます。

 特定のタイミング(○時0分ちょうど、○時30分ちょうどなど)や、周期性が確認できる場合、バッチ処理が引き金になっている場合が多いです。バッチ処理が引き金になっている場合には、その処理の時間帯をずらす、その処理にかけるマシンパワーを変更するなどの調整を行うことになります(例: バックアップ圧縮処理のnice値を上げる、rsyncのファイル転送スピードを制限する)。

 突発的なものの場合、主な要因としてはハードウエアのトラブルか、もしくは外部からアクセスになります。例えばディスクI/Oが異常に重たい場合、ディスク障害が発生している可能性が考えられます。外部からのアクセスについては、まずはアタックかどうかを切り分けて、アタックであればそのアクセスを遮断することになります。

 アタックではないと思われる場合は、データの流れに沿って順番にアクセスを確認していくことになります。インターネットサービスの場合、おおむね下記の流れになります。

1)上流回線
2)ルータ/ファイアウォール
3)ロードバランサ(あれば)
4)WEBサーバー
5)APサーバー
6)DBサーバー
7)APサーバー……(1に戻る)

 それぞれの段階の入り口、出口で状況を確認し、どの段階で遅延が発生しているのかを確認します。

 どの段階で発生しているかわかったら、具体的にその段階のどの部分がボトルネックになっているのかを確認します。それぞれ計算処理やメモリのアロケーション、ディスクI/Oなどが発生していますので、Linuxの場合topやvmstatやfreeなどのコマンドを利用して確認を進めます。

 作業を進める上のポイントは以下の2つです。

 ・苦手な分野、詳しくない分野を避けない
 ・アプリのアーキテクチャまで含め、図でイメージできるように把握する

 サービスをうまく回すためにはインフラ~アプリまで手広く相手にする必要があります。問題解決のために、自分の守備範囲外の分野までどんどん口を出してチャレンジしていきましょう!

問題解決、回避のために情報を収集する

 守備範囲を広げるにあたり、情報収集は欠かせません。普段の情報収集も大切ですが、ここでは突発的に情報を収集する必要が出た時にどのように対応するのが良いか、おすすめの方法をご紹介します。

1)man、helpを見る
2)公式ドキュメントを見る
3)検索する

 まず真っ先にmanやhelpを見ましょう。 Windowsの場合もヘルプを見ましょう。意外と(!?)しっかり書いてあることもあります。

 次に公式ドキュメントを見ましょう。

 検索するのは最後です。 manや公式ドキュメントが内容の精査がある程度されていて、対象のバージョンも明確なのに対し、検索した結果は前提条件が不確かなケースが多いです。

 また、間違いに間違いを重ねたことで結果的に意図した結果が出るようなとんでもないケースもあります。

 検索はとても便利ですが、過信しないように注意しましょう。記事の内容が間違っていても、責任をとるのは自分自身です ;)

株式会社ハートビーツ
電気通信大学の学生時代に運用管理から業界入り。MSPベンチャーの立ち上げを手伝った後に、中堅SIerにて大手カード会社向けJavaプログラマーを経て現職。現在インフラエンジニアとして活動中。最近の興味はPythonプログラミングとクラウドの活用。大好物はカレー。静岡県の清水出身。http://heartbeats.jp/

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています