-shared-img-thumb-SAYA160312540I9A3588_TP_V

せっかく業務システムを導入したのに、「検索を1回実行するたびに、何秒も待たされる」「使っているうちに、みるみる遅くなった」などと感じることはないでしょうか。遅いシステムを使い続けるのは、ストレスがたまります。また、システムが遅い原因が「システム設計の不備」であったとしたらシステム開発会社に改善を依頼すべきです。

ここでは、使っているシステムのパフォーマンスが悪いときの対処法についてお話しします。ここで述べる内容を理解し実践することにより、システムのパフォーマンスが低下したときにチェックする項目について学べるとともに、システムのパフォーマンス改善への道筋を立てることができるようになります。

「システムが遅い」と感じたときにチェックする項目

システム開発会社にパフォーマンスの改善を依頼するとき、漠然と「システムが遅い」とクレームを言っても相手には伝わらないものです。もしSE(システムエンジニア)が現場に来れるのであれば、SEに現場に立ち会ってもらいます。システムが遅いという現場の状況を把握してもらうのが、解決への近道です。

しかし、SEがすぐに現場に来れない場合もあるでしょう。その場合、現場の状況をなるべく詳細にシステム開発会社に伝えるようにします。伝えるべき内容は、「どのような操作をして遅くなるのか」「再現性はどの程度か」「ターンアラウンドタイムはどのくらいか」「レスポンスタイムはどのくらいか」といったものです。

ターンアラウンドタイム」は、操作を実行してから結果が表示し終わるまでの時間のことです。「レスポンスタイム」は、操作を実行してから結果が表示され始めるまでの時間のことです。

このような情報を準備するのには少し手間がかかりますが、結果的に早く問題を解決できるので、ぜひ実行しましょう。

具体的な改善目標の数値を設定する

システムのパフォーマンス改善作業は、時間とコストをかけることでどこまでも追及を進めていくことができます。ある意味、きりがない作業になりがちです。きりがない作業をずるずると引きずるのは、システムエンジニア/ユーザーの双方にとって作業負担が増えて良くありません。

そこで、「パフォーマンスの改善目標」を立てることが重要になります。すなわち、改善の目標数値を定めその目標を達成したら作業を終了するのです。

例えば、当日データの検索表示が遅いという問題に対して「当日データの検索を実行してから、平均3秒以内に全件の表示が完了すること」という目標数値を設定します。

そのようにすることで、改善目標が明らかになり技術的な改善ポイントが明確になるため処置がしやすくなります。

パフォーマンス低下の主たる原因を見つけ出す

業務システムのパフォーマンス低下は、たいていの場合、1つか2つの「主たる原因」によって起こります。「複数の原因が、少しずつ複雑に絡み合って発生する」ということはまずありません。そこで、主たる原因を見つけ出してその改善を行えばシステムのパフォーマンスも改善されることになります。

パフォーマンス低下の原因としてどのようなものがあるかというと、次のようなものが考えられます。

  1. データの増加に伴い、データベースへのアクセスが遅くなっている→データベースエンジニアに依頼する
  2. 業務アプリが処理効率の悪いプログラムになっている→アプリ開発エンジニアに依頼する

「1」のデータベースアクセスについては、パフォーマンスのチューニングを行うことができます。パフォーマンスチューニングは、「検索のときにインデックスを効かせるようにする」(データ作成更新のときに、検索を高速化するための索引情報を張ること)「検索時に行っていた集計計算の処理を、データ発生時に行うようにする」といった方法があります。

「2」のプログラムの処理効率については、プログラム構造を見直したり使っているミドルウェア(アプリ開発用に特定の機能を持つパッケージソフト)を変えたりしてパフォーマンス低下の原因を取り除きます。

ここまで述べたように、システムのパフォーマンスが低下したときには「現場の状況を正確に把握すること」「改善目標の数値を設定すること」「主たる原因を見つけ出すこと」が重要になってきます。主たる原因の抽出は、データベースエンジニアやアプリ開発エンジニアに依頼します。

パフォーマンス改善作業は、システム管理者とエンジニアの共同で行うことが多いです。そのような場合、システム管理者には「エンジニアの専門性をリードして問題解決に当たる」という姿勢も大切になりますのでぜひ覚えておいてください。