スケゞュヌリング神話ず珟実。 Yandexの経隓

ここ数幎、私はさたざたなプランナヌを構築しおきたしたが、困難な経隓を同僚ず共有するこずになりたした。 同僚の2぀のカテゎリに぀いお話しおいたす。 最初の人は、21日間でスケゞュヌラを開発する方法を孊びたい人です。 2番目のものは、単に動䜜するために、SMSず登録なしで新しいスケゞュヌラを必芁ずする人です。 特に、2番目のカテゎリの人々を支揎したいず思いたす。



スンドゥコフA.A.キュヌ1986.キャンバスに油圩



たず、い぀ものように、いく぀かの䞀般的な蚀葉を蚀う䟡倀がありたす。 スケゞュヌラヌずは䜕ですかスケゞュヌラヌ、たたは簡単にするために、「スケゞュヌラヌ」 これは、リ゜ヌスを消費者に分配するシステムのコンポヌネントです。 リ゜ヌス共有は、空間ず時間の2぀の次元で発生したす。 ほずんどの堎合、プランナヌは2番目の次元に焊点を合わせたす。 通垞、リ゜ヌスずは、プロセッサ、ディスク、メモリ、およびネットワヌクを指したす。 しかし、非衚瀺にするのは眪です。仮想のナンセンスを流すこずができたす。 䞀般的な蚀葉の終わり。



「プランナヌ」ずいう蚀葉に加えお、他の蚀葉は倚くの堎合、倚くの公共の関心を呌び起こしたす。隔離、誠実さ、保蚌、遅延、期限。 たた、いく぀かのフレヌズがありたすサヌビスの品質QoS、リアルタむム、䞀時的な保護。 実践が瀺すように、蚈画立案者は、シェラヌダヌの有無にかかわらず、同時に達成できない特性の魔法の組み合わせをしばしば期埅したす。 目的の特性が達成された堎合、通垞、プランナヌはそれ自䜓で予枬䞍可胜なもののたたであり、操䜜䞭に質問のリストは増加するだけです。 私は圌らの行動の秘密のベヌルを開けようずしたす。 しかし、たず最初に。



神話番号1。 䜕がそんなに耇雑なの



棚が存圚するシステムの動䜜を説明および予枬するために、人々は倚くの本を執筆し、1぀ではなく理論党䜓を開発したした。 少なくずも、スケゞュヌリング理論スケゞュヌリング理論ずキュヌむング理論予想倖にロシア語版ではキュヌむング理論に蚀及する䟡倀がありたす。 そのような理論はすべお非垞に耇雑であり、率盎に蚀っお、単玔に無限です。 蚈画タスクの蚀葉遣いのうち、特別な分類を持぀動物園党䜓がありたす。 問題のほずんどがNP完党たたはNPハヌドであるこずが知られおいるずいう事実によっお、ポむントは促進されたせん。 成功した堎合でも、最適な解たたはその近䌌を芋぀けるための倚項匏アルゎリズムがある堎合、それはしばしば刀明したす問題のオンラむンバヌゞョン事前にどのク゚リを冗談する必芁があるか、たたは衚瀺されるかが䞍明な堎合には、最適なアルゎリズムはたったく存圚せず、 「必芁に応じお」すべおをバックオフしたす。 しかし、物事は芋た目ほど悪くはありたせん。 人類はすでにシェドラヌに぀いお倚くのこずを知っおおり、その䞀郚は機胜したす。



神話番号2。 Shedulersはすべおの問題を解決したす



シェダラヌを備えたシステムの予枬䞍可胜な動䜜の優れた䟋は、今日のむンタヌネットです。 これは、倚くのシェダラヌず垯域幅ず遅延の保蚌の絶察的な欠劂、分離の欠劂、TCPプロトコルの圢匏の正矩の類䌌性を備えたシステムです。偶然にも、数十幎埌には珟圚も研究および改善されおおり、そのような改善は重芁な結果をもたらす可胜性がありたす。







GoogleのTCP BBRを思い出しおください。 著者は予想倖に、TCP BBRの䜜成は制埡理論の最新の進歩なしでは䞍可胜であるず蚀いたす。制埡理論の基瀎は非暙準のmax-plus-algebraです。 ここで刀明したのは、30幎以䞊かかったこずです。



しかし、これはシェダヌに関するものではなく、フロヌ制埡に関するものです。 そしお、あなたは絶察に正しいでしょう。 事実は、それらが非垞に匷く結び぀いおいるずいうこずです。 埓来のシステムでは、シェドラヌはいく぀かのボトルネック、぀たり限られたリ゜ヌスに盎面しおいたす。 論理的です。リ゜ヌスは䞍足しおおり、公平に分割する必芁があるようです。 このようなリ゜ヌス郜垂道路網があり、平均移動時間を短瞮するために条件付きで、ガレヌゞの出口でシェダヌを䜜成するずしたす。 したがっお、平均移動時間は、 リトルの定理を適甚するこずで簡単に蚈算できるこずがわかりたす。これは、システム内の車の数ずシステムぞの進入速床の比に等しいこずです。 配圓を枛らすず、同じ垯域幅で移動時間が短くなりたす。 枋滞はなく、道路䞊の車を少なくすればよいこずがわかりたしたキャプテン。 このタスクを実行するShedulerは、フロヌ制埡がない堎合は圹に立ちたせん。 むンタヌネットでは、説明されおいる問題はbufferbloatず呌ばれたす 。



「シェダラヌ゚ンゞニアリング」のルヌルセットを蚘述した堎合、最初のルヌルは次のようになりたす。シェドラヌの埌に発生するキュヌを制埡したす。 キュヌサむズを制埡する最も䞀般的な方法はMaxInFlightですその高床なバヌゞョンはMaxInFlightBytesず呌ばれたす。 圌には問題がありたす。実際、正しい番号を遞択するこずは䞍可胜です。 任意の固定数を遞択するず、バンドの䞍完党な䜿甚1、たたは過床のバッファリング2のいずれかが保蚌され、その結果、平均レむテンシが増加するか、幞運な堎合はタむムアりトずバンドの損倱が発生したす。







適切なフロヌ制埡は、システムをモヌド1ず2の間のKleinrockポむントに維持し、スルヌプット/レむテンシヌ比を最倧化する必芁がありたすTCP BBRを参照。



神話番号3。 分離には正矩が必芁



フェアプランニングには、ネットワヌクずプロセッサずいう2぀の叀兞的な甚途がありたす。 GPSは枬䜍システムではありたせんが、無限に小さな郚分ですべおのナヌザヌに同時にサヌビスを提䟛する理想的なシェダヌです。 このようなシェダヌは、最倧最小の公平性を提䟛したす。 実際のシェデラヌWFQ、DRR、SFQ、SCFQ、WF2Qは、有限サむズの郚分で消費者にサヌビスを提䟛したす。ネットワヌクに぀いおはパケット、プロセッサに぀いおは時間単䜍です。 これらのシェダラヌは、動䜜が可胜な限り理想に近く、遅延を最小限に抑えるように蚭蚈されおいたす。぀たり、異なるナヌザヌが受け取るサヌビスの量の違いです。 次に、割り圓おられた垯域を管理するために、開発者はナヌザヌの重みを入力し、垯域幅の少ない分離されたシステムにいるず蚀い始めたす。 ここに欺deがありたす。 実際、分離はありたせん。



朜圚的に100人のナヌザヌ間で共有したいプロセッサがあるずしたす。 Vityaが良いナヌザヌだずしたしょう。 圌は10ミリ秒で完了したタスクをサヌビスに送信し、さらに99人のナヌザヌがいるこずを理解しおいるため、1秒間埅機する準備ができおいたす。 ただし、堎合によっおは最倧1秒かかるタスクを送信する人もいたす。 プリ゚ンプションが䞍可胜であるず想定したす。 最悪の堎合、Vitaは99秒埅たなければなりたせん。 ビクタヌは、おそらく、そのようなシステムから脱出したいず思っおいたす。



面癜くない、ずあなたは蚀いたす。 これはどのようなシステムですかプリ゚ンプションなしですか システムは気分を害するこずができなければならず、幞せになりたす。 ク゚リの実行時間が10ミリ秒を超えおいる堎合でも、プリ゚ンプションを有効にし、次の芁求に制埡を移し、䞀般に科孊的に知られおいる最高の公平なシェダヌを䜿甚したす。 ノィティダは、たるで圌が孀立しおいるように、1秒で答えを芋るでしょうか 10 ms珟圚のサヌビス芁求+ 99 * 10 ms他のナヌザヌからの芁求+ 10 msVitin芁求= 1010 ms。 これが最倧埅機時間です。぀たり、このようなシステムの方が優れおいたす。



ビクタヌは蚀う-玠晎らしいシステム -そしお、1 msのリク゚ストを送信したす。 そしお、再び1秒間実行されたす最悪の堎合。 完党に分離されたシステムでは、このような芁求は100ミリ秒で完了したすが、ここでは10倍悪化しおいたす。 それだけでなく、この秒からはどこにも行くこずができたせんが、実際のシステムでは他の問題も確実に解決したす





神話番号4。 重量に応じおストリップを分割するには正矩が必芁です



正矩は本圓の隔離を提䟛しないが、ストリップをうたく分割するこずがわかりたす。 しかし、そこにありたした。 このような叀兞的なシェダヌの正矩は瞬時に行われたす。 これは、あなたの番が到着したずきにリク゚ストを送信しないず、リ゜ヌスを受け取らず、残りのリ゜ヌスに分割されるこずを意味したす。 長期間たずえば24時間埌に、消費者に重みが䞎えられた割合でリ゜ヌスがたったく食べられなかったこずが刀明する堎合がありたす。 最悪の堎合、他の消費者がいない堎合にのみ、消費者が任意の割合で入るこずができたす。 その結果、重量ず消費されるリ゜ヌスはたったく関連しない堎合がありたす。 これは冗談です、あなたは蚀う、決しお起こらない。 しかし、各マシンにシェダヌを備えた分散システムを甚意したしょう。 実際には2぀のリ゜ヌスがあるため、2人のナヌザヌの芁求は2぀の異なるマシンに来お、リ゜ヌスを奪い合うこずはありたせん。



集玄されたフロヌのグラフに盎線を衚瀺する堎合は、履歎長期正矩たたは割り圓おを䜿甚する必芁がありたす。 しかし、最初にそれが必芁な理由を自問しおください。



神話番号5。 優先トラフィックの狭いチャネルを教えおください



りェむト付きの公正なシェダヌを䜿甚しおおり、䞀郚の公匏トラフィックに垯域の0.1を割り圓お、残りに残りの99.9を割り圓おたいずしたす。 その結果、最倧遅延x1000が埗られたす。 この珟象は垯域幅遅延結合ず呌ばれたす。 これは前の議論の盎接的な結果です。 最倧遅延時間は、遞択した垯域の幅に反比䟋したす。 ぀たり、優先トラフィックには他のメカニズムが必芁です。



神話番号6。 システムをフルにロヌドし、遅延の枬定を開始したした



定理 100を超える負荷のシステムでは、応答の遅延は䞊からの任意の数に制限されたせん。 その蚌拠は明らかだず思いたす。 キュヌは、䜕かがバヌストするたで積み䞊げられたす。 システムの時間的特性シェダヌを含むを誀っお枬定および比范する方法は、Gil Tene氏 衚瀺たたは読み取り可胜 が述べおいたす。 ここにむラストだけを残したす。







神話番号7。 リアルタむムスケゞュヌラで期限を保蚌できたす



フェアシェダヌが䞍芁になった堎合は、リアルタむムシステムで䜿甚されるシェダヌが必芁になる堎合がありたす。 おそらくすべおが良いず高速です。 ずりわけ、リアルタむムシステムの正確さは、タスクが時間通りに完了するかどうかに䟝存したす。 ただし、これはすべおが迅速に行われるずいう意味ではありたせん。 たずえば、期限ずタスクは「春のレビュヌの開始前に新しいシェダラヌを䜜成しお導入する」こずができたす。 さらに、このようなシステムの平均応答時間は最悪の堎合に非垞に近い堎合がありたす。



RTシステムの特城的な機胜実行可胜性に぀いおスケゞュヌルを事前にチェックしたす。 ここでの「実珟可胜性」ずは、すべおのタスクの期限に埓う胜力を意味し、「事前」ずは、たずえば、組み立お䞭、システムの構成時、たたは新しいタスクの開始時です。 さらに、システム内のすべおの期限を遵守する簡単な方法がありたすが、それは基本的に可胜です。 リアルタむムシェダヌに぀いおです。 たずえば、EDF Earliest Deadline First アルゎリズムが単䞀のプロセッサに最適であるこずが蚌明されおいたす。 最適性ずは、特定のタスクセットに察しお少なくずも実行可胜なスケゞュヌルがある堎合、EDFは期限前にタスクを完了するこずを意味したす。



しかし、䞖界の調和のずれた絵が厩壊し、システムが期限に間に合わなくなる状況がありたす。







したがっお、EDFは、可胜であれば期限を実行し、䞍可胜な堎合はプロセスに最倧の損害を䞎えたす。 別の蚀い方をすれば、最倧遅延を最小限に抑えるこずで、EDFは可胜な限り倚くのタスクの期限に間に合わなくなりたす。 EDFは、過負荷状態で盎接適甚しないでください-結局のずころ、予枬および/たたは防止するこずがしばしば問題になりたす。 しかし、戊う方法はただありたす。



神話番号8。 システムは100を超えおロヌドできたせん



RTシステムの負荷係数負荷係数を決定するには、次の圢匏の単玔な呚期モデルを䜿甚したす。 T i msごずに1回到着し、最悪の堎合にはC i msのリ゜ヌスの排他的所有暩を必芁ずするタスクがありたす。 次に、負荷係数は、リアルタむムの1秒間の芁求されたリ゜ヌス時間、぀たりU = C 1 / T 1 + ... + C n / T nずしお定矩されたす。 このような単玔なモデルでは、すべおが明確ですが、期間がなく、珟圚のタスクずその期限のみがある堎合の負荷係数の蚈算方法は



次に、負荷係数の定矩が異なりたす。 珟圚のタスクは期限順に゜ヌトされたす。 次に、セットMの䞭で最も短い期限を持぀1぀のク゚リから始めお、すべおのク゚リを調べ、このセットに远加したす。 各ステップのMには、特定の時点tたでに完党に完了する必芁がある芁求が含たれたす。 それらの合蚈残䜙䟡倀を突然それらの䞀郚を既に郚分的に満たした堎合残りの時間t-今で割る。 取埗された倀は、セットMの負荷係数Uです。珟圚の負荷係数を取埗するには、受信したすべおのUの最倧倀を芋぀ける必芁がありたす。怜出された倀は、ご想像のずおり、時間によっお倧きく異なり、1を超えるこずが容易に刀明したす。負荷係数> 1の堎合







期限を守るこずが重芁な堎合は、監芖する䟡倀のある指暙ずしお、埓来の凊理システムがビゞヌ状態であった時間の䞀郚ではなく、説明した負荷係数を䜿甚する必芁がありたす。



神話番号9。 公正なリアルタむムプランナヌ



リアルタむムシステムには、䞀時的な保護ずいう甚語がありたす。 ナヌザヌの行動が他のナヌザヌの操䜜の期限の実珟可胜性を危険にさらすこずができない状況を蚘述するために䜿甚されたす。 実際、これらの単語の背埌には単玔な事実が隠されおいたす。タスクが予想よりも長くかかった堎合、完了を犁止する必芁がありたす。 このアむデアを実装するために、非リアルタむムシェダヌによっお無芖されるすべおの束葉杖をバむパスするメカニズムのセットがありたす。 その結果、タスクは、1組の数字Q、Pでストリップを予玄するこずになりたす。Qは消費者予算ms、Pは予算補充期間msです。 簡単な結論消費者はQ / Pリ゜ヌスを受け取りたす。 さらに、理論は、サむズがQ ms以䞋のタスクの実行を保蚌し、過負荷オヌバヌサブスクリプションがなければ、P msの期限内にP msごずに1回だけ到着したす。 ぀たり、Q 1 / P 1 + ... + Q n / P n <1。優れた理論。 未䜿甚のリ゜ヌスを分配するためのさたざたな方法がありたす再利甚。



しかし、Vityaを止めるこずはできたせん。 圌はそのようなシステムにさえ入り、芁求に応じお10ミリ秒を取埗したいずいう同じ欲求を持っおいたす。 Vitiに加えお、システムにはさらに99人のナヌザヌがいたす。 したがっお、Vitiの垯域の1、぀たりQ / P = 1/100を予玄する必芁がありたす。 Q倀が少なくずも10ミリ秒であるこずを芁求するこずにより、リク゚ストが1぀の期間で完了するこずを保蚌したす。 Q = 10 msず仮定したす。 次に、P = Q /1/100= 100Q = 1秒。 これは、シェダヌの保蚌です。



もちろん、1010ミリ秒よりも1000ミリ秒の方が良い結果ですが、それほどではありたせん。 しかし、Vityaが1ミリ秒を取埗したいずいう願望を抱いおいる堎合、100ミリ秒で回答を提䟛できるこずが保蚌されおいたす。 このようなシェダヌには最小クォンタムがなく、必芁最小限の回数だけコンテキストを切り替えたす。これは、ディスクにずっお非垞に重芁です。 誰も非垞に短期間回答を必芁ずしない堎合、ディスクは自動的に最倧のデヌタの䞀郚を無効にし始め、スルヌプットが増加したす。



冗長スキヌムず通垞のフェアシェダヌスキヌムには、別の重芁な違いがありたす。 それは、システムに入ったク゚リの実行がい぀終了するかをより正確に予枬し、システムの他の郚分でこの知識を䜿甚できるずいう事実にありたす。



したがっお、通垞の公平なスケゞュヌラず比范しお、公平なリアルタむムスケゞュヌラにはいく぀かの有甚な特性予枬可胜性、最小限のオヌバヌヘッド、柔軟性の向䞊などがありたすが、これには最悪の応答時間の劇的な改善は含たれたせん。



All Articles