基本情報技術者試験 平成31年度 春期 午前 問15
アプリケーション性能悪化の調査、仮説検証、についての問題。
--------------------------
平成31年度 春期 午前 問15
アプリケーションの変更をしていないにもかかわらず、サーバのデータベース応答性能が悪化してきたので、表のような想定原因と、特定するための調査項目を検討した。調査項目 c として、適当なものはどれか。
ア 遅い処理の特定
イ 外的要因の変化の確認
ウ キャッシュメモリのヒット率の調査
エ データの格納状況の確認
--------------------------
解説
PowerPoint 丸出しの表。
性能が悪くなったときの調査はまず原因を想定(仮説を立てる)し、それが正しいかどうか判断するための調査をしていく(仮説検証)ことが大事。
ログを見るときも "とりあえず上から順番に" で闇雲に見るのではなく、目的を持って見ると効率が上がる。
何事にも "仮説検証" は役立つ。
本題に戻って、表の想定原因を順に見ていく。
想定原因を以下と仮定した場合、何を調べれば良いか。
・同一サーバに他のシステムを共存させたことによる負荷の増大
・接続クライアント数の増加による通信量の増加
調べるべきはアプリケーションそのものではない。
他のシステムをサーバに移行するような設定変更作業がここ最近なかったか、人員増加等で利用者の急増がなかったか、などの外的要因になる。
なので、調査項目 a に対応する選択肢はイになる。
想定原因を以下と仮定した場合、何を調べれば良いか。
・非定型検索による膨大な処理時間を要するSQL文の実行
非定型検索という言葉で難しくされているけど、重要なのはそこではなく "膨大な処理時間を要する" というところ。
膨大な処理時間を要する処理が CPU やメモリを占有しているせいで、システムの応答が悪化しているのではないかという仮説になる。
この仮説が正しいかを検証するには、多大な時間を要している処理(=遅い処理)が本当にいるかを調べればいい。
なので、調査項目 b に対応する選択肢はアになる。
想定原因を以下と仮定した場合、何を調べれば良いか。
・フラグメンテーションによるディスク I/O の増加
フラグメンテーション(断片化)とはディスク装置上にあるデータが飛び飛びの場所に保管されている良くない状況のこと。
飛び飛びの場所に保管されているので、それら全ての場所にアクセスしてデータを集めることになり、ディスク I/O の回数が増えて性能劣化につながる。
フラグメンテーションが起きているのでは、という仮説を検証するためにはデータの格納状況を調べれば良い。
なので、調査項目 c に対応する選択肢はエになる。
問題は調査項目 c として適当なものを聞いているので、答えは選択肢エ。
想定原因を以下と仮定した場合、何を調べれば良いか。
・データベースバッファの容量の不足
バッファが不足していると何が起きるかというと、アクセスしたいデータがバッファ上に存在する(キャッシュされている)確率が下がり、キャッシュのヒット率が低くなる。
バッファが不足しているのではないか、という仮説を検証するには本当にヒット率が低くなっているのかを調査すれば良い。
なので、調査項目 d に対応する選択肢はウになる。
前後の問題はこちら。