素人の言語コンピューター組成原理の研究ではノート:SSDハードディスクを(下) - KPIのパフォーマンスの最適化を行う方法?(講義47)

まず、プライマー

SSDのシステムディスク1.なぜWindowsオペレーティングシステムでは、ディスクが機能を仕上げ千切り論文を使用することはできませんか?

あなたは、通常のWindowsコンピュータを使用する場合は、SSDのシステムディスクで、ディスクの最適化機能を使用することはできません、わかります。ブロック発生を消去する、ディスクのデフラグを実行するためのイニシアチブたら、これは
、対応するブロックの人生が少しをドロップします。問題を消去するSSDの寿命は、実際に、それは私たちの毎日の使用に影響を及ぼしている、ディスクデフラグ機能などに影響するだけでなく。

2、多くのシーンを読んで

私たちのオペレーティングシステムでは、今SSDリライタブルペーパーや生活状況にない個々のブロック、それはSSDを扱い、従来の機械的なハードドライブは違いはありませんので。

私たちは、毎日最初のOfficeなど、ハード・ディスク・オペレーティング・システムと共通のソフトウェア、にアップロードされます、PCソフトウェア開発時間を使用するか、エンジニアはVSコード、WebStormなどの統合開発環境をインストールします。
これらのソフトウェアブロックが配置され、それが唯一読み取る必要があるので、それは、消去されていない、一回の書き込み。

3、より多くのシーンを書きます

あなたが開発を開始すると、我々はすでに既存のコードファイルを修正していきます、新しいコードファイルを追加していきます。SSDドライブは何のオーバーライド(上書き)するので、このプロセスを備えていないので、実際には、我々は繰り返し、新しいファイルに書き込まれ、その後、状態に原稿が論理的に削除マークされています。そして、以下の空のブロック内の他のSSDは、
我々は消去、「ガベージコレクション」の方法を使用します。このように、私たちは繰り返しデータを格納するために使用されるこれらの場所で見つかった消去されます。

 

ある日、消去済みブロックの数は、不良ブロックとなっています。しかし、我々は、オペレーティング・システムをインストールし、ソフトウェアが悪くなっていないが、ハードドライブの容量を使用できる場所に小さいです。

第二に、ウェアレベリング

1、ウェアレベリング

そこで、我々は長い間起こるためにこれらの不良ブロックを防止する方法がありませんか?我々は、消去ブロックの背番号は、ストレージオペレーティングシステムの一部は、これらの場所にデータを保存することができますか?

私は何を私たちが望むことはSSDが均等に様々なブロックの上に広がって、各ブロックの回数を消去できるようにする方法を考えることです、実際には、あなたが考えなければならないと考えています。この戦略は、それがウェアレベリング(ウェアレベリング)と呼ばれているん。対策は、このコア技術を実現するために、私たちはそれ以前の話、仮想メモリのように、間接のレイヤーを追加することです。この間接上記のあなたが子供を売却することを私たちに教えている、FTLはフラッシュ変換層

 

メモリ管理は、我々は物理ブロックアドレス(物理ブロックアドレスに(LBA略し論理ブロックアドレス、)論理ブロックアドレスを格納し、仮想メモリページと内部FTLのように物理ページをマップするページ・テーブルを通過したときと同じようにPBAと呼ば)マッピング。

2、FTLのフラッシュ変換層

ハードディスクのオペレーティングシステムのアクセスアドレスは、実際には、論理アドレスです。唯一のFTL変換を通過した後、それが対応するブロックのアクセスを見つけるために、実際の物理アドレスになります。オペレーティングシステム自体は、ブロックの摩耗の度合いを考慮する必要があり、かつ十分なデータを読み書きするために機械的なハードの動作ほど長くはありません。

読み取りと書き込みのSSDハードドライブを、FTL通過するオペレーティングシステムのすべての要求。物理ブロックは、論理ブロックに対応するFTLは、物理ブロックの書き換え可能FTL小さい番号をメモすることが可能です。

層が基盤となるハードウェアが完全に実際に管理するためのFTLのハードウェア内部の制御回路までが何であるかを検討する必要はありません、オペレーティング・システムから隔離されている間これは、つまり、型システムズームイン典型的な設計の私たちの考えです物理的なハードウェアに書き込まれました。

第三に、TRIMコマンドをサポート

1、SSDハードドライブの使用にどのような問題が存在しますか?

しかし、オペレーティング・システムは、実際の基盤となるハードウェアは、SSDハードドライブを使用しているものに焦点を当てていない、それはまた、問題があります。問題は、SSDのブロック状態のオペレーティング・システム・ロジック、論理層、不一致であります

2、ファイルの削除ルーチン、ちょうどオペレーティングシステムレベルの墓石

オペレーティングシステムは、ファイルを削除内部で私たちは、実際には、本当に物理的なレベルは、このファイルを削除するには、行くが、ファイル・システムは、内部、内部のうち、iノードに対応するメタ情報、クリーンアップする
ことができます、使い続けることができinodeを表し新しいデータを書き込みます。この時間は、実際の物理記憶空間に対応したレベルが、内部に書くことができるオペレーティングシステムでマークされています。

だから、実際には、私たちの日常のファイルが削除され、オペレーティング・システム・レベルはちょうど墓石です。これは、我々が誤って対応するファイルを削除しない理由は、何度も、私たちは、ソフトウェアのさまざまを通じて復元することができている
バックデータを。繰り返しますが、これは我々が削除して、データをきれいにしたい場合は、「ピンクの破砕片、」仕事の様々な機能を使用する必要がある理由です。

3、プロセスは何SSD上のデータを削除

機械的なハードドライブでこの削除ロジックレベル問題はないが、に書き込むことができるよう、ファイルがマークされているため、その後の書き込みは直接この位置を上書きします。しかし、SSDのハードディスクに同じではありません。
私は詳細な概略を置くためにここにいます。私たちは、特にどのように進行中の子供たちを見てみましょう。

 

最初に、いくつかのオペレーティング・システム・ファイル、私は別の色でラベルを付けた別のファイルがあります。以下の論理ブロックは、私たちが対応するページファイルは、同じ色を使用してマークされ、SSD内部のページを占めていました。

私たちは、オペレーティング・システム内にあるとき、あなたはまさにそのようなマークの黄色openjdk.exeなJDKのインストールファイル、内部に対応するiノード内のオペレーティングシステムとして、ダウンロードしたファイルを削除して何のファイルメタ情報はありません。

しかし、この時間は、私たちのSSD論理ブロック・レベルは、実際には、この事を知りませんでした。だから、論理ブロック・レベルは、openjdk.exeはまだ対応するスペースを占有します。対応する物理ページが、まだによって占有されていると考えられます。

4、削除されたファイルのためのオペレーティングシステム、SSDハードドライブは本当に知りません

そのため、SSDハードディスクの場合には、あなたが削除されたファイルのためのオペレーティングシステムは、SSDハードドライブは本当に知らないことがわかります。これは、着用して私たちはバランスの取れた、リード
全く大量のデータを扱う上で多くの時間が削除されています。これは⽣多くの不要な読み取りをもたらす、データの書き込みや消去、SSDのパフォーマンスを消費するだけでなく、SSDの指示の寿命を短くするだけでなく。

5、TRIMコマンドが何をどうするのですか?

この問題を解決するには、オペレーティングシステムとマスターコアSSD現在は静止画はTRIMコマンドをサポートしてい⽀あります。ファイルが削除された場合、このコマンドは、オペレーティングシステムはSSDに通知することができ、することができ
、削除として対応する論理ブロックがマークされています。今SSDディスクは、TRIMコマンドをサポート⽀てきました。どんなにLinuxでは、WindowsやMacOSのであれば、これらのオペレーティングシステムには、また、TRIMコマンドをサポート⽀てきました。

第四に、増幅効果を書きます

実際には、本発明のTRIMコマンド、問題はまた、SSDハードドライブの使用を反映して、それが時間の経過とともに遅くするSSDは簡単です。

SSDハードディスクストレージスペースがより多くを占有されている場合、新しいデータが書き込まれるたびに、我々は十分なスペースを持っていないかもしれません。私たちは、ページ内のいくつかのブロックをマージし、ガベージコレクションを実行する必要があり
、一部に均等にスペースを順番に

この時間は、アプリケーション層またはオペレーティングシステムレベルから、私たちは、データの4キロバイトまたは4メガバイトを書かれたことがあります。しかし、FTLを経由して実際の後、我々は8メガバイト、16メガバイト以上のデータを運ぶために行くことがあります。
書き込み増幅を解決する方法1、

「フラッシュ・メモリ・データ/システムの実際の量のデータ書き込みの量がFTL =書き込み増幅によって書いている」ことで私たちは、より多くの書き込み増幅率を得ることができ、実際のSSDの性能も悪化していることを意味し、それははるかになります遠く⽐ではない実際のSSDドライブ公称指標に関する。

書き込み時に、我々は、データ処理、データ消去を入れて、ハードドライブに、バックグラウンドでより多くの自由時間を定期的にガベージコレクションが必要ではなく、実際のデータを待っているよりも、行われる作業の空白部分を残して、増幅を書くと解決、そのような操作

五、エアロ:SSDの効率的な利用を最大化するためにどのように?

このことについて話して、私はあなたが発見したと信じて、あなたはそう単純ではない、実際には、SSDハードドライブを十分に活用したいです。我々は単に⼀任意のSSDドライブの特性を考慮することはなく、アプリケーション・レベルからよりも、元のHDDのハードドライブを、交換するブロックのSSDハードドライブを取る場合は、私たちのほとんどは、まだ所望の性能を得ることができません。

しかし、SSDドライブの様々な特性が明確であることから、我々は我々のアプリケーションを設計するために、これらの機能に基づくことができます。次に、私は一緒にあなたを見てみましょう、エアロスパイクは、これらの物理的特性を使用する方法をキーと値のデータベース(キーデータベース)のSSDの設計特性のために、このコラムです。

まず、エアロスパイク操作SSDハードドライブではなく、オペレーティング・システムのファイル・システムを介し。SSDの動作が、直接、ブロックとページ。KVデータベース用のファイルシステム内のオペレーティングシステムは、ちょうど私たちは、より間接の層よりも、それだけでパフォーマンスが低下しますので聞かせて、私たちには何の実用的な効果はありません。

1、エアロデータを読み書きする際に、2つの最適化を行いました

第二に、データを読み書きエアロスパイクは、2つの最適化を行いました。データを書き込む際に、可能なエアロスパイクは、頻繁にデータの多くの小さなブロックを記述するのではなく、データの大きなブロックを書き込みます。
このようにして、ハードディスクの断片化が頻繁に発生することは容易ではありません。そして、データの追記型大型ブロック、および優れたオーダーのパフォーマンス上の利点を書くことが容易になります。データ・ブロックを書き込みエアロスパイクは128キロバイトは、4KBのページはよりもはるかに大きいです。

さらに、場合読み出しデータ、エアロスパイクタッチが512バイト(バイト)、そのような小さなデータを読み出すことができます。良いランダム読み取りSSDのパフォーマンスので、ワイプ生活上の問題として、書き込みデータとは異なり。また、
これらのデータはネットワークを介して送信されるように内部のデータは、我々は非常に多くの場合、キーのデータ値を読み取ります。あなたがワンタイムデータが比較的大きいを読み出している場合は、それが私たちのネットワーク帯域幅が十分ではありませんにつながります。

2、どのように応答時間を改善するために、

エアロスパイク応答時間が厳しいリアルタイムデータベースKVであるため、深刻な書き込み増幅効果が発生した場合、応答時間が有意に長いデータを書き込むことにつながるでしょう。だから、エアロ行わので、いくつかのアクション:

最初は、連続的なディスクの最適化です。いわゆる高水位(高?ウォーターマーク)アルゴリズムとエアロスパイク。実際には、このアルゴリズムは、非常に単純ですが、50%以上のデータ断片の物理ブロックたらということで
圧縮された物理ブロックの処理を入れ、その後、データを消去し、書き込むための十分なディスク領域が常にあることを確認してください。

第二は、エアロスパイクは、データベースのパフォーマンスを保護するために与えられたベスト・プラクティスである、あなたが唯一の半分の公称容量を⼀するSSDドライブを使用することをお勧めします。言い換えれば、我々は、データベース・アクセスのパフォーマンスに影響を与えることなく、可能な限り小さく、そのSSDの書き込み増幅効果を確実にするために、人為的にSSDハードドライブが予約された領域の脇に50%を設定する必要があります。

すべてのこれらの最適化を行っての、時に発生期のNoSQLデータベースは、カサンドラのパフォーマンスエアロスパイクは、MongoDBの遠くの後ろにこれらのデータベース、およびこれらのデータベース間のパフォーマンスギャップがあるからである
、時々大きさのオーダーに達します。これはまた、エアロスパイクはその後、高性能KVデータベースのベンチマークになったことができます。パフォーマンスのNoSQLデータベースの巨人でこれらの違いはズームインときには、2013年にそこから外れ、このベンチマークはInfoQで見ることができます

VIの概要拡張

さて、今日は内容を要約するために協力しましょう。

SSDドライブの寿命が消去ブロックの数によって制限されているので、私たちはSSDドライブ管理するためのバランスの取れた戦略を着用する必要があり
、消去の各ブロックの周波数を。私たちは、オペレーティングシステムがないように、論理ブロックアドレスと物理ブロックアドレス、FTLのマッピング層の導入の間を通過
するものを着用しなければならない書き込み、最後にすべての時間を調整するために、ソフトウェアアルゴリズムの物理ブロック消去の回数を気に、しかし、FTLによってA。

ウェアレベリングに加えて、オペレーティング・システムおよびハードウェアのSSDも不一致の場所を提供しています。それは、あなたがデータの削除オペレーティングシステムで
実際に物理層のためのデータ画面を削除しないで、待っているのが、唯一の内部のinodeデータを修正しました。この「疑似削除」にSSDハードドライブを作成する
論理的および物理的なレベルでは、実際には、いくつかのブロックが削除されたことに気付いていません。これは、時間ガベージコレクションになり、それが不必要な多くの無駄になり
、読み書きのリソースを。

SSDの特性は、ガベージコレクションのために必要なので、我々はデータを書き込む際、出会いがズームする書き込みを行っています。もちろん我々は書いている
、おそらくハードウェアレベルのSSDで、実際の書かれた8メガバイト、16メガバイトまたはそれ以上のデータをデータ4MBのを。

これらの特性のために、エアロ、このデータベースは、特にSSDのKV-ドライブ機能のため、ファイルのスキップなど、設計の最適化ポイント、多くの
システム書き込みハードディスクは、小さなチャンク、高水位で連続ディスク最適化アルゴリズムを書き込み、読み出し、及び唯一の半分のスペースSSDハードドライブを使用します。その
ほかのカサンドラのNoSQLデータベースより早い時期でのこれらの戦略、エアロのパフォーマンス、はるかに。

これは、再生するために、当社のハードウェアのパフォーマンスを最大化するために設計されたハードウェア機能のソフトウェアのために見ることができます

おすすめ

転載: www.cnblogs.com/luoahong/p/11395273.html