matsuok’s diary

あくまでも個人的意見であり感想です

サイジング


商業柄、システムのサイジングを考えることが多い。
コンピュータシステムにおいては、ピークサイジングということで最大使用時の必要なリソースを考慮して決定する。企業における業務処理においては月末や期末処理などであるが、OAシステムの場合、勤務体系に依存するケースが多い。通常、ログインなどが集中する時間帯がもっともシステム資源が使用されるので、朝の出勤時や昼休み明けの業務開始時などである。通常システムは固定設備なので、使用量ではなくこのピーク時のために投資額が決定されることになる。電気代のように使わないときに消燈するなどの節電方式では、コンピュータ投資の低減にはそれほど効果が無いことになる。

電車の運転―運転士が語る鉄道のしくみ (中公新書)

電車の運転―運転士が語る鉄道のしくみ (中公新書)

上記の本を読んだとき、印象的だったのは、鉄道の変電所などの地上設備は、最大の電気容量の使用量で決定することになるということだ。最大の電気を使用するのは、架線が停電したあとに再送電したときに、全列車がいっせいに運転を再開した場合だ。電車は起動時にもっとも出力する。一斉発車を回避すれば、最大値を下げることができ、地上設備を抑えることが可能になる。そのために、各列車は順次発車していくそうだ。どうりで、事故などの回復時に駅で止められているときになかなか発車しないわけだ。

ITシステムで、想定外のピークは障害発生時の再起動である。
以前、とあるシステムで店舗システムの障害時に業務中に再起動するはめになったが、カウンタで待ち構えていた端末から一斉にログインなどが集中し、通信で言う輻輳状態のようになったことがある。
電話など、災害発生など、安否確認などで通話が一挙に集中する場合があるが、緊急用の通話を確保するために、一般電話は通話規制がされる。電話がかかりにくくなるのは、混んでいるというよりも、込む前に規制を掛けているようだ。

むかしからのメインフレームなどでのトランザクションモニター(OLTP)などでは、基本的にその機能を持っていた。今に比べ、圧倒的に低いシステム能力で大量のトランザクションを行うためには必須な機能だった。システムが同時に処理できるトランザクション数を固定にし、到着するトランザクション待ち行列にして順次処理していく機能である。

Webサーバでも、同意接続数を制限する機能があるが、TPモニターとの違いは待ち行列というよりも、受け付けないというのが基本である。不特定な予測できないトランザクション特性であるインターネットでは待ち行列が想定できないだからであろう。

企業内のシステム、いわゆるイントラのシステムでもWebベースのシステムは仕組み的に、インターネット系とおなじになってしまうが、更新トランザクションの比率が圧倒的に多いので、やはり、トランザクションモニター相当の機能が必要になるが、それは、アプリケーションサーバと呼ばれるものがその機能を提供している。J2EEは、それを包含している。

常に要求が満たされるようにするためには、多大な用意、コストを必要とする。ピーク時に行列を作れるか否かが、破綻を防ぎ、結果として資源の有効活用になる。
いまの原油高、食糧価格の高騰などは、この規制が不十分なために発生していないだろうか。供給不測、不安により価格が上がるのは止むを得ないが、実体以上に高騰している感が拭いきれない。