1ランク上のサーバー管理者になるためには?
性能問題の解決手順
次に、システムの応答性能が悪化した場合の解決手順について考えてみます。
まずは状況把握です。普段から、ユーザー視点でシステムを監視していれば、応答性能の悪化がいつ起きているのかを的確にキャッチすることができます。
応答性能の悪化は突発的なものなのか、特定のタイミングで起きているのか、周期性があるのか、アプリケーションと同時に発生しているものがあるかも、確認することができます。
特定のタイミング(○時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や公式ドキュメントが内容の精査がある程度されていて、対象のバージョンも明確なのに対し、検索した結果は前提条件が不確かなケースが多いです。
また、間違いに間違いを重ねたことで結果的に意図した結果が出るようなとんでもないケースもあります。
検索はとても便利ですが、過信しないように注意しましょう。記事の内容が間違っていても、責任をとるのは自分自身です ;)
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Linuxの基礎コマンド群「Coreutils」を使いこなそう
- Canonical、Windows 10でUbuntuのbashシェルを実行する「Ubuntu on Windows」を発表
- Debian開発者からユーザーまで集合 Mini Debian Conference 2016 Japanが開催
- AIがどのようにIT運用とDevOpsを変えるのか(1)
- メルカリファンド等から4億円調達したジラフに、優秀な人材と未経験者が集まる理由|株式会社ジラフ麻生氏・佐々木氏
- サーバー管理者の目/管理・監視・アーキテクト
- 「IoTセキュリティ」に関する問題への対策
- 新搭載のGRUB 2とCentOS 7でのレスキューモード
- Azure Data Explorerができることを理解する
- RHCE合格指南- 後編