性能問題の解決手順

性能問題の解決手順

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

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

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

 特定のタイミング(○時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や公式ドキュメントが内容の精査がある程度されていて、対象のバージョンも明確なのに対し、検索した結果は前提条件が不確かなケースが多いです。

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

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

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30