- 同じハードドライブをもう1台購入し、それらを結合してraid-0にします。
- 小さなSSDを購入し、その上にクイックキャッシュを整理します。
- dm-cache。 カーネル3.9に追加された、簡単に言えば。
- bcache レビューから判断すると、最速。 主な欠点は、使用する前にディスクをフォーマットする必要があることです。 パッチを適用した3.9カーネルとして配布される3.10カーネルに公式に追加されました。
- EnhanceIO。 レビューの中で、私はそれが最も遅いが、最も使いやすいと言及しました。
賛否両論を検討し、友人のレビューを尋ねた後、私はbcacheに立ち寄ることに決めました。 彼についてもう少し説明します。
bcacheカーネルを構築する
bcacheを試すには、パッチを適用したカーネル3.9をビルドする必要があります。 プロジェクトは活発に開発されており、そのソースはtar.bz2としても配布されていません。 ダウンロードしたい場合は、リポジトリ(700MBのどこか)をダウンロードしてください。
# sudo apt-get install kernel-package fakeroot build-essential ncurses-dev bc # bcache git clone http://evilpiepirate.org/git/linux-bcache.git cd linux-bcache # bcache cat /boot/config-`uname -r`>.config make oldconfig
この手順の後、追加されたカーネルパラメーターに使用するオプションを選択する必要があります。 カーネルモジュールとしてコンパイルされたbcacheのみをデフォルトですべて残しました。 デバッグbcacheキーはオフのままです。
make-kpkg clean # -j . sudo time fakeroot make-kpkg -j8 --initrd kernel_image kernel_headers # 24 . . sudo dpkg -i ../linux-image-3.9.0+_3.9.0+-10.00.Custom_amd64.deb ../linux-headers-3.9.0+_3.9.0+-10.00.Custom_amd64.deb # bcache-tools cd .. git clone http://evilpiepirate.org/git/bcache-tools.git cd bcache-tools make sudo make install
このカーネルが最新バージョンの場合-新しいものがインストールされている場合は自動的に起動します-grub2での起動時に[詳細ブートオプション]メニューでbcacheのカーネルを選択できます。
bcacheを構成する
bcacheを使用するには、ディスクを最初にフォーマットする必要があります。 (データのバックアップを忘れないでください)
sudo -i umount /dev/sdb4 # HDD make-bcache -B /dev/sdb4 # SSD make-bcache - /dev/sda
次に、ディスクをカーネルに登録する必要があります。
echo /dev/sdb4 > /sys/fs/bcache/register echo /dev/sda > /sys/fs/bcache/register
登録後、ドライブは/ dev / bcache0として表示され、キャッシュは/ sys / fs / bcache / <UDID>として表示されます。 選択したファイルシステムにディスクをフォーマットし、マウントします。
mkfs.ext4 /dev/bcache0 mount /dev/bcache0 /mnt
ディスクが動作するキャッシュを認識するためには、キャッシュを接続する必要があります。 キャッシュセットは単一のディスクですが、将来的には、キャッシュセット内の複数のキャッシュデバイスで作業を追加する予定です。 1つのキャッシュセットを複数のディスクに追加できます。これは、複数の低速ディスクがあるシステムに非常に便利です。 キャッシュを接続するには、UDIDが必要です。
echo <UUID> > /sys/block/bcache0/bcache/attach
まあ、それだけです。 システムにディスクがあり、writetroughキャッシュが接続されています。 データベースの主な負荷がサンプルであり、データを変更しない場合、このキャッシュモードで十分であり、SSDの寿命は長くなります。 次のコマンドでライトバックを有効にできます。
echo writeback > /sys/block/bcache0/cache_mode
bcacheからの印象
キャッシュがいっぱいになると、データベースは数倍速く動作し始めました。 数字を引用するのは難しいです bcacheに切り替える前に、参照要求を行いませんでした。 しかし、おおよその速度比を示すことができます。 したがって、空のキャッシュを使用した球面リクエストは171秒で完了します。 繰り返し3.2秒で実行されます。 データベースキャッシュが処理速度に与える影響をタイムアウトするために、データベースを再起動しました。その後、クエリは4秒で完了しました。 このような速度の向上により、地球全体のデータを処理することは、比較的弱いハードウェアでは不可能な作業ではないように思われます。
bcacheには、統計情報が追加されており、慎重に収集されます。 キャッシュの統計、ミスの数、ヒットの数、ヒットの割合、キャッシュがいっぱいである量、キャッシュに書き込まれた情報の量などを確認できます。 ここに彼が現在私に見せているものがあります:
$ cd /sys/block/bcache0/bcache/stats_hour $ cat cache_hit_ratio 90 $ cat cache_hits 836233 $ cat cache_misses 91086 $ cd cache/cache0 $ cat btree_written 92.3M $ cat metadata_written 481M $ cat written 41.3G
ご清聴ありがとうございました。 誤字や不正確をPMで報告し、コメントで質問に答えようとします。
ps bcacheのドキュメントは非常に詳細で、よく書かれていますので、読むことをお勧めします。