渋滞学とコンピュータシステムの遅延の関係 データベースコンサルタントのノウハウちょい見せ

Oracle RDBMSなどのオラクル製品や各種インフラ技術(OS、ストレージ、ネットワーク)といった話題を取り上げます。著者は小田圭二、「門外不出のOracle現場ワザ」、「絵で見てわかるOracleの仕組み」、「絵で見てわかるOS/ストレージ/ネットワーク」などの著作もあります

ホーム > スポンサー広告 > 渋滞学とコンピュータシステムの遅延の関係ホーム > アーキテクチャ > 渋滞学とコンピュータシステムの遅延の関係

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
[ --/--/-- --:-- ] スポンサー広告 | トラックバック(-) | コメント(-)

渋滞学とコンピュータシステムの遅延の関係

これから数回に渡って、渋滞の話と、コンピュータシステムの遅延、製造業で有名なTOC、TOCのプロマネへ適用したCCPMなどなど、”行列”に関してブログで書いていきたいと思います。

きっかけは『「渋滞」の先頭は何をしているのか?』を読んで、システムの性能分析と似てるじゃん!と思ったことです。

まずはこの本から少し紹介します。この本によると、渋滞には3種類あるそうです。1つはボトルネック。もう1つは自然渋滞。最後の1つはだんご渋滞だそうです

●渋滞その1
ボトルネック型はコンピュータ屋には、分かりやすいですよね。ある箇所の限界を越えて流量が発生した場合に発生する、どうしても避けられない渋滞です。

●渋滞その2
自然渋滞は、特に明確な理由(例:事故渋滞)もないのに、渋滞しているケースで起きるそうです。ぎりぎりの混雑度で走行している中、ちょっとした坂道で連鎖的にブレーキを踏んだ結果、後ろの車が止まってしまうような渋滞です。この本によると、このような事態を避けるため、40mより短い車間距離にしないよう、皆が意識することを勧めています。そうすれば自然渋滞は防げるのだそうです。仮に誰かがブレーキを踏んでも、余裕があるため後ろの車はあまりブレーキを踏まず、ブレーキの連鎖(悪循環)が起きず、渋滞にならないという理由です。

●渋滞その3
だんご型は、電車やエレベータで見られる渋滞です。ある電車が遅れると、その結果、その先の駅で乗りたい人の数が増え、ますますその電車が遅れるという悪循環のことです。エレベータでも良く見られますが、ほぼ同じタイミングで多くのエレベータが到着するのは、この現象です。なお、電車が「後ろの電車が遅れているため、間隔調整をします」と前の電車が待つのは、この現象を避けるためだそうです。

だんご型の渋滞では、悪化をさけるため、拡大しないよう負の連鎖を早めに断ち切るべきなのだそうです。

●渋滞とコンピュータシステムの類似点

P53の渋滞の図を見て、「おっ、システムの遅延の図に似ている」と思いました。P53の要点をまとめた図と、私がシステムの遅延で見るグラフの図を載せます(クリックすると拡大)。似てますよね?

渋滞の図
渋滞の図

システム遅延の図
システム遅延の図

●疑問1:なぜ限界を超えると、スループットがちょっと落ち込むのか?

これは待ち行列がシステムの各所で発生するためです(のはずです)。するする流れているときは、1つのリクエストを処理するコストは変わりませんが、待ち行列ができてしまうと行列のメンテナンスや行列のスキャンが増えるなどして、1つのリクエストを処理するコストが増えてしまうのです(私の経験上)。そのため、よくよく見ると、渋滞の図と同じように、限界を超えると、処理量が落ち込む様子が見られます。

●疑問2:なぜ渋滞ほど、流量が落ち込まないのか

システムの場合、密度がどんどん上がるということはなく、どこかに待ち行列で待たされます。そのため、限界を超えると、スループットはフラットになるのが普通です。この点については実際の渋滞とはちょっと違うかなと思います。

●ちょっと役立つTIPS

多くのエンジニアがボトルネック型の遅延は理解していると思います。しかし、瞬間的な性能劣化に、この渋滞学が使えると私は思います。コンピュータシステムは、実は瞬間的に待ち行列を作り、また待ち行列が解消するという動きをしていることがあります。なぜかレスポンスが悪いなと思ったら、この”瞬間的な遅延”を疑ってみてください。

それと、パケット分析などをすると気がつくのですが、システムでは、道路の車のかたまりのように”処理の波”が見られます。DBMSが波を作ることもありますし、ディスクが作ることもあります。DBMSの更新ログの書き込みは大抵「まとめ書き」の機能を持ちます。まとめ書きをすると、性能は良くなりますが、複数のリクエストがかたまって処理されます。つまり、処理の波ができます。また、ハードディスクのヘッドは、エレベータシーク(※)という、まとめ処理の動きを持ちますが、これも処理の波の一種と言えます。

※:上述のエレベータの渋滞も思い出してください。

●まとめ

システムの性能分析をする際には、ボトルネックのような分かりやすい遅延以外にも、微小な遅延の存在も疑ってみましょう。

まだまだ渋滞とシステム遅延、”行列”のネタが続きます。
スポンサーサイト
[ 2009/07/23 02:17 ] アーキテクチャ | TB(0) | CM(0)
コメントの投稿













管理者にだけ表示を許可する
プロフィール

Author:odakeiji
小田圭二 日本オラクルのテクノロジーソリューションコンサルティング統括本部においてデータベースのコンサルタントをしている。今までのキャリアでは、社内教育部隊で、データベースやOS、ネットワークを教える経験を5年ほど積んだり、コンサル部門で主にDB(インフラ含む)のコンサルを10年程度経験した。また、コンサルタントとして、主に大規模ミッションクリティカルシステムを担当。社内では”火消し”とも呼ばれ、システムトラブルの火消しをいくつも担当していたこともある。
ポリシーは、「OracleもOS上で動くアプリケーションにすぎない。だから、OS、ストレージ、ネットワークを学ぶべき。アーキテクチャから考えろ」。
スキル面の興味は、アーキテクチャ、DBA、インフラ技術、教育、コンサル手法など。
本ブログのポリシーは「週に1回、DBAやインフラ担当者の役に立つ記事を書きたい」です(守れるだけ、守りたい・・・・)
なお、本ブログにおいて示されている見解は、私自身の見解であって、オラクルの見解を必ずしも反映したものではありません。ご了承ください。

私の主な著書の紹介です。もしよかったら、お役立てください。他にもオライリーなどがあります

●「絵で見てわかるOS/ストレージ/ネットワーク データベースはこう使っている」小田圭二 著
私のポリシーである”DBMSもOSの動くアプリケーションに過ぎない”に基づいて、OSとDBMSの関係、ストレージとDBMSの関係、ネットワークとDBMSの関係、を解説した珍しい書籍です。DBを学んでひと段落したら、DB使いもインフラ全体を意識しなければなりませんが、そのような人にお勧めです。企業ユーザー向けのIT本としては、2008年度翔泳社No1だとか(最後は出版社談)。

●「絵で見てわかるOracleの仕組み」 小田圭二 著
教育に携わる者としての私の思い「丸暗記するな。アーキテクチャを知るべき。絵で説明すべき」を具体化した、Oracleの入門書です。Oracle初心者向きですが、Oracleの基礎となる部分の動きを解説しているため、バージョンに依存せずに何年先でも使えます。逆に、本書の内容を理解せずに、ひたすら丸暗記すると応用力が身につきません。この本を読むだけで何かできるようになるわけではありませんが、アーキテクチャを身につけて、本当の技術力を身につける第一歩として欲しいと思っています。

●「44のアンチパターンに学ぶDBシステム」 小田圭二 著
本書は、企業のDBシステムの設計/構築から運用管理、プロジェクト管理までの各フェーズにおけるトラブル(失敗)事例について、アンチパターン(べからず集)とその回避策/防止策として解説するものです。チェックリストとして使っていただいても構いません。分かっていてもアンチパターンは避けられないことも多いものです(政治とか)。そういう方には、同じ仲間は多いのだなと再認識していただくための一服の清涼剤としていただければと思います。

●「門外不出のOracle現場ワザ」 小田圭二 他 著
一番最初に出た本です。結構とがった内容を扱っています。
・パフォーマンス分析の考え方(私の担当)
・性能テストや障害テストの仕方、設計の注意点(主に私が執筆)
・コストベースオプティマイザ(10gベース)のアーキテクチャ
・コネクションプーリング
最新のOracleの内容は含んでいませんが、今でも性能の考え方やオプティマイザの考え方は使えるはずです。オプティマイザをここまで解説している本を私は知りません。

●「続・門外不出のOracle現場ワザ」 小田圭二 他 著
「続」の名前の通り、次に出た本です。ちょっと尖り過ぎたかもしれません^^; でも本当に使う内容を選んだつもりです。一流になりたい・他の人と差をつけたい人にお勧めでしょうか。
・性能の良いSQLの書き方
・文字化けの仕組み
・障害(特に性能やハング)の分析・対応方法(私が執筆)
・障害をリアルタイムに分析・対処する方法(私が執筆)
・オプティマイザの使い方ノウハウ
・アップグレードのノウハウ

●「データベース」小田圭二 他 著
私にしては堅い本です。なんせ、共同執筆者が大御所の國友義久先生です。階層型DBMS、ネットワーク型DBMS、リレーショナル型DBMS、XMLDBMS、OO(オブジェクト指向)DBMS、DBMSの持つ機能、DBMSのセキュリティ、データベースの著作権、監査、モデリング、正規化といった内容を網羅しており、深い記述は無いものの、DB技術全体を抑えるのに向いている一冊です。ある程度技術力がついたエンジニアの方が、DB全体を振り返りたい(勉強したい)というときの最初の1冊としてお勧めです。



上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。