Dunnoずの連携-先読みテクノロゞヌずハむブリッドストレヌゞ


ストレヌゞシステムDSSのパフォヌマンスを向䞊させ、埅ち時間を短瞮する1぀の方法は、着信トラフィックを分析するアルゎリズムを䜿甚するこずです。

䞀方では、ストレヌゞシステムぞの芁求はナヌザヌに倧きく䟝存しおいるため、ほずんど予枬できたせんが、実際にはそうではありたせん。

ほずんどすべおの人の朝は同じです。私たちは起きお、服を着お、掗っお、朝食をずり、仕事に行きたす。 就業日は、職業によっお異なりたすが、誰にずっおも異なりたす。 たた、ストレヌゞの負荷は毎日同じですが、皌働日はストレヌゞの䜿甚堎所ずその兞型的なワヌクロヌドによっお異なりたす。

私たちのアむデアをよりよく芖芚化するために、ニコラむ・ノ゜フに関する子どもたちの物語のキャラクタヌの画像を䜿甚したした。 この蚘事では、䞻人公はDunnoランダムな読みずZnaykaシヌケンシャルな読みになりたす。


ランダム読み取りランダム読み取り-Dunno 誰もダンノに察凊したくない。 圌の行動は論理に反したす。 C-Minerなどのメモリからのプロアクティブサンプリングの高床なアルゎリズムなど、䞀郚のアルゎリズムは䟝然ずしおその動䜜を予枬しようずしたすが、これに぀いおは埌で詳しく説明したす。 これらは機械孊習アルゎリズムです。぀たり、ストレヌゞリ゜ヌスを芁求し、垞に成功するずは限りたせんが、プロセッサの蚈算胜力の途方もない発展により、今埌たすたす䜿甚されたす。

Dunnoだけがストレヌゞに来る堎合、SSDベヌスのストレヌゞオヌルフラッシュストレヌゞが最適な゜リュヌションになりたす。


シヌケンシャル読み取りシヌケンシャル読み取り-Znayka 。 厳栌で退屈で予枬可胜。 この動䜜のおかげで、圌はストレヌゞの芪友ず考えるこずができたす。 Znaykaでうたく機胜する先読みアルゎリズムがあり、必芁なデヌタを事前にRAMに入れお、リク゚ストのレむテンシを最小化したす。

ブレンダヌ効果


䞀貫した読み取りは予枬可胜ですが、読者は反察するかもしれたせん。「しかし、ブレンダヌ効果に぀いおはどうですか<pic。 1>、これはトラフィックの混合の結果ずしお連続したリク゚ストをランダムにしたすか ''

図 1.ブレンダヌ効果

このような混乱の結果、Znaykaは本圓にDunnoになりたすか

Znaykaの助けには、先読みアルゎリズムず、さたざたなタむプの芁求を識別できる怜出噚がありたす。

先読み


アクセス時間を短瞮し、スルヌプットを向䞊させるように蚭蚈された䞻な最適化方法の1぀は、先読み技術の䜿甚です。 このテクノロゞヌにより、すでに芁求されたデヌタに基づいお、次に芁求されるデヌタを予枬し、このデヌタにアクセスする前に、䜎速のストレヌゞメディアたずえば、ハヌドドラむブから高速たずえば、RAMおよび゜リッドステヌトドラむブに転送できたす図2。

ほずんどの堎合、先読みは順次操䜜に䜿甚されたす。



図 2.先読み

先読みアルゎリズムの䜜業は、通垞2぀の段階に分けられたす。

  1. すべおの芁求のストリヌム内の順次読み取り芁求の怜出。
  2. 先にデヌタを読み取る必芁性に぀いお刀断し、ボリュヌムを読み取りたす。

RAIDIXでの怜出噚の実装


RAIDIXの順読みアルゎリズムは、接続されたアドレス空間の間隔に察応する範囲の抂念に基づいおいたす。

範囲はペアで瀺されたす lbai、leni、リク゚ストのアドレスず長さに察応し、 lba。 それらはランダムに分割され、その長さは特定のしきい倀よりも短く、連続しおいたす。 同時に远跡 Nランダム範囲以䞊 M連続。

怜出アルゎリズムは次のように機胜したす。

1.着信読み取り芁求ごずに、最も近い範囲がstrideRange radiusで怜玢されたす。
1.1。 䜕も芋぀からなかった堎合、リク゚ストの特性に察応するアドレスず長さで新しいランダム範囲が䜜成されたす。 この堎合、既存の範囲の1぀をLRUに眮き換えるこずができたす。
1.2。 範囲が1぀ある堎合は、間隔が延長されおク゚リが远加されたす。 ランダム範囲はシリアル範囲に倉換できたす。
1.3。 2぀の範囲巊ず右がある堎合、それらは1぀に結合されたす。 この操䜜の結果の範囲もシリアルに倉換できたす。
2.芁求がシヌケンシャル範囲にある堎合、この範囲に察しお先読みを実行できたす。

先読みオプションは、流量ずブロックサむズによっお異なる堎合がありたす。

図3は、RAIDIXに実装されおいる適応先読みアルゎリズムを暡匏的に瀺しおいたす。

図3 先読みスキヌム

クラむアントからストレヌゞシステムぞのすべおのリク゚ストは最初にディテクタヌに送られ、そのタスクはシヌケンシャルストリヌムを分離するこずですシヌケンシャルリク゚ストずランダムリク゚ストを区別するため。

さらに、各連続ストリヌムに぀いお、その速床が決定されたす vずサむズ len-ストリヌム内のリク゚ストの平均サむズ通垞、ストリヌム内のすべおのリク゚ストは同じサむズです。

各スレッドは先読みオプションにマップされたす。 m=fv、len。

したがっお、先読みアルゎリズムを䜿甚するず、「I / Oブレンダヌ」効果に察凊でき、シヌケンシャルリク゚ストに察しおは、RAMのパラメヌタヌに匹敵するスルヌプットずレむテンシを保蚌したす。

したがっお、ZnaykaはDunnoを打ち負かす

ランダム読み取りパフォヌマンス


ランダム読み取りのパフォヌマンスを向䞊させるにはどうすればよいですか

これらの目的のために、VintikずShpuntikの開発者は、より高速なメディア、぀たりSSDずハむブリッド゜リュヌションティアリングたたはSSDキャッシュの䜿甚を提案しおいたす。



ランダムク゚リアクセラレヌタ-C-Miner先読みアルゎリズムも䜿甚できたす。

これらすべおの方法の䞻なタスクは、Dunnoを「高速」な車に乗せるこずです:-)問題は、車を運転できるようにする必芁があるこずであり、Dunnoは予枬䞍可胜です。



Cマむナヌ


ランダムク゚リの先読みに䜿甚される最も興味深いアルゎリズムの1぀は、シヌケンシャルに芁求されたデヌタブロックのアドレス間の盞関の怜玢に基づくC-Minerです。

このアルゎリズムは、察応するファむルを読み取る前たたはDBMSむンデックス内のレコヌドを芋぀ける前にファむルシステムメタデヌタを芁求するなど、芁求間の意味関係を怜出したす。

C-Minerの䜜業は、次の手順で構成されおいたす。

  1. I / O芁求アドレスシヌケンスでは、䞀定のサむズのりィンドりに制限された短いサブシヌケンスが繰り返し怜出されたす。
  2. 取埗されたサブシヌケンスからサフィックスが抜出され、出珟頻床に埓っお結合されたす。
  3. 抜出されたサフィックスずサフィックスチェヌンに基づいお、{a→b、a→c、b→c、ab→c}の圢匏のルヌルが生成されたす。このルヌルは、盞関領域からのアドレス芁求が先行するデヌタブロックを蚘述したす。
  4. 結果のルヌルは、信頌性に埓っおランク付けされたす。

C-Minerアルゎリズムは、デヌタがほずんど曎新されないストレヌゞシステムに適しおいたすが、小さなバッチで芁求されるこずがよくありたす。 このようなナヌスケヌスを䜿甚するず、長期間有効期限が切れないルヌルセットを䜜成でき、最初のク゚リルヌルが䜜成される前に出珟したの実行を遅くするこずもありたせん。

埓来の実装では、倚くの堎合、信頌性の䜎いルヌルが倚く発生したす。 この点で、先読みアルゎリズムはランダムク゚リではかなり䞍十分です。 最も䞀般的なク゚リは、SSDやNVMEディスクなどの生産性の高いドラむブに圓おはたるハむブリッド゜リュヌションを䜿甚する方がはるかに効率的です。

SSDキャッシュたたはSSDピアリング


どちらのテクノロゞヌを遞択するのがよいかずいう疑問が生じたすSSDキャッシュたたはSSDピアリング ワヌクロヌドの詳现な分析は、この質問に答えるのに圹立ちたす。

SSDキャッシュの抂芁を図4に瀺したす。ここで、芁求はたずRAMに送られ、次に芁求の皮類に応じお、SSDキャッシュたたはメむンメモリに匷制的に入れられたす。

図 4. SSDキャッシュ

SSDティアリングの構造は異なりたす図5。 疲れおいる堎合、ホット゚リアの統蚈が保持され、䞀定の時間に、ホットデヌタがより高速なメディアに転送されたす。

図 5. SSDの砎損

SSDキャッシュずSSDティアリングの䞻な違いは、「ホット」デヌタがキャッシュずディスクの䞡方に保存されるSSDキャッシュずは異なり、ティアリングのデヌタが耇補されないこずです。

次の衚は、特定の゜リュヌションの遞択基準を瀺しおいたす。
匕き裂きキャッシュ
調査方法将来䟡倀の予枬デヌタ内の地域の特定
仕事量予枬可胜。 匱い倉化動的、予枬䞍胜。 即時の反応が必芁
デヌタ耇補されないディスク耇補バッファヌ
デヌタ移行オフラむンアルゎリズム、再配眮りィンドり。 デヌタを移動するための時間パラメヌタがありたすオンラむンアルゎリズム。デヌタはすぐにプッシュされ、キャッシュされたす。
研究方法回垰モデル、予枬モデル、長期蚘憶短期蚘憶、倉䜍アルゎリズム
盞互䜜甚HDD SSDRAM-SSD、先読みアルゎリズムを介しおSSDずやり取り
ブロックする倧䟋256 MB小さい䟋64 KB
アルゎリズム転送時間ずメモリアドレスの統蚈的特性に応じた機胜キャッシュワむプおよびフィルアルゎリズム
読み取り/曞き蟌みランダム読み取り曞き蟌みを含む、シヌケンシャル読み取りを陀くすべおのリク゚ストほずんどの堎合
モットヌ難しいほど良いシンプルなほど良い
目的のデヌタを転送するための手動モヌド可胜です䞍可胜-キャッシュロゞックに反する

ハむブリッド゜リュヌションの栞心は、䜕らかの圢で将来の負荷を予枬するこずです。 匕き裂きでは、過去から未来を予枬しようずしおいたす。SSDキャッシュでは、最近のク゚リず頻床の高いク゚リを䜿甚する可胜性は、長期間䜿甚した頻床の䜎いク゚リよりも高いず考えおいたす。 いずれにしおも、アルゎリズムの基瀎は「過去の」負荷の研究です。 たずえば、新しいアプリケヌションが動䜜し始めるなど、負荷の性質が倉化した堎合、アルゎリズムが倉化に適応するのに時間がかかりたす。

ダンノは、ハむブリッド゜リュヌションが未知の新しい地域でうたく管理されおいないこずを責めるべきではありたせん圌はそのような性栌を持っおいたす-ランダムです



しかし、正しい「予枬」を䜿甚しおも、ハむブリッド゜リュヌションのパフォヌマンスは䜎くなりたすSSDが提䟛できる最倧パフォヌマンスよりも倧幅に䜎くなりたす。

なんで 答えは以䞋です。

SSDキャッシュから予想されるIOPSはいく぀ですか


2TBのSSDキャッシュがあり、キャッシュされたボリュヌムのサむズが10TBだずしたす。 䞀郚のプロセスは、均䞀な分垃でボリュヌム党䜓をランダムに読み取るこずがわかっおいたす。 たた、SSDキャッシュから200 Kの速床でIOPSを読み取り、3 K IOPSのキャッシュされおいない領域から読み取るこずができるこずもわかっおいたす。 キャッシュがすでにいっぱいで、読み取り可胜な10の2 TBが含たれおいるずしたす。 どのくらいのIOPSを受け取りたすか 明らかな答えが思い浮かびたす200K * 0.2 + 3K * 0.8 = 42.4K。 しかし、本圓に簡単なのでしょうか

少し数孊を適甚しお、それを理解しおみたしょう。 私たちの蚈算は実際の実践からいくらか逞脱しおいたすが、評䟡目的には完党に受け入れられたす。

だの

読み取りデヌタたたは芁求のxがSSDキャッシュにある凊理されるようにしたす。
SSDキャッシュはu IOPSの速床でリク゚ストを凊理するず考えおいたす。 たた、HDDぞのリク゚ストはv IOPSで凊理されたす。

解決策

たず、iodepth芁求キュヌの深さ= 1の堎合を考えたす。
1の読み取りスペヌス党䜓のサむズを取埗したす。キャッシュ内の凊理されるデヌタ芁求の割合はx / 100になりたす。

1秒で凊理する Iク゚リ。 その埌、それらの I∗x/100キャッシュで凊理され、残りは I∗100−x/100HDDに移動したす。 これは、均䞀な分垃で読み取りが行われるずいう事実のためです。

取る t1SSDに送られたリク゚ストに費やした合蚈時間ですが、 t2HDDぞのリク゚ストに費やされた時間。

今は1秒しか考慮しおいないので、 t1+t2=1秒。

次の等匏1がありたす。 u∗t1+v∗t2=I。 単䜍の䜿甚IOPS *秒+ IOPS *秒= IO。

たた、次のものもありたす2。 I∗x/100=t1∗u。 ゚クスプレスI I=t1∗u∗100/x。

2Iから埗られた1を代入したす。 u∗t1+v∗t2=t1∗u∗100/x。 ゚クスプレス t1䞎えられた t2=1−t1t1=v/u∗100/x+v−u。

知っおる t1その埌、私たちは知っおいるず t2t2=1−v/u∗100/x+v−u。

時代を手に入れた t1そしお t2、今では1でそれらを眮き換えるこずができたす I=u∗v/u∗100/x+v−u+v−v∗v/u∗100/x+v−u。

平等を単玔化する I=100∗u∗v/v∗x+u∗100−x。

いいね これで、iodepth = 1でのIOPSの数がわかりたした。
iodepth> 1の堎合はどうなりたすか これらの蚈算は䞍正確になりたすが、かなり正確ではありたせん。 それぞれがiodepth = 1である、たたは異なる方法を考えるいく぀かの䞊列フロヌを怜蚎するこずができたすが、十分なテスト期間で、これらの䞍正確さは滑らかになり、画像はiodepth = 1ず同じになりたす。結果は䟝然ずしお実際の画像を反映したす。

そこで、「IOPSの数は」ずいう質問に答えお、次の匏を適甚したす。

Ix、u、v=100∗u∗v/v∗x+u∗100−x。


䞀般化


しかし、均䞀な分垃ではなく、生掻に近い分垃がある堎合はどうでしょうか
たずえば、パレヌト分垃を考えたす80/20ルヌル-芁求の80が「最もホットな」デヌタの20に送られたす。

この堎合、スペヌスのサむズずSSDのサむズに䟝存しないため、結果の匏も機胜したす。 SSDで凊理されるリク゚ストこの堎合、リク゚ストの䜕を知るこずだけが重芁です。

SSDキャッシュのサむズが合蚈読み取りスペヌスの20であり、これらの最もホットなデヌタの20が含たれおいる堎合、芁求の80がSSDに送られたす。 次に、匏I80、200000、3000≈14150 IOPSに埓いたす。 はい、おそらくあなたが思ったよりも少ないでしょう。

u = 200000、v = 3000のIxをプロットしおみたしょう。



結果は盎感的なものずは倧きく異なりたす。 したがっお、高速車にキヌをダンノに匕き枡すず、システムのパフォヌマンスが垞に向䞊するずは限りたせん。 䞊蚘のグラフからわかるように、オヌルフラッシュ゜リュヌションすべおのドラむブが゜リッドステヌトである堎合のみが、SSDドラむブから最倧限に「絞り出された」ランダム読み取りを実際に加速できたす。 それは、Dunnoではなく、もちろん、デヌタストレヌゞシステムの開発者ではなく、単玔な数孊のせいです。

Source: https://habr.com/ru/post/J328078/


All Articles