わざと人溜まりができるような"ボトルネック"を街の随所に形成して防御をかためた江戸時代の宿場町・妻籠(長野県木曽郡)

中山道の宿場町・妻籠(つまご)は、江戸時代の面影を残す山間の街である。中央の通りが中山道であるが、大きく道が折れる枡形(ますがた)の跡がある。当時の宿場は、幕府の防塞施設としての意味合いがあり、敵の容易な直進ができなくなるよう、道を直角に折り曲げたクランク状の構造を持っている。この形状はいろいろな城郭にもあり、人為的に"ボトルネック"(ビンの口のように狭くなって詰まりやすい部分)を形成し、攻め来る大軍のスピードを殺し、敵が一斉に押し寄せられないような機能を実現している。

現在は、経営にスピードが求められる。経営判断を先送りしてまごまごしていたら、市場からも株主からも置いてきぼりとなってしまう。また同様に、ITでもスピードが必要な時代である。システム開発は一朝一夕にできるものではなく、かつマンパワーを要するものだから、その効率とスピードを上げることによって開発投資も減るし、システム化による効果も早く刈り取ることができる。いずれにせよ、速いに越したことはない

情報システムにおいて"性能"というと、"ユーザーに対する応答時間(レスポンス)"を思い起こすことが多い。同じ処理結果が出ても、自分の思考を妨げられるほど待たされるのは誰だって我慢ができない。こうして現代人は、無意識のうちに「スピード勝負」の世界に生きている。

では、具体的に情報システムにおいてユーザーに対する応答時間、つまりシステムの性能向上をどうやったら実現することができるのであろうか。「それは簡単、性能を阻害する要因を見つけて、それをなくせばよいのだ」と思う人が多いに違いない。本質的にはそうだが、実際はそれほど単純なロジックでは片付かない。今回は性能についてのポイントを示す。

まず大前提として、スピードを上げる前に、それなりに品質が確保できていることが必要である。

たとえば経営に置き換えてみると、スピード経営とは、最小限の情報で的確にかつすばやく判断するということであり、時間がないからいい加減に判断するということではない。情報システムでは、いくら性能が良くなっても、ログを取るのを止めてしまったとか、バックアップもなしにしたなど、やるべきことをやっていないというのではむろん本末転倒である。まず一定の品質を保った上でのチューニングであるべきだ。

2つめに、処理プロセス(段取り)を明確にすることである。情報システムの性能を上げるためにはどんな処理がどこでされているのかを把握しなければならない。つまり処理プロセスの因数分解をする。たとえば、データ読み込み、ネットワーク経由のデータ転送、バッファへの書き込みなどに分けて実態をつかむ。そしてそこが期待値に比べてどうなのかを明確にし、ボトルネックを発見する。つまり、処理プロセスを明確にすることによって、改善点を特定化したり、並列処理などによる段取りの変更で、どのくらい性能改善が図れるかをあらかじめ知ることができる。

次に、ボトルネックを見つけたら、それを解消する動作を"繰り返す"ことが大切だ。処理プロセスが見えたら、その中で性能向上に寄与するものを探して、対応策を立てて実行してみる。そうすると次のボトルネックが出てくることが往々にしてある。

たとえばパソコンで言うと、CPUを速くしても、メモリのデータ転送速度がネックでCPU性能が出なかったということもある。メモリの改善を行っても、それまでは問題にならなかった周辺装置のインタフェースが足を引っ張ることもある。

情報システムの業務においても同様である。開発を"速く"するために、開発ツールに金をかけただけではうまくいかない。ツール導入で一部効果を発揮しても、今度は次のところにボトルネックが移るだけである。たとえば、改善点として、開発手順の見直し、その次に要員の教育など、対策は連鎖的に続く。これを途中でやめると、効果も半減する。つまり、ボトルネックを解決したら、次のボトルネックが顕在化することが多いので、継続的に改善を繰り返すことが重要である。

最後に、コストに見合った性能対策を選択することだ。当然のことだが、性能が出ないまま使っているのは無駄であるし、逆にボトルネックをそのままにして他を改善しても効果がないから投資の無駄である。しかし、金をかけすぎても仕方がない。

絶えずチューンアップをしている車好きの人がECU(エンジンの制御コンピュータ)の変更やマフラー交換、さまざまなチューニングを行ったが、結果的に全体のバランスを崩してしまい、性能が思ったより出なかったという話をしばしば聞く。そういう人は「これだけ金をかけたんだから、性能は出ているはずなんだ」と自分に言い聞かせることで安心する。こういう、自虐的な"プラシーボ効果"を狙って投資しても意味がない。

ユーザーに対する応答時間の性能向上のポイントについて述べたが、これは他の企業活動の"性能アップ"でもまったく同じである。経営品質の維持を大前提にして、業務プロセスを明確にし、ボトルネックを見つけ、改善活動を繰り返すことがポイントになるのだ。

妻籠から西にずっと行ったところになるが、中国自動車道の神戸北 - 宝塚の区間は大渋滞多発地点として有名な場所である。ここは東西の高速道路がすべて流れ込んでくるところであり、非常に交通量が多い上、勾配のある坂道が長く続き、見通しの悪い宝塚のトンネルと重なって大渋滞が頻繁に発生する。ここは明らかに高速道路のボトルネックである。

これに関しては、ゲームの"SimCity"のように新たに道路を作ればよいというものではなかろう。地球のことを考えると、単なる改善活動だけではなく、根本的に自分たちのライフスタイルを見直すことが必要なのかもしれない。ひょっとしたら、情報システムに関しても、ちょっとくらい我慢するようなライフスタイルの見直しが必要かもしれない。

場当たり的な対症療法を繰り返していても、本質的な問題は解決せず、全体の品質向上もむずかしいのは、ITに限らない。トラブルに遭遇したときは、本連載で何度も繰り返してきた"全体を俯瞰する態度"で、バランスのとれた解決策を探る心がけを!

執筆者プロフィール

中村 誠 NAKAMURA Makoto
日立コンサルティング シニアディレクター。情報システム部門での開発/運用の実務経験、データベース、ネットワーク、PC等の導入、会社全体の情報システム基盤設計経験を通じたITに関するコンサルティングが得意分野。