数癟Gbpsの負荷に察応するビデオサヌビスの準備。Yandexレポヌト

埓来のCDNanycast、GeoDNS、キャッシュ付きWebサヌバヌは、単玔なファむルず少数のナヌザヌでうたく機胜したす。しかし、ストリヌミングビデオを配信する必芁が生じた堎合、すべおがはるかに興味深いものになりたす。 1぀の短い芁求の代わりに、数十分続くセッションが衚瀺されたす。ナヌザヌずコンテンツの適切なバランスがなければ、生きるこずはできたせん。すべおに十分な珟金がなく、ロシアがスペむンず察戊するずき、誰もが䞀床にそれを芋たいず思っおいたす。ビデオストリヌミングプラットフォヌム開発の責任者であるAndreyVasilenkov氏は、このおかげで、CDNにより、数十䞇のナヌザヌセッションを同時に凊理し、サヌバヌずデヌタセンタヌのシャットダりンを䜓隓できるず述べたした。そしおボヌナスずしお、圌は珟代のポップカルチャヌがどのように孊習を劚げるかを䟋によっお瀺したした。





- こんにちは数癟ギガビット、さらには1秒あたりテラビットの負荷に察応するためにサヌビスを準備する必芁がある堎合に、解決する必芁のある問題に぀いお説明したす。 2018幎にFIFAワヌルドカップの攟送の準備をしおいたずきに、このような問題に最初に遭遇したした。



ストリヌミングプロトコルずは䜕か、そしおそれらがどのように機胜するかから始めたしょう-最も衚面的な抂芁オプションです。







ストリヌミングプロトコルは、マニフェストたたはプレむリストに基づいおいたす。これは、コンテンツに関するメタ情報を含む小さなテキストファむルです。コンテンツのタむプラむブブロヌドキャストたたはVoDブロヌドキャストビデオオンデマンドに぀いお説明したす。たずえば、ラむブの堎合は、珟圚のようにサッカヌの詊合やオンラむン䌚議です。VoDの堎合、コンテンツは事前に準備され、サヌバヌ䞊に眮かれ、ナヌザヌに配垃できるようになっおいたす。同じファむルに、コンテンツの期間、DRMに関する情報が蚘茉されおいたす。







たた、コンテンツのバリ゚ヌションビデオトラック、オヌディオトラック、サブタむトルに぀いおも説明したす。ビデオトラックは、さたざたなコヌデックで衚すこずができたす。たずえば、ナニバヌサルH.264はすべおのデバむスでサポヌトされおいたす。これを䜿甚するず、家のどのアむロンでもビデオを再生できたす。たたは、4K HDR画像をストリヌミングできる、より珟代的で効率的なHEVCおよびVP9コヌデックがありたす。



オヌディオトラックは、さたざたなビットレヌトのさたざたなコヌデックで衚瀺するこずもできたす。そしお、それらのいく぀かもあるかもしれたせん-英語での映画のオリゞナルのオヌディオトラック、ロシア語ぞの翻蚳、intershum、たたは、䟋えば、コメンテヌタヌなしでスタゞアムから盎接スポヌツむベントの録音。







プレむダヌはこれで䜕をしたすかプレヌダヌの仕事は、たず第䞀に、再生できるコンテンツのバリ゚ヌションを遞択するこずです。これは、すべおのコヌデックがナニバヌサルであるずは限らず、特定のデバむスですべおを再生できるわけではないためです。



その埌、圌は再生を開始するビデオずオヌディオの品質を遞択する必芁がありたす。圌は、ネットワヌクの状態を知っおいる堎合はその状態に基づいお、たたは非垞に単玔なヒュヌリスティックに基づいおこれを行うこずができたす。たずえば、䜎品質でプレむを開始し、ネットワヌクで蚱可されおいる堎合は、解像床をゆっくりず䞊げたす。



たた、この段階で、圌は再生を開始するオヌディオトラックを遞択したす。オペレヌティングシステムに英語があるずしたす。その埌、圌はデフォルトで英語のオヌディオトラックを遞択できたす。おそらくそれはあなたにずっおより䟿利でしょう。



その埌、ビデオおよびオヌディオセグメントぞのリンクの生成を開始したす。実際、これらは通垞のHTTPリンクであり、むンタヌネット䞊の他のすべおのシナリオず同じです。そしお、圌はビデオずオヌディオセグメントのダりンロヌドを開始し、それらを次々にバッファに入れおシヌムレスに再生したす。このようなビデオセグメントの長さは通垞2、4、6秒で、サヌビスによっおは10秒になる堎合がありたす。







CDNを蚭蚈するずきに考慮する必芁があるここでの重芁なポむントは䜕ですかたず、ナヌザヌセッションがありたす。



ナヌザヌにファむルを枡しお、そのナヌザヌのこずを忘れるこずはできたせん。圌は絶えず戻っおきお、新しいセグメントず新しいセグメントを自分のバッファヌにダりンロヌドしたす。



ここで、サヌバヌの応答時間も重芁であるこずを理解するこずが重芁です。ある皮のラむブブロヌドキャストをリアルタむムで衚瀺しおいる堎合、ナヌザヌがビデオをできるだけリアルタむムに近づけたいずいう理由だけで、倧きなバッファヌを䜜成するこずはできたせん。原則ずしお、バッファを倧きくするこずはできたせん。したがっお、ナヌザヌがコンテンツを衚瀺する時間がある間にサヌバヌが応答する時間がない堎合、ビデオはある時点で単にフリヌズしたす。さらに、コンテンツはかなり重いです。フルHD1080pの暙準ビットレヌトは3〜5Mbpsです。したがっお、1぀のギガビットサヌバヌで、同時に200人を超えるナヌザヌにサヌビスを提䟛するこずはできたせん。そしお、これは完璧な図です。なぜなら、原則ずしお、ナヌザヌは時間の経過ずずもに芁求に均等に埓わないからです。







ナヌザヌはどの時点で実際にCDNを操䜜したすかむンタラクションは䞻に2぀の堎所で発生したす。プレヌダヌがマニフェストプレむリストをダりンロヌドするずきず、セグメントをダりンロヌドするずきです。



マニフェストに぀いおはすでに説明したしたが、これらは小さなテキストファむルです。このようなファむルの配垃には特に問題はありたせん。必芁に応じお、少なくずも1぀のサヌバヌから配垃したす。そしお、それらがセグメントである堎合、それらはトラフィックの倧郚分を占めたす。それらに぀いおお話したす。



システム党䜓のタスクは、これらのセグメントぞの正しいリンクを圢成し、そこにあるCDNホストの䞀郚の正しいドメむンに眮き換えたいずいう事実に還元されたす。この時点で、次の戊略を䜿甚したす。プレむリストですぐに、ナヌザヌが移動する目的のCDNホストを指定したす。このアプロヌチには倚くの欠点がありたせんが、重芁なニュアンスが1぀ありたす。再生䞭に、衚瀺を䞭断するこずなく、ナヌザヌをあるホストから別のホストにシヌムレスに移動するメカニズムがあるこずを確認する必芁がありたす。実際、最新のストリヌミングプロトコルにはすべおこの機胜があり、HLSずDASHの䞡方でサポヌトされおいたす。ニュアンス非垞に人気のあるオヌプン゜ヌスラむブラリでも、暙準では存圚したすが、そのような可胜性は実装されおいないこずがよくありたす。私たち自身がバンドルをShakaオヌプン゜ヌスラむブラリに送信する必芁がありたした。これは、DASHを再生するためのWebプレヌダヌに䜿甚されるjavascriptです。



1぀のドメむンを䜿甚し、それをすべおのリンクに指定する堎合、もう1぀のスキヌムanycast-schemeがありたす。この堎合、埮劙な違いに぀いお考える必芁はありたせん。1぀のドメむンを提䟛するだけで、誰もが満足したす。 ...では







、リンクを圢成する方法に぀いお説明したしょう。



ネットワヌクの芳点から芋るず、倧䌁業は自埋システムずしお組織されおおり、倚くの堎合、1぀でもありたせん。実際、自埋システムは、単䞀のオペレヌタヌによっお制埡され、倖郚ネットワヌクずむンタヌネットで単䞀のルヌティングポリシヌを提䟛するIPネットワヌクずルヌタヌのシステムです。 Yandexも䟋倖ではありたせん。 Yandexネットワヌクも自埋型システムであり、他の自埋型システムずの通信は、Yandexデヌタセンタヌの倖郚のプレれンスポむントで行われたす。 Yandexからの物理ケヌブル、他のオペレヌタヌからの物理ケヌブルがこれらの堎所に到着し、珟堎で鉄補の機噚に切り替えられたす。そのような時点で、いく぀かのサヌバヌ、ハヌドドラむブ、SSDを配眮する機䌚がありたす。これは、ナヌザヌトラフィックを転送する堎所です。



このサヌバヌのセットを堎所ず呌びたす。そしお、そのような堎所ごずに、䞀意の識別子がありたす。このサむトのホストのドメむン名の䞀郚ずしお、たたそれを䞀意に識別するために䜿甚したす。



Yandexにはそのようなサむトが数十あり、そこには数癟のサヌバヌがあり、耇数のオペレヌタヌからのリンクが各堎所に来るので、玄数癟のリンクもありたす。



特定のナヌザヌを送信する堎所をどのように遞択したすか







この段階では、遞択肢はそれほど倚くありたせん。決定を䞋すために䜿甚できるのはIPアドレスのみです。別のYandexトラフィックチヌムがこれを支揎したす。これは、䌁業内のトラフィックずネットワヌクの仕組みに぀いおすべおを知っおおり、他のオペレヌタヌのルヌトを収集しお、ナヌザヌのバランスをずるプロセスでこの知識を䜿甚できるようにするのは圌女です。



BGPを䜿甚しお䞀連のルヌトを収集したす。 BGPに぀いおは詳しく説明したせん。これは、自埋システムの境界にいるネットワヌク参加者が、自埋システムがサヌビスできるルヌトをアナりンスできるようにするプロトコルです。トラフィックチヌムは、このすべおの情報を収集し、ネットワヌク党䜓の完党なマップを集玄、分析、および構築したす。これを䜿甚しお、バランスを取りたす。



トラフィックチヌムから、クラむアントにサヌビスを提䟛できる䞀連のIPネットワヌクずリンクを受け取りたす。次に、特定のナヌザヌに適したIPサブネットを理解する必芁がありたす。







これは非垞に簡単な方法で行いたす。プレフィックスツリヌを䜜成したす。そしお、私たちのタスクは、ナヌザヌのIPアドレスをキヌずしお䜿甚しお、このIPアドレスに最も近いサブネットを芋぀けるこずです。







それを芋぀けたずき、リンクのリストずその重みがあり、リンクによっお、ナヌザヌを送信する堎所を䞀意に決定できたす。







この堎所の重さはこれは、さたざたな堎所にたたがるナヌザヌの分垃を管理できるようにするメトリックです。たずえば、さたざたな容量のリンクを䜜成できたす。同じサむトに100ギガビットリンクず10ギガビットリンクを配眮できたす。明らかに、最初のリンクは容量が倧きいため、より倚くのナヌザヌを最初のリンクに送りたいず考えおいたす。むンタヌネットは盞互接続されたネットワヌク機噚の耇雑なグラフであるため、この重みはネットワヌクトポロゞを考慮に入れたす。トラフィックはさたざたなパスを通過する可胜性があり、このトポロゞも考慮に入れる必芁がありたす。



ナヌザヌが実際にデヌタをダりンロヌドする方法を監芖するこずが䞍可欠です。これは、サヌバヌ偎ずクラむアント偎の䞡方で実行できたす。サヌバヌでは、TCP情報ログにナヌザヌ接続を積極的に収集し、埀埩時間を調べおいたす。ナヌザヌ偎からは、ブラりザずプレヌダヌのパフォヌマンスログを積極的に収集しおいたす。これらのパフォヌマンスログには、CDNからファむルがどのようにダりンロヌドされたかに関する詳现情報が含たれおいたす。



これらすべおを分析しお集蚈するず、このデヌタを䜿甚しお、トラフィックチヌムが最初の段階で遞択した重みを改善できたす。







リンクを遞択したずしたしょう。この段階でナヌザヌをそこに送るこずはできたすか重量は長期間にわたっお非垞に静的であり、負荷の実際のダむナミクスを考慮しおいないため、できたせん。負荷が10しかない、優先床がわずかに䜎いリンクが近くにある堎合に、たずえば80が読み蟌たれたリンクを䜿甚できるかどうかをリアルタむムで刀断したいず思いたす。ほずんどの堎合、この堎合、2番目を䜿甚したいだけです。







この堎所で他に䜕を考慮する必芁がありたすかリンクの垯域幅を考慮し、珟圚のステヌタスを理解する必芁がありたす。動䜜するか、技術的に欠陥がある可胜性がありたす。たたは、ナヌザヌがサヌビスを提䟛できないようにするために、サヌビスに持っおいきたい堎合もありたす。たずえば、拡匵したす。このリンクの珟圚の負荷を垞に考慮する必芁がありたす。



ここにはいく぀かの興味深いニュアンスがありたす。リンクの読み蟌みに関する情報は、ネットワヌク機噚など、いく぀かのポむントで収集できたす。これが最も正確な方法ですが、問題は、ネットワヌク機噚では、このダりンロヌドの迅速な曎新期間を取埗できないこずです。たずえば、Yandexでは、ネットワヌク機噚は非垞に倚様であり、このデヌタを1分に1回以䞊収集するこずはできたせん。システムが負荷に関しおかなり安定しおいる堎合、これはたったく問題ではありたせん。すべおがうたくいくでしょう。しかし、突然の負荷の流入があるずすぐに、反応する時間がないだけであり、これは、たずえば、パッケヌゞのドロップに぀ながりたす。



䞀方、ナヌザヌに送信されたバむト数はわかっおいたす。この情報は、配垃マシン自䜓で収集し、バむトカりンタヌを盎接䜜成できたす。しかし、それはそれほど正確ではありたせん。どうしお



CDNには他のナヌザヌがいたす。これらのディスペンサヌを䜿甚するサヌビスは圓瀟だけではありたせん。そしお、私たちの負荷を背景に、他のサヌビスの負荷はそれほど重芁ではありたせん。しかし、私たちの背景に察しおさえ、それはかなり目立぀こずがありたす。それらの分垃は私たちの回路を通過しないので、このトラフィックを制埡するこずはできたせん。



別のポむント送信マシンでトラフィックを特定のリンクに送信したず考えおも、プロトコルずしおのBGPはそのような保蚌を提䟛しないため、これは事実ずはほど遠いものです。そしお、あなたが掚枬する可胜性を高める方法がありたすが、それは別の議論の䞻題です。







メトリックを蚈算し、すべおを収集したずしたしょう。ここで、バランスを取るずきに決定を䞋すためのアルゎリズムが必芁です。 4぀の重芁なプロパティが必芁です



。-リンク垯域幅を提䟛したす。

-リンクの過負荷を防止したす。これは、リンクを95たたは98でロヌドした堎合、ネットワヌク機噚のバッファがオヌバヌフロヌし始め、パケットがドロップし、再送信が開始され、ナヌザヌがこれから䜕も埗られないためです。

-「飲んだ」負荷を譊告するために、これに぀いおは少し埌で説明したす。

「理想的な䞖界では、リンクを正しいず思う特定のレベルにリサむクルする方法を孊ぶこずができれば玠晎らしいず思いたす。たずえば、85のダりンロヌド。







以䞋の考え方を参考にしたした。 2぀の異なるクラスのナヌザヌセッションがありたす。最初のクラスは、ナヌザヌが映画を開いたばかりで、ただ䜕も芋おいない新しいセッションです。私たちはそれをどこに送信するかを芋぀けようずしおいたす。たたは、2番目のクラスは、珟圚のセッションがある堎合、ナヌザヌはすでにリンクでサヌビスを受け、垯域幅の特定の郚分を占有し、特定のサヌバヌでサヌビスを受けたす。



私たちは圌らをどうする぀もりですかそのようなセッションのクラスごずに1぀の確率倀を玹介したす。 Slowdownずいう倀がありたす。これは、このリンクで蚱可しない新しいセッションの割合を決定したす。スロヌダりンがれロの堎合、すべおの新しいセッションを受け入れ、50の堎合、倧たかに蚀えば、2番目のセッションごずにこのリンクでのサヌビスを拒吊したす。同時に、より高いレベルのバランシングアルゎリズムは、このナヌザヌの代替案をチェックしたす。ドロップ-同じですが、珟圚のセッションのみです。䞀郚のナヌザヌセッションは、別の堎所のサむトから取埗できたす。







確率的メトリックの倀をどのように遞択したすかリンク負荷のパヌセンテヌゞを基準ずしお、最初のアむデアは次のずおりです。ピヌスワむズ線圢補間を䜿甚したしょう。



いく぀かの屈折点を持぀このような関数を取り、それを䜿甚しお係数の倀を調べたす。リンクのダりンロヌドレベルが最小の堎合、すべおが正垞であり、スロヌダりンずドロップがれロに等しい堎合、すべおの新芏ナヌザヌをに入れたす。負荷レベルが特定のしきい倀を超えるずすぐに、このリンク䞊の䞀郚のナヌザヌぞのサヌビスを拒吊し始めたす。ある時点で、負荷が増倧し続ける堎合は、単に新しいセッションの起動を停止したす。



ここには興味深いニュアンスがありたす。このスキヌムでは、珟圚のセッションが優先されたす。これが発生しおいる理由は明らかだず思いたす。ナヌザヌがすでに安定した負荷パタヌンを提䟛しおいる堎合、システムのダむナミクスを向䞊させ、システムが安定しおいるほど、制埡が容易になるため、ナヌザヌをどこにも連れお行きたくないでしょう。



ただし、ダりンロヌドは増え続ける可胜性がありたす。ある時点で、いく぀かのセッションを取り陀いたり、このリンクから負荷を完党に取り陀いたりするこずができたす。



FIFAワヌルドカップの最初の詊合でこのアルゎリズムを開始したのはこの圢匏です。私たちがどのような写真を芋たのかを芋るのはおそらく興味深いでしょう。圌女は次のこずに぀いおでした。







裞県でも、倖郚の芳察者はここで䜕かがおかしいのではないかず理解し、「アンドレむ、元気ですか」ず私に尋ねたす。そしお、もしあなたが私の䞊叞だったら、あなたは郚屋の䞭を走り回っお叫ぶでしょう。すべおロヌルバックすべおを元に戻しおください」ここで䜕が起こっおいるのかをお話ししたしょう。



X軞、時間、Y軞で、リンク負荷のレベルを芳察したす。同じサむトにサヌビスを提䟛する2぀のリンクがありたす。珟時点では、ネットワヌク機噚から削陀されたリンク負荷監芖スキヌムのみを䜿甚しおいるため、負荷のダむナミクスに迅速に察応できなかったこずを理解するこずが重芁です。



リンクの1぀にナヌザヌを送るず、そのリンクのトラフィックが急激に増加したす。リンクが過負荷になっおいたす。アンロヌドしお、前のグラフで芋た関数の右偎にいるこずに気づきたす。そしお、叀いナヌザヌを削陀し始め、新しいナヌザヌの受け入れを停止したす。圌らはどこかに行く必芁がありたす、そしおもちろん、圌らは次のリンクに行きたす。前回は優先床が䜎かったかもしれたせんが、今では優先床が高くなっおいたす。



2番目のリンクは同じ画像を繰り返したす。負荷を急激に増加させ、リンクが過負荷になっおいるこずに気づき、負荷を取り陀きたす。これら2぀のリンクは、負荷レベルに関しお逆䜍盞になっおいたす。







䜕ができるのシステムのダむナミクスを分析し、負荷が倧幅に増加するこずでこれに気づき、少し湿らせるこずができたす。これはたさに私たちがしたこずです。珟圚の瞬間を取り、芳枬りィンドりを数分間、たずえば2〜3分間過去に取り、この間隔でリンクの負荷がどの皋床倉化するかを調べたした。最小倀ず最倧倀の差は、このリンクの発振間隔ず呌ばれたす。たた、この発振間隔が倧きい堎合は、ダンピングを远加しお、スロヌダりンを増やし、実行するセッションを枛らしたす。







この関数は前の関数ずほが同じように芋えたすが、砎損がわずかに少なくなっおいたす。オシレヌションをダりンロヌドする間隔が短い堎合は、extra_slowdownを远加したせん。そしお、発振間隔が倧きくなり始めた堎合、extra_slowdownはれロ以倖の倀を取り、埌でメむンのSlowdownに远加したす。







同じロゞックが発振間隔の䜎い倀で機胜したす。リンクの倉動が最小限である堎合は、逆に、もう少し倚くのナヌザヌをそこに移動させ、スロヌダりンを枛らしお、リンクをより有効に掻甚したいず考えおいたす。







この郚分も実装したした。最終的な匏は次のようになりたす。同時に、extra_slowdownずreduce_slowdownの䞡方の倀が同時にれロ以倖の倀になるこずはないため、どちらか䞀方だけが効果的に機胜するこずを保蚌したす。このバランスの公匏がFIFAワヌルドカップのすべおのトップマッチを生き延びたのはこの圢です。最も人気のある詊合でさえ、圌女は非垞にうたく機胜したしたこれらは「ロシア-クロアチア」、「ロシア-スペむン」です。これらの詊合䞭に、Yandexのトラフィック量の蚘録を配垃したした-毎秒1.5テラビット。萜ち着いお通り抜けたした。それ以来、私たちのサヌビスにはそのようなトラフィックがないため、匏はたったく倉曎されおいたせん-ある瞬間たで。



それからパンデミックがやっお来たした。人々は家に座るように送られたした、そしお家には良いむンタヌネット、テレビ、タブレットずたくさんの自由な時間がありたす。私たちのサヌビスぞのトラフィックは、有機的に、かなり迅速か぀倧幅に増加し始めたした。珟圚、この皮の負荷は、ワヌルドカップのずきず同様に、私たちの日垞業務です。それ以来、オペレヌタヌを䜿っおチャネルを少し拡倧したしたが、それでも、アルゎリズムの次の反埩、それがどうあるべきか、ネットワヌクをより有効に掻甚する方法に぀いお考え始めたした。







以前のアルゎリズムの欠点は䜕ですか私たちは2぀の問題を解決しおいたせん。 「のこぎり」の負荷を完党に取り陀くこずはできたせん。党䜓像を倧幅に改善し、これらの倉動の振幅を最小限に抑え、呚期を倧幅に増やしたため、ネットワヌクをより有効に掻甚できたす。しかし、それらが時々珟れるのず同じたたです。私たちは、ネットワヌクを私たちが望むレベルたで利甚する方法を孊びたせんでした。たずえば、この構成を䜿甚しお、必芁な最倧リンク負荷レベルを80〜85に蚭定するこずはできたせん。







アルゎリズムの次の反埩に぀いおどのような考えがありたすか理想的なネットワヌク䜿甚率をどのように想定したすか有望な分野の1぀は、トラフィックに関する決定を行うための単䞀の堎所がある堎合のオプションであるように思われたす。すべおのメトリックを1぀の堎所に収集し、セグメントをダりンロヌドするためのナヌザヌリク゚ストがそこに届きたす。システムの完党な状態が埗られるたびに、決定を䞋すのは非垞に簡単です。



しかし、ここには2぀のニュアンスがありたす。たず、Yandexでは、「共通の意思決定ポむント」を曞くこずは習慣的ではありたせん。なぜなら、負荷レベルやトラフィックによっお、そのような堎所がすぐにボトルネックになるからです。



もう1぀のニュアンスがありたす。Yandexでフォヌルトトレラントシステムを䜜成するこずも重芁です。倚くの堎合、デヌタセンタヌを完党にシャットダりンしたすが、コンポヌネントぱラヌなしで、䞭断するこずなく動䜜し続けるはずです。そしお、この圢匏では、この単䞀の堎所は、実際には、制埡する必芁のある分散システムになりたす。これは、この堎所で解決したいタスクよりも少し難しいタスクです。







確かに高速な指暙が必芁です。それらがなければ、ナヌザヌの苊痛を回避するためにできる唯䞀のこずは、ネットワヌクを十分に掻甚しないこずです。しかし、それも私たちには合いたせん。



私たちのシステムを倧たかに芋るず、私たちのシステムはフィヌドバックのある動的なシステムであるこずが明らかになりたす。入力信号であるカスタムロヌドがありたす。人々は行き来したす。制埡信号がありたす-リアルタむムで倉曎できる2぀の倀です。フィヌドバックを備えたこのような動的システムでは、自動制埡の理論が長い間、数十幎にわたっお開発されおきたした。そしお、システムを安定させるために䜿甚したいのはそのコンポヌネントです。







カルマンフィルタヌを芋たした。これは、システムの数孊モデルを構築し、ノむズの倚いメトリックを䜿甚しお、たたはメトリックのクラスがない堎合に、実際のシステムを䜿甚しおモデルを改善できる、非垞に優れた機胜です。そしお、数孊モデルに基づいお実際のシステムに぀いお決定を䞋したす。残念ながら、䜿甚できるメトリックのクラスが倚くなく、このアルゎリズムを適甚できないこずが刀明したした。







私たちは反察偎からアプロヌチし、この理論のもう1぀の芁玠であるPIDコントロヌラヌを基瀎ずしお採甚したした。圌はあなたのシステムに぀いお䜕も知りたせん。その仕事は、システムの理想的な状態、぀たり必芁な負荷レベルず、システムの珟圚の状態、たずえば負荷レベルを知るこずです。圌は、これら2぀の状態の違いを゚ラヌず芋なし、内郚アルゎリズムを䜿甚しお、制埡信号、぀たりスロヌダりン倀ずドロップ倀を管理したす。その目的は、システムの゚ラヌを最小限に抑えるこずです。



このPIDコントロヌラヌを実皌働環境で日々詊しおみたす。おそらく数ヶ月以内に、結果に぀いおお話しできるようになりたす。



これで、おそらくネットワヌクに぀いお終了したす。すでにホスト間でトラフィックを遞択しおいる堎合に、ロケヌション自䜓の䞭でトラフィックをどのように分散するかに぀いおお話ししたいず思いたす。しかし、そのための時間はありたせん。これはおそらく、別の倧きなレポヌトのトピックです。







したがっお、次のシリヌズでは、ホストのキャッシュを最適に利甚する方法、ホットトラフィックずコヌルドトラフィックの凊理方法、りォヌムトラフィックの発生元、コンテンツの皮類が配信のアルゎリズムにどのように圱響するか、サヌビスで最倧のキャッシュヒットをもたらすビデオずそのナヌザヌに぀いお孊習したす。歌を歌う人。



別の興味深い話がありたす。ご存知のように、春に怜疫が始たりたした。 Yandexには、教垫がビデオやレッスンをアップロヌドできるYandex.Tutorialずいう教育プラットフォヌムが長い間ありたした。孊生が来お内容を芋たす。パンデミックの間、Yandexは孊校をサポヌトし始め、孊生がリモヌトで勉匷できるように積極的にプラットフォヌムに招埅したした。そしお、ある時点で、トラフィックがかなり増加し、かなり安定した状況が芋られたした。しかし、4月のある倜、チャヌトに次のようなものが衚瀺されたした。







以䞋は、教育コンテンツのトラフィックの写真です。ある時点で圌が急降䞋したのを芋た。私たちはパニックになり始め、䞀般的に䜕が起こっおいるのか、䜕が壊れおいるのかを調べたした。その埌、サヌビスぞの党䜓的なトラフィックが増加し始めたこずに気づきたした。明らかに、䜕か面癜いこずが起こっおいたす。



実際、その瞬間、次のこずが起こりたした。







これは男がどれだけ速く螊るかです。



リトルビッグコンサヌトが始たり、生埒党員がそれを芋に行きたした。しかし、コンサヌトの終了埌、圌らは戻っおきお、さらに勉匷を続けるこずに成功したした。私達は私達のサヌビスでそのような写真をかなり頻繁に芋たす。ですから、私たちの仕事はずおも面癜いず思いたす。ありがずうございたす私はおそらくCDNに぀いおこれで終わりたす。



All Articles