レイテンシーを軽減するのに、レイテンシー異常値が重要なのはなぜか
2015年の論文で、Metaは、Facebookで使用されているソーシャルグラフに関して、いくつかの実際の導入の詳細を発表しました1。まず、アリスが2つの投稿を行い、それに対し、友人のボブとキャロルがそれぞれコメントして、「いいね!」をするという仮説事例から始めます。アリスが携帯電話でFacebookを開くとき、ニュースフィードは彼女の友達が誰であるか、そして投稿が何であるかを特定する必要があり、また、ボブとキャロルが彼女の投稿に「いいね!」をしてコメントしたことをアリスに通知するためのクエリを設定します。
最初に、作業員がn個のサブクエリを実行するソリューション(図1)を検討しましょう。この場合、実行時間はO(n)となり、平均(最悪ケースではない)の検索レイテンシーとほぼ等しくなります。
ハイパースケーラーは異なるアプローチをとります(図2)。ハイパースケーラーはn人の作業員それぞれが1回の検索を行い、n個の結果を集計します。この場合、実行時間はO(1)ですが、実行時間はn個のノードのいずれかで最悪の場合のレイテンシーになります。
Metaの論文は続けて、数十のディープクリティカルなパスオブフォークの結合を含む大量のサブクエリで複数のフォーク/結合サブクエリを使用すると、実際には悪化することについて説明します(図3)。単一の異常値であっても(この事例では、99.9%)、ほぼすべてのクエリパフォーマンスに影響します。この結果により、少なくとも99.99%でのレイテンシーは、それ以上の99.9999%つまたは99.99999%でなければ正当化されます(99.9999%のレイテンシーを図6に示します)。
この状況は、Metaとそのソーシャルグラフをはるかに超えて発生し、それには多くのデータベース集約型アプリケーションが含まれています。別のマイクロンブログでの優れた議論では、Micron 7450を含むさまざまなストレージソリューションに対するYCSBデータベースアプリケーションについて取り上げています2、3。
少なくとも、読み取り集中型のワークロードで、読み取り70%、書き込み30%といった、書き込みの「嵐」が起こるようなものや、NANDアレイやコントローラに十分な圧力をかけるために、キュー深度が深くなっているものについては確認しておいたほうがいいでしょう。読み取りテールレイテンシーは、一般的な毎日のサーバーエクスペリエンスにより近いため、さまざまな圧力に対する読み取りテールレイテンシーを調べることも重要です。
何がレイテンシーのばらつきと軽減策を引き起こすか
CPUアーキテクチャーの命名規則を使用すると、SSDはディープパイプライン(多くのステージ)とスーパースケーラー(多くの並列ステージ)の両方を兼ね備えるものになります。パイプラインのストールに焦点を当てることは、CPUとSSDのパフォーマンスにとって重要です。SSD(図4)の場合、パイプラインのストールは、以下で検討する多くのソースから取得できます。
この理想化されたレイテンシーに対する最も小さい影響のいくつかは、ダイまたはNAND型バスが別のパイプラインステージの要求を処理するのに忙しい場合にデータを読み取ろうとすることによって生じます。一般的に平面、ダイまたはチャネル衝突と呼ばれる現象です。読み取りと読み取りが競合する場合、後の方の読み取りでパイプラインをストールさせ、最初に進行中の読み取りを完了させるのが一般的です。
ホスト書き込み(この場合30%)とそれに関連するガベージコレクションの両方で統合すると、追加の読み取りだけでなくプログラムやNANDへの消去も生成されます。プログラムのレイテンシーはNAND読み取りのレイテンシーの5~10倍の長さになる可能性があり、NAND消去はNAND読み取りよりも、桁違いに高くなる可能性があります。図5はホストアクティビティに対するGCの影響についてのユーモラスなビューを示し、図6は読み取りパイプラインのストールが、一時停止がない場合にどのように見えるかを詳しく示しています。
ここで、プログラムと消去に対するパイプラインの「一時停止」が入り、ホスト読み取りのサービスが可能になります。NANDコンポーネントエンジニア、システムオンチップエンジニア、ファームウェアエンジニアは、これらのレイテンシーを軽減するためにプログラムと消去の一時停止を発明しました。現在、上記のワークロードに対してのレイテンシーの影響は99.999%で2ミリ秒未満であり、5倍以上優れているという結果になっています。
パイプラインのストールはどのように解決できるか
図5の高速道路の図に戻りましょう。キュー深度の深い読み取りと書き込みが行われており、それに関連するガベージコレクションを持つSSDは、マルチレーンの高速道路に似ています。高速道路上のレイテンシー異常値(別名:交通渋滞)は、SSDのレイテンシー異常値と非常によく似ています。いくつかのレイテンシー異常値戦略は、高速道路の交通渋滞を防ぐという類推によって、最もよく理解できます。
類推1:混雑している高速道路を貨物列車に遮断させない(冗談を言っているわけではありません)
当然のことですが、交通量の多いラッシュアワーの高速道路のすべての車線を貨物列車が遮断すれば、交通渋滞が確実に起こります(図7)。SSD設計者はその事実を完全に理解するのに時間がかかりました。当たり前のことのように思えますが、OCPデータセンターNVMe™ SSD仕様では、貨物列車に混雑した高速道路を横断させない必要性が特に強調されています。おそらく以下のOCPの著者による以前の設計での経験に由来します。
- スマートIOは、ホストIO(SLOG-6)をブロックしない
- その他の定期的に監視されるログ(LMLOG-4、およびTEL-5)は、IOのブロックを約1ミリ秒という小さい値に制限する
類推2:高速道路の入口側のランプ規制を採用する
交通渋滞を防ぐもう1つの便利なツールは、高速道路の入口側のランプメータリングです(図8)。私たちは皆、おそらくこのアプローチを経験したことがありますが、これは生産性を向上させる方法としては直観に反するように見えます。しかし米国運輸省のデータでは、交通時間(レイテンシー)が20%以上短縮されています5。SSDは同じ概念に従って、レイテンシーの異常値につながる輻輳を防ぎます。書き込みだけでなく、ガベージコレクションを含む全体的なI/Oをスロットル調整して、SSDの内部トラフィックジャムのイライラする遅延がない、ピークのパフォーマンスを保証します。
マイクロンがテールレイテンシーの軽減についてクラス最高になることに取り組んでいるのはなぜか
前述のように、業界は、プログラムと消去の一時停止が出現する6~7年前に、レイテンシーの異常値に悩まされていました。このアプローチと入口スロットリング、およびNANDおよびコントローラの相互作用の最適化は、マイクロンのSSD(図9)を進化させ、今ではクラス最高レベルと見なせるほどになっています。
次回、モバイルデバイスを手に取り、ソーシャルメディアを閲覧するときは、応答性の点で得られる優れたエンドユーザーエクスペリエンスを堪能してください。文字通り何千、何万ものサーバーが、深くフォーク/結合されている大量の並列クエリを実行する驚異を堪能してください。サーバーファームをはるかに小規模で実行している場合でも、一貫性のある予測可能なパフォーマンスがあることは、顧客への一貫したサービスを確保するための鍵です。このパフォーマンスこそ、マイクロンのメインストリームデータセンターSSDが輝く場所です。
1 より強力な一貫性を大規模に採用することへの課題、Meta Research 2015
2 ワークロードテストにおけるレイテンシーの異常値を特定する | マイクロン2023
3 Micron 7450、Samsung PM9A3、Solidigm D5-P5430の比較 | マイクロン2023
4 I/O決定論により、SSDにおけるコストのかかる読み取りレイテンシーの変動を回避する、FMS 2017、Wells
5 ランプメータリング:実績のある費用対効果の高い運用戦略、米国運輸省 2014